然后把alrt_rules.yml添加到prometheus.yml 里:
我们要把alert_rules.yml规则映射到docker里:
先用docker ps查看prometheus容器ID, CONTAINER ID: ac99a89d2db6, 停掉容器 docker stop ac99,然后删掉这个容器 docker rm ac99。
重新启动容器:
docker run --name=prometheus -d -p 9090:9090 -v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/docker/prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml prom/prometheus
启动时主要添加这个参数:-v /etc/docker/prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml
然后在浏览器上查看,rules是否添加成功,在浏览器上输入地址 :9090/rules
也可以查看alers情况,点击菜单 Alerts:
alertmanager配置:
官方配置文档,官方。
在上面我们可以看到alerts页面的告警信息,但是怎么通知到研发和业务相关人员呢?这个就是由Alertmanager完成,先配置alertmanager文件 alertmanager.yml,:
global: resolve_timeout: 5m route: group_by: ['example'] #与prometheus配置文件alert_rules.yml中配置规则名对应 group_wait: 10s #报警等待时间 group_interval: 10s #报警间隔时间 repeat_interval: 1m #重复报警间隔时间 receiver: 'web.hook' #告警处理方式,我们这里通过web.hook方式,也可以配置成邮件等方式 receivers: - name: 'web.hook' webhook_configs: - url: 'http://127.0.0.1:8080/example/test' #告警web.hook地址,告警信息会post到该地址,需要编写服务接收该告警数据 inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' #目标告警状态 equal: ['alertname', 'dev', 'instance']启动alertmanager服务:
docker run -d -p 9093:9093 --name alertmanager -v /etc/docker/prometheus/alertmanager.yml:/etc/prometheus/alertmanager.yml prom/alertmanager
在浏览器上输入 : :9093,出现下面界面:
prometheus配置:
在promethdus加上下面的配置,
配置说明:告诉prometheus,放生告警时,将告警信息发送到Alertmanager,Alertmanager地址为 :9093
先docker rm 删除掉原来容器,在运行:
docker run --name=prometheus -d -p 9090:9090 -v /etc/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/docker/prometheus/alert_rules.yml:/etc/prometheus/alert_rules.yml prom/prometheus
再次运行:9093,正常说明配置成功
参考链接https://prometheus.io/docs/introduction/overview/
https://github.com/prometheus/prometheus
https://www.aneasystone.com/archives/2018/11/prometheus-in-action.html
https://github.com/prometheus/alertmanager
https://github.com/songjiayang/prometheus_practice
https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
https://grafana.com/
https://grafana.com/plugins
https://hub.docker.com/r/prom/prometheus/
https://www.bookstack.cn/read/prometheus-manual/prometheus