栏目头部广告

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

http://$ip:8080

image2022-4-5_17-22-22.png

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_开头的。

image2022-4-5_17-32-8.png

image2022-4-5_17-29-42.png

注:重启容器后,可以发现这里多了一个docker-monitor的监控组。并且打了docker-monitor标签。

image2022-4-5_17-33-58.png

2.3 Docker部署Grafana

[root@kvm ~]# docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana

三、Grafana展示

3.1 添加grafana数据源

image2022-4-5_17-38-1.png

3.2 监控docker主机模板

监控Docker主机模板ID:193
https://grafana.com/dashboards

image2022-4-5_17-42-21.png

image2022-4-5_17-43-8.png

四、监控多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

image2022-4-5_17-54-15.png

注:此时发现已经多了一个节点~

4.3 grafana展示调整

  • 点击设置仪表盘

image2022-4-5_17-56-58.png

  • 列出所有被监控端

image2022-4-5_17-59-12.png

  • grafana设置多端监控

image2022-4-5_18-3-32.png

image2022-4-5_18-16-31.png

image2022-4-5_18-17-34.png

  • grafana大盘监控图做适配

image2022-4-5_18-19-10.png

  • 通过变量获取当前捕获的节点

image2022-4-5_18-20-18.png

image2022-4-5_18-24-55.png

注:其它大盘监控图调整方式相同~

image2022-4-5_18-32-38.png

作者:UStarGao
链接:https://www.starcto.com/monitor/287.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`