3Prometheus 使用 · SpringCloud微服务实战 · 看云

导航

我们前面介绍了Prometheus 的简介、可视化的内容,Prometheus 为了我们提供了很多组件的监控,并利用Grafana 为我们展现了酷炫的内容监控。
在容器化章节笔者已经介绍了详细的docker-compose安装方式,下面我们来看下具体的展示成果,本次演示不涉及应用的监控,后面会单独介绍。

1. Docker Dashboard 演示

fd0bcd0d52e1196f40cae275f3f6a918_MD5.png

可以配置监控的时间范围和定时刷新的时间(默认是关闭的)
fdfa2dd2d5d4b666f47dcbcbd4962b41_MD5.webp

2. Redis Dashboard演示

69d381e8d0198ad7b756fda574a97391_MD5.png

f80272af9fae422027d1053a8cc57d56_MD5.webp

3. MySQL 监控Dashboard

8dbe6202f2ef87e3c16098b5979474ce_MD5.png

92bb7801b81768c4464a2595a288ffba_MD5.webp

99502c38885e63dec15bb725a51046a5_MD5.webp

223f056d65bac37035d05495a0a13f90_MD5.webp

565fb67608cbb9774f44460c74101855_MD5.webp

0084d4be0cd137eec1688b3fd286ce6c_MD5.webp

4. 应用预警

4.1 通过邮件预警

在 alertmanger 配置邮件通知,邮件通知具有一定的延迟性
这里配置的邮件服务器使用的是163服务器,也可以用自己公司的服务器或其它如qq、126、sina 等服务器。

global:
  smtp_smarthost: 'smtp.163.com:25'  #163服务器
  smtp_from: 'yisutest@163.com'   #发邮件的邮箱
  smtp_auth_username: '用户名'
  smtp_auth_password: '密码'  
  smtp_require_tls: false  #不进行tls验证

route:
  group_by: ['alertname']  #告警分组名称
  group_wait: 10s    #等待时间,这段时间内的警告会合并后发送
  group_interval: 5m  #分组尝试再次发送告警的时间间隔 5分钟
  repeat_interval: 5m  #重复预警时间  5分钟
  receiver: 'default-receiver'  #接收者

receivers:
  - name: 'default-receiver'
    email_configs:
      - to: 'xxxxxx@qq.com'  #收邮件的邮箱
        send_resolved: true

设置规则通知的规则内容
如服务宕机20秒就发邮件预警

groups:
  - name: server_down
    rules:
      - alert: InstanceDown
        expr: up == 0
        for: 20s
        labels:
          user: xuyisu
        annotations:
          summary: "Instance {{ $labels.instance }} down"
          description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 20 s."

将规则添加到prometheus配置文件中的rule_files

4.2 通过企业微信预警(推荐)

先访问网站注册企业微信账号(不需要企业认证)
访问apps创建第三方应用,点击创建应用按钮-> 填写应用信息
e737b19ca143077be91c26a4e909d25e_MD5.png

设置 alertmanger 配置,添加企业微信的配置信息

route:
  group_by: ['alertname']
  receiver: 'wechat'

receivers:
- name: 'wechat'
  wechat_configs:
  - corp_id: 'xxx'
    to_party: '1'
    agent_id: '1000000003'
    api_secret: 'xxxx'

设置规则通知的规则内容
这里规则内容和上面邮件通知的即可,这里推荐使用企业微信,因为通知效率比较高。

除此之外还支持webhook等方式的通知,这里不做介绍了,感兴趣的可以自行配置。

5. 总结

Prometheus 作为现在比较流行的服务监控工具,提供了对多种组件的支持,并且提供了很多中预警方式,极大的方便了开发和运维。