Swarmprom: Docker Swarm 监控入门套件
1. 项目介绍
Swarmprom 是一个用于 Docker Swarm 集群监控的起步套件,它集成了 Prometheus(度量数据库)、Grafana(可视化工具)、cAdvisor(容器指标收集器)、Node Exporter(主机指标收集器)以及 Alertmanager(警报调度器)。这个项目旨在让监控部署变得简单、可扩展,你可以轻松地部署、修改和自定义以适应你的特定需求。
2. 项目快速启动
环境要求
确保已安装 Docker CE 17.09.0-ce 或 Docker EE 17.06.2-ee-3 及以上版本,并在一个包含至少一个管理节点和一个工作节点的 Swarm 集群上运行。还需启用 Docker 引擎实验性功能并设置 metrics 地址为 0.0.0.0:9323。
部署步骤
-
克隆项目仓库:
git clone https://github.com/stefanprodan/swarmprom.git -
设置环境变量(例如用 Slack 发送警报):
export ADMIN_USER=admin \ export ADMIN_PASSWORD=admin \ export SLACK_URL=https://hooks.slack.com/services/TOKEN \ export SLACK_CHANNEL=devops-alerts \ export SLACK_USER=alertmanager -
使用以下命令部署服务堆栈:
docker stack deploy -c docker-compose.yml mon
访问服务
- Prometheus: http:// :9090
- Grafana: http:// :3000
3. 应用案例与最佳实践
- 扩展 Swarmprom: 你可以添加特殊用途的导出器来监控 MongoDB、PostgreSQL、Kafka、Redis 等服务。也可以利用 Prometheus 的客户端库对你的应用程序进行度量。
- 被监控服务接入:将这些服务附加到
mon_net网络,或者把mon_prometheus服务附加到你的服务网络中,以便 Prometheus 可以达到它们。 - 自定义 Prometheus 配置:通过设置
JOBS环境变量,添加要抓取的服务 DNS 名称和端口。
4. 典型生态项目
- Prometheus: 作为核心的时序数据库,用于存储和查询监控数据。
- Grafana: 提供直观的仪表板,用于展示 Promethues 中的数据。
- Node Exporter: 收集主机级别的系统状态信息。
- cAdvisor: 收集容器级别的资源利用率数据。
- Alertmanager: 处理 Prometheus 触发的警报,支持通知路由和抑制策略。
此外,Swarmprom 还可以与其他监控生态系统组件集成,比如使用 Caddy 做反向代理和基本认证,以及用 Alertmanager 和 Karma 实现更复杂的警报管理。
在实际应用中,记得根据自己的集群规模和业务需求调整配置,以获得最优的监控效果。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



