序
本系列主要介紹prometheus+cadvisor+alertmanager打造docker監(jiān)控,主要監(jiān)控指定docker容器是否掛掉
本節(jié)主要熟悉prometheus+cadvisor+alertmanager實(shí)現(xiàn)docker監(jiān)控卵慰,以監(jiān)控docker容器grafana是否掛掉作為例子
一辐益、服務(wù)器安裝cadvisor啡直,監(jiān)控docker织堂,如果服務(wù)器沒有安裝grafana的docker鏡像也一并安裝一下瓦灶,我們今天就是來監(jiān)控這個(gè)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是映射到外部的端口村斟,需要服務(wù)器開放這個(gè)端口外部才可以訪問
查看監(jiān)控到的docker的相關(guān)信息
二贫导、配置prometheus監(jiān)控cadvisor
- job_name: 'aliyun-cadvisor'
scrape_interval: 5s
static_configs:
- targets: ['ip:8090']
targets中的ip換成你服務(wù)器的ip
三、配置prometheus.rules.yml監(jiān)控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 這行函數(shù)表示給定的容器不存在則報(bào)警
打開http://localhost:9090/rules可以查看配置的規(guī)則蟆盹,點(diǎn)擊超鏈接可以查看配置的規(guī)則是否正確
如果value結(jié)果為1孩灯,說明觸發(fā)了規(guī)則,如果沒有說明規(guī)則還沒有被觸發(fā)
把規(guī)則文件加入prometheus.yml
rule_files:
- 'prometheus.rules.yml'
四逾滥、配置alertmanager.yml峰档,設(shè)置webhook為告警處理方式败匹,即告警觸發(fā)一個(gè)接口調(diào)用
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 表示重復(fù)間隔,這里配置5s讥巡,即如果觸發(fā)報(bào)警規(guī)則每隔5s報(bào)警一次
五掀亩、配置完之后我們實(shí)驗(yàn)一下,在服務(wù)器把grafana鏡像rm掉欢顷,看下是否觸發(fā)了alert槽棍,alert是否觸發(fā)了接口調(diào)用
訪問http://localhost:9090/alerts查看alert是否被觸發(fā)
如果active的數(shù)量大于0則說明有規(guī)則被觸發(fā)了,點(diǎn)開了可以查看
本系列到此就結(jié)束了抬驴,謝謝大家炼七!