musakhalidwork-alt/Unified-SRE-Observability-and-Alerting-Stack
GitHub: musakhalidwork-alt/Unified-SRE-Observability-and-Alerting-Stack
基于 Prometheus、Grafana、Loki 和 Alertmanager 的集中式 SRE 可观测性与告警演示平台,帮助用户快速学习和实践监控告警体系的搭建。
Stars: 0 | Forks: 0
# Prometheus 和 Grafana 告警演示
Grafana Alerting 基于 Prometheus Alerting 模型构建。本演示项目展示了 Prometheus 和 Grafana 告警系统之间的相似之处,涵盖以下主题:
- 在 Prometheus 中创建告警
- 使用 Grafana 重新创建相同的告警
- 设置基于 Loki 日志的告警
- 探索告警组件,如评估组和通知策略
- 创建模板化通知
- 以及更多内容!
本项目与这份 [Alerting 演示模板](https://docs.google.com/presentation/d/1XvJnBlNnXUjiS409ABN4NxNkFZoYDmoRKKoJqsvln-g/edit?usp=sharing)搭配使用效果极佳。它们共同为您介绍 Prometheus Alerting 模型并演示其在 Grafana 中的应用提供了一个绝佳的起点。
## 运行演示环境
此仓库包含一个 [Docker Compose 配置](./docker-compose.yaml),用于运行 Grafana、Prometheus、Prometheus Alertmanager、Loki 以及一个用于测试邮件通知的 SMTP 服务器。
要运行演示环境:
```
docker compose up
```
随后你可以访问:
- Grafana:[http://localhost:3000](http://localhost:3000/)
- Prometheus Web UI:[http://localhost:9090](http://localhost:9090/)
- Alertmanager Web UI:[http://localhost:9093](http://localhost:9093/)
### 生成测试数据
本演示使用 [Grafana k6](https://grafana.com/docs/k6) 为 Prometheus 和 Loki 生成测试数据。
[`testdata` 文件夹中的 k6 测试](./testdata/) 会注入 Prometheus 指标和 Loki 日志,您可以用它们来定义告警查询和条件。
1. 安装 **k6 v1.2.0** 或更高版本。
2. 使用以下命令运行 k6 测试:
k6 run testdata/.js
您可以修改并运行 k6 脚本,以模拟不同的告警场景。
有关将数据插入 Prometheus 或 Loki 的详细信息,请参阅 `xk6-client-prometheus-remote` 和 `xk6-loki` API。
### 接收 Webhook 通知
接收告警通知最简单的方法之一是使用 Webhook。您可以使用 [`webhook.site`](https://webhook.site/) 创建 Webhook URL 并查看传入的消息。
- 对于 Prometheus alertmanager:
将 Webhook URL 设置到 [alertmanager.yml](./alertmanager/alertmanager.yml) 配置文件中。
- 对于 Grafana:
创建一个 Webhook 联系点并将其分配给通知策略。
### 接收邮件通知
您还可以配置使用您的 Gmail 账号通过 [应用密码](https://support.google.com/accounts/answer/185833?hl=en) 发送通知。创建应用密码后:
- 对于 Prometheus Alertmanager:
在 [alertmanager.yml](./alertmanager/alertmanager.yml) 配置文件中将 `your_mail@gmail` 替换为您的 Gmail 地址。
将 `alertmanager/smtp_auth_password.example` 复制为 `alertmanager/smtp_auth_password` 并设置您的密码。
- 对于 Grafana:
将 `environments/smpt.env.example` 复制为 `environments/smpt.env` 并设置相应的环境变量值。
标签:API集成, Grafana, SRE, 偏差过滤, 可观测性, 版权保护, 监控告警, 自定义请求头, 运维