序
本系列主要介绍prometheus+cadvisor+alertmanager打造docker监控,主要监控指定docker容器是否挂掉
本节主要熟悉prometheus+cadvisor+alertmanager实现docker监控,以监控docker容器grafana是否挂掉作为例子
一、服务器安装cadvisor,监控docker,如果服务器没有安装grafana的docker镜像也一并安装一下,我们今天就是来监控这个grafana是否挂掉
grafana 镜像安装
docker run -d \ -p 3000:3000 \ --restart=always \ --name=grafana \ -e "GF_SECURITY_ADMIN_PASSWORD=admin" \ -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,raintank-worldping-app,grafana-piechart-panel" \ grafana/grafana
cadvisor 镜像安装
sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8090:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
其中8090是映射到外部的端口,需要服务器开放这个端口外部才可以访问
查看监控到的docker的相关信息
二、配置prometheus监控cadvisor
- job_name: 'aliyun-cadvisor' scrape_interval: 5s static_configs: - targets: ['ip:8090']
targets中的ip换成你服务器的ip
三、配置prometheus.rules.yml监控grafana是否挂掉
- name: DockerInstance rules: - alert: DockerInstanceDown expr: rate(container_last_seen{name="xservicesswagger_swagger_1"}[1m]) < 0.5 for: 5s labels: severity: page # Prometheus templates apply here in the annotation and label fields of the alert. annotations: description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 s.' summary: 'Instance {{ $labels.instance }} down'
expr:rate(container_last_seen{name="xservicesswagger_swagger_1"}[1m]) < 0.5 这行函数表示给定的容器不存在则报警
打开http://localhost:9090/rules可以查看配置的规则,点击超链接可以查看配置的规则是否正确
image.png
image.png
如果value结果为1,说明触发了规则,如果没有说明规则还没有被触发
把规则文件加入prometheus.yml
rule_files: - 'prometheus.rules.yml'
四、配置alertmanager.yml,设置webhook为告警处理方式,即告警触发一个接口调用
global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 5s group_interval: 5s repeat_interval: 5s receiver: 'web.hook'receivers: - name: 'web.hook' webhook_configs: - url: 'http://localhost:5200/auth/alter'
repeat_interval 表示重复间隔,这里配置5s,即如果触发报警规则每隔5s报警一次
五、配置完之后我们实验一下,在服务器把grafana镜像rm掉,看下是否触发了alert,alert是否触发了接口调用
访问http://localhost:9090/alerts查看alert是否被触发
image.png
如果active的数量大于0则说明有规则被触发了,点开了可以查看
image.png
作者:2远
链接:https://www.jianshu.com/p/ecb4a1392f01