一 安装exporter
下载exporter:
https://github.com/martinlindhe/wmi_exporter
在windows服务执行:
.\wmi_exporter-0.11.1-amd64.exe --collector.service.services-where="Name LIKE 'MySql%' or Name='RemoteRegistry'"
可以将其注册成服务随windows系统启动自动启动
官网上有个例子使用msi文件安装成服务,并设置扩展参数。但是在我的服务器上执行不成功(使用cmd执行时不成功,没有使用powershell测试)。
msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,service --% EXTRA_FLAGS="--collector.service.services-where ""Name LIKE 'sql%'"""
所以我是通过其它方式将其注册成windows服务的,参见另外一篇博客。
二 添加到Prometheus,并配置告警规则
vim prometheus.yml
- job_name: 'win-exporter'
static_configs:
- targets: ['192.168.0.100:9182']
vim rules/alert.rules
- name: WindwosService
rules:
- alert: WindowsServiceDown
expr: wmi_service_state{state="running"} == 0
for: 2m
labels:
team: node
annotations:
summary: "Host:{{$labels.instance}}; Service:{{$labels.name}} has been down 2 minutes!"
description: "Host:{{$labels.instance}}; Service:{{$labels.name}} has been down 2 minutes!"
value: "{{$value}}"
三 配置grafana
下载dashboard,并导入到grafana
https://grafana.com/grafana/dashboards/2129
这个dashboard只显示service的概览,没有明细,如每个服务名和状态。可以自己创建一个。
默认dashboard
自定义dashboard,当服务状态正常时显示绿色OK,当服务状态异常时显示红色ERROR。