首頁>技術>

Cadvisor使用Go語言開發,利用Linux的cgroups獲取容器的資源使用資訊,cadvisor不僅可以蒐集一臺機器上所有執行的容器資訊,還提供基礎查詢介面和http介面,方便其他元件如Prometheus進行資料抓取。

本文介紹下 Cadvisor的安裝,以及如何監控容器,最後去展示資料的。

一、 使用容器部署 cadvisor 採集器
[root@prometheus ~]# docker run \  --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 \  --privileged \  --device=/dev/kmsg \  google/cadvisor:latest

#如果啟動docker 報錯 ,cadvisor Failed to start container manager: inotify_add_watch /sys/fs/cgroup/cpuacct,cpu: nosuchfile

解決方法:

1、設定cgroup 為可讀寫檔案, 不然的話會報:只讀檔案系統

2、建立軟連線

[root@prometheus ~]# mount -o remount,rw '/sys/fs/cgroup'

[root@prometheus ~]# ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu

再次啟動容器 就OK 了

二、開啟瀏覽器訪問cadvisor 控制檯

瀏覽器訪問 http://192.168.31.250:8080

可以看到 一些容器的metrics 資料

三、 在 prometheus 伺服器上配置 scrap

修改配置檔案(新增最下面的job_name: 'docker')

[root@prometheus to]# cat prometheus.ymlglobal:  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# Alertmanager configurationalerting:  alertmanagers:  - static_configs:    - targets:      # - alertmanager:9093rule_files:  # - "first_rules.yml"  # - "second_rules.yml"scrape_configs:  - job_name: 'prometheus'    static_configs:    - targets: ['192.168.31.250:9090']  - job_name: 'node'    static_configs:    - targets: ['192.168.31.30:9100','192.168.31.40:9100','192.168.31.41:9100','192.168.31.42:9100']    params:      collect[]:        - cpu        - meminfo        - diskstats  - job_name: 'docker'    static_configs:    - targets: ['192.168.31.250:8080']

#改完後記得重新載入下 prometheus 的配置檔案

[root@prometheus ~]# ps -ef | grep prometheus | grep -v grep | awk '{print $2}' | xargs kill -HUP

四、 在 prometheus 控制檯上 檢視targets

可以看到cadvisor 採集器 已經新增到targets 列表中了

五、在grafana 上展示 容器資料

這裡使用 grafana dashboard 官網中的模板 https://grafana.com/grafana/dashboards/193

登入grafana , http://192.168.31.250:3000

import 匯入模板,ID 為 193

可以自定義監控名稱,選擇資料來源為prometheus

最終效果

本篇只涉及到 使用Cadvisor監控容器並展示資料 ,並沒有寫到 觸發器的配置告警,這個等後面再更新。

17
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 為什麼Linux使用者喜歡命令列?