Prometheus+Grafana监控Docker容器
一、监控系统概述
cAdvisor (Container Advisor) :用于收集正在运行的容器资源使用和性能信息。
开源地址:https://github.com/google/cadvisor
Prometheus(普罗米修斯):容器监控系统。
官网地址:https://prometheus.io
开源地址:https://github.com/prometheus
Grafana:是一个开源的度量分析和可视化系统。
开源地址:https://grafana.com/grafana
cAdvisor (采集所有容器资源利用率,部署在每个docker主机上)->Prometheus(收集与存储)->Grafana(可视化展示)
二、监控系统部署
注:如果镜像拉取过慢,建议可以使用UCloud UHub镜像加速服务。推荐文章:UCloud UHub镜像库隐藏福利-海外容器镜像加速
2.1 Docker部署cAdvisor
[root@kvm ~]# docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
2.2 Docker部署Prometheus
#(1)首次运行Prometheus,并把/etc/prometheus配置copy出来 [root@kvm ~]# docker run -d \ --name=prometheus \ -p 9099:9090 \ prom/prometheus [root@kvm ~]# docker cp prometheus:/etc/prometheus/prometheus.yml /data/prometheus/ [root@kvm ~]# docker stop prometheus [root@kvm ~]# docker rm prometheus #(2)再次运行Prometheus,将其配置文件持久化到本地,方便修改 [root@kvm ~]# docker run -d \ --name=prometheus \ -p 9099:9090 \ -v /data/prometheus/:/etc/prometheus/ \ uhub.service.ucloud.cn/starcto/prometheus:latest
# 修改prometheus配置 [root@kvm ~]# vim /data/prometheus/prometheus.yml # 采样指标配置 global: scrape_interval: 15s evaluation_interval: 15s # 告警配置 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # 被监控端配置 scrape_configs: - job_name: "docker-monitor" # job表示分组,通过job_name定义组名,给组员打上标签方便管理 # metrics_path defaults to '/metrics'# 默认采集路径/metrics # scheme defaults to 'http'. # 默认采集方式为http static_configs: - targets: ["10.9.169.146:8080"] # targets表示被监控端instances [root@kvm ~]# docker restart prometheus
- Prometheus默认去cAdvisor采集的地址为:http://$IP:8080/metrics
- cAdvisor采集指标大多都是以container_开头的。
注:重启容器后,可以发现这里多了一个docker-monitor的监控组。并且打了docker-monitor标签。
2.3 Docker部署Grafana
[root@kvm ~]# docker run -d \ --name=grafana \ -p 3000:3000 \ grafana/grafana
三、Grafana展示
3.1 添加grafana数据源
3.2 监控docker主机模板
监控Docker主机模板ID:193
https://grafana.com/dashboards
四、监控多Docker主机
注:上述只监控了一台虚机,如果想要一个大盘监控多台虚机该怎么做呢?
4.1 被监控主机安装cAdvisor
[root@harbor-slave ~]# docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
4.2 修改Prometheus配置
[root@kvm ~]# vim /data/prometheus/prometheus.yml …… - job_name: "docker-monitor" static_configs: - targets: ["10.9.169.146:8080","192.168.0.164:8080"] # 增加一个待监控节点 [root@kvm ~]# docker restart prometheus
注:此时发现已经多了一个节点~
4.3 grafana展示调整
- 点击设置仪表盘
- 列出所有被监控端
- grafana设置多端监控
- grafana大盘监控图做适配
- 通过变量获取当前捕获的节点
注:其它大盘监控图调整方式相同~
作者:UStarGao
链接:https://www.starcto.com/monitor/287.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2024-09-06基于UCloud UDNS产品和NLB产品实现kafka多节点调度
- 2021-06-11Linux常用命令工具集合
- 2022-12-14Windows游戏服务器缺少.NET3.5环境依赖而诱发的时间戳转换问题
- 2021-04-10CentOS7部署开源网络流量回溯分析系统Moloch
- 2021-12-06MySQL PERFORMANCE_SCHEMA监控用法详解