3Prometheus 使用 · SpringCloud微服务实战 · 看云
导航
我们前面介绍了Prometheus 的简介、可视化的内容,Prometheus 为了我们提供了很多组件的监控,并利用Grafana 为我们展现了酷炫的内容监控。
在容器化章节笔者已经介绍了详细的docker-compose安装方式,下面我们来看下具体的展示成果,本次演示不涉及应用的监控,后面会单独介绍。
1. Docker Dashboard 演示
可以配置监控的时间范围和定时刷新的时间(默认是关闭的)
2. Redis Dashboard演示
3. MySQL 监控Dashboard
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 通过企业微信预警(推荐)
设置 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 作为现在比较流行的服务监控工具,提供了对多种组件的支持,并且提供了很多中预警方式,极大的方便了开发和运维。










