企业级Docker监控体系搭建
cAdvisor 6060
cAdvisor(Container Advisor)是 Google 开源的容器监控工具,能够实时采集 Docker 的 CPU、内存、网络、文件系统等资源使用指标,并提供 Web UI 和 API 接口,是 Prometheus 生态中容器级监控的核心组件。
浏览器打开 https://github.com/google/cadvisor/releases/download/v0.46.0/cadvisor-v0.46.0-linux-amd64 ,自动下载文件。
上传到 /nwa/cAdvisor 文件夹下,并新建 Dockerfile 文件,内容如下:
1 | # ubuntu作为基础镜像 |
构建镜像:
1 | cd /nwa/cAdvisor |
运行容器:
1 | docker run \ |
数据公开指标:http://ip:6060/metrics
使用 Prometheus 监控 cAdvisor。
Node Exporter 9100
Node Exporter 是 Prometheus 官方提供的主机指标采集器,用于收集物理机或虚拟机的 CPU、内存、磁盘、网络等硬件和操作系统层面的运行指标,是 Prometheus 主机级监控的核心组件。
默认端口为 9100,改了端口发现无法访问。
1 | 安装Node Exporter 来收集硬件信息 |
访问地址:http://ip:9100/metrics
可补充指令(在 /host 后面补充):
1 | \ |
collector. 启用指标,--no-collector. 禁用指标,--collector.disable-defaults 禁用所有默认启用的指标。
Prometheus 6061
Prometheus 是一款开源的监控告警系统,具备灵活的多维数据模型和强大的 PromQL 查询语言,支持自动服务发现和拉取式指标采集,是整个监控体系的核心调度中枢。
在 /nwa/prometheus 下新建 prometheus.yml:
1 | global: |
alertRule.yml:
1 | #配置规则 |
应用程序监控,如果应用程序挂了,触发邮件发送开发人员。
alertmanager.yml 配置文件如果测试服务是在阿里云,需要将 25 端口(被禁用)改成其它的:
1 | global: |
启动 Prometheus:
1 | docker run -itd --name prometheus -p 6061:9090 \ |
访问地址:http://ip:6061
AlertManager 6062
AlertManager 是 Prometheus 生态中的告警管理组件,负责接收 Prometheus 触发的告警,对其进行去重、分组、路由和抑制,并通过邮件、钉钉、Webhook 等方式将告警通知推送给相关人员。
- 去重:对同时触发的多个相同的警报去重
- 分组:同一个组的所有警报信息将被合并为一个警报通知,避免一次性接收大量的警告通知
- 路由:可根据情况配置路由,通知不同角色的运维人员
- 抑制:当某一个警告发出后,可以停止重复发送由此警告引发的其他警告
- 静默:被静默的标签将不会进行警告通知
创建挂载目录 config 和 template,赋予权限:
1 | chmod -R 777 /nwa/prometheus/config |
启动报警管理器:
1 | docker run --name alertmanager -d -p 6062:9093 quay.io/prometheus/alertmanager:latest |
访问 http://ip:6062 可查看报警信息。
Grafana 6063
Grafana 是一款开源的数据可视化平台,支持对接 Prometheus、MySQL、Elasticsearch 等多种数据源,提供丰富的图表组件和仪表板模板,能够将监控数据以直观的图形化方式展示。
用户名:admin,默认密码:admin。
1 | docker run -d -p 6063:3000 --name=grafana -v /var/lib/grafana grafana/grafana-enterprise |
访问地址:http://ip:6063
改密码:Nwa@7..
设置路径:Home → Administration → General → Default preferences → 中文,插件下载 Prometheus,地址 http://ip:6061,然后创建仪表板 → 导入仪表板 8919 加载 → 源选普罗米修斯。193 是 Docker 的大屏。
总结
cAdvisor、Node Exporter 和 Prometheus 是在云原生环境中非常常用的监控工具,它们各自有着独特的功能和优势,结合使用可以构建强大、全面的监控系统。
cAdvisor:
- 优势:cAdvisor 提供了对 Docker 容器的详细监控,包括 CPU 使用率、内存使用情况、网络流量、文件系统使用情况等,能够准确地监控容器的资源利用情况和性能指标。
- 限制:cAdvisor 在大规模集群中监控能力受到限制,对于复杂的监控需求不够灵活。
Node Exporter:
- 优势:Node Exporter 能够监控物理机或虚拟机的资源使用情况,包括 CPU、内存、磁盘、网络等,为 Prometheus 提供了丰富的主机级监控指标。
- 限制:Node Exporter 主要面向物理机和虚拟机,对于容器化环境的监控支持相对较弱。
Prometheus:
- 优势:Prometheus 是一款强大的开源监控系统,具有多维数据模型、灵活的查询语言和强大的数据可视化能力,能够实时监控和调查大规模云原生环境中的监控数据。
- 限制:在极端大规模和高并发场景下,Prometheus 会遇到一些性能问题。







