为了账号安全,请及时绑定邮箱和手机立即绑定

prometheus之docker监控与告警系列(三)

标签:
Java

本系列主要介绍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的相关信息

http://ip:8090/containers/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可以查看配置的规则,点击超链接可以查看配置的规则是否正确

webp

image.png

webp

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是否被触发

webp

image.png

如果active的数量大于0则说明有规则被触发了,点开了可以查看

webp

image.png



作者:2远
链接:https://www.jianshu.com/p/ecb4a1392f01


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消