cadvisor+influxdb+grafana能夠實現容器信息獲取、存儲、顯示等容器監控功能,是目前流行的docker監控開源方案。html
cadvisormysql
Google開源的用於監控基礎設施應用的工具,能夠零配置運行在docker主機上來監控Docker主機以及Docker容器。其爲單節點監控,只能監控一個主機。多節點監控可參考Google的Kubernetes。做爲docker服務的監控數據收集器,提供給influxdb。git
influxdbgithub
InfluxDB 是用Go語言編寫的一個開源分佈式時序、事件和指標數據庫,無需外部依賴、提供管理界面。提供基於時間序列,基於事件的可度量的實時計算功能。sql
grafanadocker
Grafana可視化大型測量數據的開源程序,有靈活豐富的圖形化選項,能夠混合多種風格,多個數據源。例如Graphite、zabbix、InfluxDB、Prometheus、mysql和OpenTSDB 詳見配置頁面。數據庫
在Ubuntu16.04上可經過docker部署體驗。瀏覽器
docker run -p 8083:8083 -p 8086:8086 --name=influxdb --hostname=influxdb tutum/influxdb
經過ip:8083瀏覽器訪問數據庫,設置用戶名和密碼爲root,save保存。框架
建立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=192.168.134.144:8086 -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=root
注:-storage_driver_host=ip:8086
經過IP:8080訪問cadvisor,可看到主機實時信息和圖示,不只包含docker信息還有整個系統信息,如CPU和Filesystem。
可經過IP:8080/metrics獲取全部採集數據(某一時刻)。
此時,可在influxdb界面中看到advisor採集的數據,驗證兩容器運行正常。
docker run -d -p 3000:3000 --hostname grafana --name grafana grafana/grafana
注:測試版本爲latest,即6.2.4。
可經過IP:3000瀏覽grafana,用戶名密碼都是admin。
1) 首先添加數據源InfluxDB。
2) 配置數據源
點選按鈕「Save&Test」,確保輸出「Data source is working」。
3) 添加dashboard->Add Query, 配置查詢
點選所需配置項,而後保存便可。
4) 能夠配置報警信息,如mem管控等
內存超過250MB報警。
5) 配置CPU和memory界面以下圖
參考:
1. Docker監控:基於阿里雲容器服務構建本身的Docker監控框架
2. https://github.com/Kentik/docker-monitor
3. https://www.brianchristner.io/how-to-setup-docker-monitoring/
4. docker監控方案的最佳實踐(cadvisor+influxdb+grafana)
5. docker 實時監控:cadvisor+influxdb+grafana
6. https://rancher.com/comparing-10-container-monitoring-solutions-rancher/