musakhalidwork-alt/Enterprise-Observability-Stack-with-Prometheus-Grafana-Loki
GitHub: musakhalidwork-alt/Enterprise-Observability-Stack-with-Prometheus-Grafana-Loki
基于 Grafana Labs 全家桶(Loki + Alloy + Mimir + Grafana)的一站式 Docker Compose 可观测性部署方案,解决单节点环境下指标采集与日志聚合的统一管理问题。
Stars: 0 | Forks: 0
# Docker 可观测性技术栈 (Loki + Alloy + Mimir + Grafana)
本仓库包含一个使用 Docker Compose 构建的**自托管可观测性技术栈**,专为仅使用 Grafana Labs 组件的**生产就绪单节点部署**而设计。
该技术栈提供:
- 📄 **Docker 容器日志** → Loki
- 📊 **主机指标** → Node Exporter → Alloy → Mimir
- 📈 **可视化与查询** → Grafana
- 🔒 仅 **Grafana** 对外暴露给宿主机
- 🧠 没有传统的 Prometheus 实例(Mimir 作为 PromQL 后端运行)
## 🧩 组件
| 服务 | 用途 |
|-------|---------|
| **Loki** | 日志存储与查询 |
| **Alloy** | 统一 agent(日志 + 指标) |
| **Mimir** | 兼容 Prometheus 的指标后端 |
| **Node Exporter** | 暴露主机指标 |
| **Grafana** | 可视化 UI |
## 架构概览
Docker 容器日志
→ Alloy
→ 日志 → Loki
→ 指标 → remote_write → Mimir → Grafana
关键设计决策:
- 直接从 Docker json-file 日志中读取日志
- 从 node-exporter 抓取指标
- Alloy 同时处理日志和指标
- Mimir 取代了对独立 Prometheus 服务器的需求
- 只有 Grafana 可以从宿主机或公共互联网访问
## Grafana 数据源
### Loki (日志)
- 类型:Loki
- URL: http://loki:3100
### Mimir (指标)
- 类型:Prometheus
- URL: http://mimir:9009/prometheus
## 安全说明
- 仅 Grafana 对外暴露给宿主机
- Loki、Mimir、Alloy 和 Node Exporter 均在 Docker 网络内部使用
- 在可能的情况下启用了 no-new-privileges
- 在适用时使用了只读挂载
## 备注
- 有意禁用了 Loki 和 Alloy 的 Healthcheck,因为它们的镜像基于 distroless 构建,
且不包含 shell 或 HTTP 客户端。
- Alloy 会自动重试,因此无需显式的健康检查门控。
## 许可证
MIT
标签:API集成, Docker Compose, Grafana, 可观测性, 多引擎聚合, 日志收集, 版权保护, 监控系统, 请求拦截, 运维