如何使用wmi_exporter指标监控Windows服务器IIS并配置相关告警
IIS监控方案(Grafana + Prometheus + wmi_exporter)
1. 前置部署配置
- 安装wmi_exporter时需指定启用IIS采集器,安装命令参考:
msiexec /i wmi_exporter-<版本号>-amd64.msi ENABLED_COLLECTORS="os,iis,cpu,memory,net,service",默认暴露9182端口供Prometheus刮取数据 - Prometheus侧新增Windows节点采集Job,配置对应wmi_exporter的地址和刮取周期
- Grafana侧可直接导入IIS专用Dashboard,关联Prometheus数据源即可完成可视化配置
2. IIS相关wmi_exporter核心指标说明
2.1 服务状态类
wmi_service_state{name="W3SVC"}:IIS万维网发布服务的运行状态,返回值为1表示服务正常运行,0表示服务停止wmi_service_start_mode{name="W3SVC"}:IIS服务的启动类型,返回值2为自动启动,3为手动启动,4为禁用
2.2 站点性能类
wmi_iis_website_current_connections:对应站点的当前活跃连接数,name标签对应站点名称wmi_iis_website_total_bytes_sent_total:站点累计发送字节数,可用于计算出站带宽wmi_iis_website_total_bytes_received_total:站点累计接收字节数,可用于计算入站带宽wmi_iis_website_total_requests_total:站点累计处理请求数,可用于计算QPS
2.3 请求错误类
wmi_iis_website_total_not_found_errors_total:站点累计404错误数wmi_iis_website_total_server_errors_total:站点累计5xx服务端错误数wmi_iis_website_total_locked_errors_total:站点累计423资源锁定错误数
2.4 应用程序池类
wmi_iis_app_pool_state:应用程序池运行状态,返回值1表示运行中,0表示已停止,name标签对应应用池名称wmi_iis_app_pool_worker_processes_count:应用池当前工作进程数
3. Prometheus自定义告警示例
以下为常用IIS告警规则,配置后导入Prometheus并关联Alertmanager即可触发对应通知:
groups: - name: IIS告警规则组 rules: # IIS服务宕机告警 - alert: IIS服务停止运行 expr: wmi_service_state{name="W3SVC"} == 0 for: 1m labels: severity: 紧急 annotations: summary: "实例 {{$labels.instance}} IIS服务已停止" description: "服务器 {{$labels.instance}} 上的万维网发布服务W3SVC已停止超过1分钟,对应站点无法访问,请立即排查" # IIS服务重启告警 - alert: IIS服务发生重启 expr: changes(wmi_service_state{name="W3SVC"}[5m]) >= 1 and wmi_service_state{name="W3SVC"} == 1 for: 0m labels: severity: 警告 annotations: summary: "实例 {{$labels.instance}} IIS服务近期发生重启" description: "服务器 {{$labels.instance}} 上的IIS服务在过去5分钟内发生过状态变更,当前已恢复运行,建议排查重启原因" # 应用程序池停止告警 - alert: IIS应用池停止 expr: wmi_iis_app_pool_state == 0 for: 1m labels: severity: 紧急 annotations: summary: "实例 {{$labels.instance}} 应用池 {{$labels.name}} 已停止" description: "服务器 {{$labels.instance}} 上的IIS应用池 {{$labels.name}} 已停止运行超过1分钟,对应站点将无法访问" # 5xx错误率过高告警 - alert: IIS站点5xx错误率过高 expr: rate(wmi_iis_website_total_server_errors_total[1m]) / rate(wmi_iis_website_total_requests_total[1m]) > 0.05 for: 2m labels: severity: 警告 annotations: summary: "实例 {{$labels.instance}} 站点 {{$labels.name}} 5xx错误率超过5%" description: "站点 {{$labels.name}} 过去2分钟服务端错误占比达 {{$value | humanizePercentage}},请检查服务可用性"
内容的提问来源于stack exchange,提问作者Ram indira jith
相关产品推荐
相关产品推荐

