1. 实战
1.1. 新建目录
创建如下目录结构。
1.2 编写 prometheus 的配置文件 prometheus.yml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
1.3 编写 Prometheus 的告警规则 rule_1.yml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
1.4 编辑 alertmanager 配置文件 config.yml
alertmanager 触发告警后会发送邮件,我们需要先配置邮箱,这里以 QQ 邮箱为例。
登录邮箱,选择设置:
获取邮箱授权码:
接下来编辑 alertmanager 配置文件 config.yml:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
1.5 编辑告警邮件模板 alert.html
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
1.6 编写 DockerCompose.yml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
在 compose 配置文件中,我们配置了容器的 cpu 和内存限制:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
需要使用--compatibility
兼容模式使它生效。
- 1
- 2
- 3
- 4
- 5
- 6
1.7 配置 Grafana Dashboard 页
- 1
启动之后,使用浏览器打开 http://127.0.0.1:3000, 即可访问 grafana Web 页面。
使用admin
和 123456
密码(GF_SECURITY_ADMIN_PASSWORD
指定)登录。
登录成功后,配置数据源。
选择 Prometheus 数据源:
填写 Prometheus 地址:
保存配置:
选择导入 Dashboard:
打开Grafana的官方Dashboard仓库,找一个合适的样式,下载下来。这里我们选择了这个:
回到 Grafana 管理页面,将下载的 json 文件导入:
选择 Prometheus 数据源:
import 导入即可看到容器监控页面。
2. 告警测试
打开 prometheus web UI 页面 http://127.0.0.1:9090,点击 alert 标签页,查看监控告警状态:
我们将监控的容器 cadvisor 关掉。
- 1
几秒后刷新页面,发现告警进入 Pending 暂挂状态:
一分钟后(rule_1.yml 中 for = 1m 配置)告警进入 firing 状态。
查收告警邮件:
修复故障后恢复正常:
- 1
3. 小结
本节构建了一个具有邮件告警功能的容器监控平台,由于篇幅有限,仅能在配置文件中,对一些基本常用的配置进行解释,还有其他更多更全的强大配置功能,需要读者自行参考各个服务的官方文档。
- Prometheus文档
- Alertmanager文档
- Grafana文档