name: 💰 Bounty - Observability Stack
about: 实现完整可观测性 (Prometheus, Grafana, Loki, Tempo, Alertmanager, Uptime Kuma)
title: '[BOUNTY $280] Observability Stack — 完整可观测性'
labels: bounty, hard
assignees: ''
赏金金额
$280 USDT
任务描述
实现覆盖 Metrics / Logs / Traces / Alerting / Uptime 的完整可观测性栈(可观测性三支柱 + SLA 监控)。
服务清单
| 服务 |
镜像 |
用途 |
| Prometheus |
prom/prometheus:v2.54.1 |
指标采集 |
| Grafana |
grafana/grafana:11.2.2 |
可视化面板 |
| Loki |
grafana/loki:3.2.0 |
日志聚合 |
| Promtail |
grafana/promtail:3.2.0 |
日志采集 Agent |
| Tempo |
grafana/tempo:2.6.0 |
分布式链路追踪 |
| Alertmanager |
prom/alertmanager:v0.27.0 |
告警路由 |
| cAdvisor |
gcr.io/cadvisor/cadvisor:v0.50.0 |
容器指标 |
| Node Exporter |
prom/node-exporter:v1.8.2 |
主机指标 |
| Uptime Kuma |
louislam/uptime-kuma:1.23.15 |
服务可用性监控 |
| Grafana OnCall |
grafana/oncall:v1.9.22 |
值班告警管理 |
核心要求
1. Prometheus 采集目标
config/prometheus/prometheus.yml 需采集:
scrape_configs:
- job_name: cadvisor # 容器资源
- job_name: node-exporter # 主机资源
- job_name: traefik # 反代指标
- job_name: authentik # SSO 指标
- job_name: nextcloud # 存储指标
- job_name: gitea # 代码托管指标
- job_name: prometheus # 自监控
2. Grafana 预置 Dashboard
必须通过 provisioning 自动加载(不需要手动导入):
| Dashboard |
来源 Dashboard ID |
| Node Exporter Full |
1860 |
| Docker Container & Host Metrics |
179 |
| Traefik Official |
17346 |
| Loki Dashboard |
13639 |
| Uptime Kuma |
18278 |
所有 Dashboard 以 JSON 文件存放在 config/grafana/dashboards/。
3. 告警规则
config/prometheus/alerts/ 包含:
# host.yml
- 主机 CPU > 80% 持续 5 分钟
- 主机内存 > 90%
- 主机磁盘 > 85%
- 主机磁盘 IO 异常
# containers.yml
- 容器重启次数 > 3 次/小时
- 容器 OOM 被杀
- 容器健康检查失败
# services.yml
- Traefik 5xx 错误率 > 1%
- 服务响应时间 P99 > 2s
所有告警路由到 Alertmanager → ntfy 推送。
4. Loki 日志采集
Promtail 配置采集:
- 所有 Docker 容器日志(自动发现)
- 系统日志
/var/log/syslog
- Traefik access log
Grafana 中提供 Loki Explore 快捷链接:/d/logs/logs
5. Uptime Kuma
scripts/uptime-kuma-setup.sh 自动创建监控项:
- 检测所有已部署服务的健康端点
- 状态页通过
status.${DOMAIN} 公开访问(无需登录)
- 宕机通知发送到 ntfy
6. Grafana 认证
- 集成 Authentik OIDC
homelab-admins 组 → Grafana Admin 角色
homelab-users 组 → Grafana Viewer 角色
7. 数据保留策略
# .env
PROMETHEUS_RETENTION=30d
LOKI_RETENTION=7d
TEMPO_RETENTION=3d
验收标准
认领方式
评论 "我来认领"。
name: 💰 Bounty - Observability Stack
about: 实现完整可观测性 (Prometheus, Grafana, Loki, Tempo, Alertmanager, Uptime Kuma)
title: '[BOUNTY $280] Observability Stack — 完整可观测性'
labels: bounty, hard
assignees: ''
赏金金额
$280 USDT
任务描述
实现覆盖 Metrics / Logs / Traces / Alerting / Uptime 的完整可观测性栈(可观测性三支柱 + SLA 监控)。
服务清单
prom/prometheus:v2.54.1grafana/grafana:11.2.2grafana/loki:3.2.0grafana/promtail:3.2.0grafana/tempo:2.6.0prom/alertmanager:v0.27.0gcr.io/cadvisor/cadvisor:v0.50.0prom/node-exporter:v1.8.2louislam/uptime-kuma:1.23.15grafana/oncall:v1.9.22核心要求
1. Prometheus 采集目标
config/prometheus/prometheus.yml需采集:2. Grafana 预置 Dashboard
必须通过
provisioning自动加载(不需要手动导入):所有 Dashboard 以 JSON 文件存放在
config/grafana/dashboards/。3. 告警规则
config/prometheus/alerts/包含:所有告警路由到 Alertmanager → ntfy 推送。
4. Loki 日志采集
Promtail 配置采集:
/var/log/syslogGrafana 中提供 Loki Explore 快捷链接:
/d/logs/logs5. Uptime Kuma
scripts/uptime-kuma-setup.sh自动创建监控项:status.${DOMAIN}公开访问(无需登录)6. Grafana 认证
homelab-admins组 → Grafana Admin 角色homelab-users组 → Grafana Viewer 角色7. 数据保留策略
# .env PROMETHEUS_RETENTION=30d LOKI_RETENTION=7d TEMPO_RETENTION=3d验收标准
stress --cpu 4),ntfy 在 5 分钟内收到告警uptime-kuma-setup.sh自动创建所有服务监控项认领方式
评论 "我来认领"。