docker 實時監控:cadvisor+influxdb+grafana
1 整體介紹
docker實時監控需要滿足的要求大概有以下四點:
- 1.可以實時檢視各個container的效能(*****)
cAdvisor為Docker容器使用者提供了了解執行時容器資源使用和效能特徵的工具,它可以監控docker效能,但只能展示2分鐘的監控資料
- 2.監控歷史資料能夠長期儲存 按需檢視(****)
InfluxDB是一個開源分散式時序、事件和指標資料庫,它可以長期儲存cadvisor的監控資料。
- 3.可自己定製要檢視哪一部分哪段時間的資料(***)
Grafana是一款開源的監控繪圖工具,它可以實時收集、儲存、顯示時間序列型別的資料(time series data)。
- 4.可實時監控不同docker的效能(**)
在不同的docker上都開啟cadvisor,然後將cadvisor的資料存入influxDB上不同的資料庫,然後用grafana展示不同資料庫的監控資料即可實時監控不同docker的效能。
2 操作步驟
- 1.建立並啟動influxdb,8083用於資料庫管理介面,8086用於Influxdb資料讀寫。
docker create -p 8083:8083 -p 8086:8086 -v /opt/influxdb:/var/lib/influxdb --name=influxdb --hostname=influxdb tutum/influxdb
docker start influxdb
在瀏覽器中輸入ip:8083,開啟資料庫管理介面,建立資料庫cadvisor,設定資料庫使用者名稱和密碼。
- 2.在需要監控的docker上啟動cadvisor
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --hostname=cadvisor --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_host=ip:8086 -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=123456
其中:
-storage_driver_host為上一步的host:port
-storage_driver_db為上一步建立的資料庫的名稱
-storage_driver_user為上一步設定的username
-storage_driver_password為上一步設定的password
在瀏覽器中開啟ip:8080,可使用cadvisor監控2分鐘內的效能
在上一步的ip:8083中,將資料庫切換為新建的cadvisor,Query中輸入SHOW MEASUREMENTS回車,看到下圖所示的樣子即為資料注入成功,反之請檢查哪裡輸入錯誤。
- 3.部署gafana
docker create -p 3000:3000 --hostname grafana --name grafana grafana/grafana
docker start grafana
在瀏覽器輸入ip:3000檢視gafana,預設使用者名稱和密碼是admin/admin建立資料庫,如下圖,填寫完成後點選save&test:
建立new dashboard->new graph,如下圖是cpu_usage_total,建立完成後點選儲存即可。
此外,可根據需要建立不同的graph。
3.總結
使用cadvisor+influxdb+grafana可以實時監控docker效能,也可以根據需要將關注的不同docker/container的各項資料放在grafana中展示。
注:influxdb和grafana只需要部署一次,然後根據需要將cadvisor部署在需要被監測的docker上即可。