通過docker stats命令可以很方便的看到當(dāng)前宿主機(jī)上所有容器的CPU,內(nèi)存以及網(wǎng)絡(luò)流量等數(shù)據(jù),一般小公司夠用了。但是,docker stats統(tǒng)計(jì)結(jié)果只能是當(dāng)前宿主機(jī)的全部容器,數(shù)據(jù)資料是實(shí)時(shí)的,沒有地方存儲(chǔ)、沒有健康指標(biāo)過線預(yù)警等功能
容器監(jiān)控3劍客
CAdvisor監(jiān)控收集+InfluxDB存儲(chǔ)數(shù)據(jù)+Granfana展示圖表
CAdvisor
CAdvisor是一個(gè)容器資源監(jiān)控工具,包括容器的內(nèi)存,CPU,網(wǎng)絡(luò)IO,磁盤IO等監(jiān)控,同時(shí)提供了一個(gè)
WEB頁面用于查看容器的實(shí)時(shí)運(yùn)行狀態(tài)。CAdvisor默認(rèn)存儲(chǔ)2分鐘的數(shù)據(jù),而且只是針對(duì)單物理機(jī)。
不過,CAdvisor提供了很多數(shù)據(jù)集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成,可以加
上對(duì)應(yīng)配置將監(jiān)控?cái)?shù)據(jù)發(fā)往這些數(shù)據(jù)庫存儲(chǔ)起來。
CAdvisor功能主要有兩點(diǎn)
- 展示Host和容器兩個(gè)層次的監(jiān)控?cái)?shù)據(jù)。
- 展示歷史變化數(shù)據(jù)。
InfluxDB
InfluxDB是用Go語言編寫的一個(gè)開源分布式時(shí)序、事件和指標(biāo)數(shù)據(jù)庫,無需外部依賴。
CAdvisor默認(rèn)只在本機(jī)保存最近2分鐘的數(shù)據(jù),為了持久化存儲(chǔ)數(shù)據(jù)和統(tǒng)一收集展示監(jiān)控?cái)?shù)據(jù),需要將數(shù)據(jù)存儲(chǔ)到InfluxDB中。InfluxDB是一個(gè)時(shí)序數(shù)據(jù)庫,專門用于存儲(chǔ)時(shí)序相關(guān)數(shù)據(jù),很適合存儲(chǔ)CAdvisor的數(shù)據(jù)。而且,CAdvisor本身已經(jīng)提供了InfluxDB的集成方法,豐啟動(dòng)容器時(shí)指定配置即可。
InfluxDB主要功能:
- 基于時(shí)間序列,支持與時(shí)間有關(guān)的相關(guān)函數(shù)(如最大、最小、求和等);
- 可度量性:你可以實(shí)時(shí)對(duì)大量數(shù)據(jù)進(jìn)行計(jì)算;
- 基于事件:它支持任意的事件數(shù)據(jù);
Granfana
Grafana是一個(gè)開源的數(shù)據(jù)監(jiān)控分析可視化平臺(tái),支持多種數(shù)據(jù)源配置(支持的數(shù)據(jù)源包括InfluxDB, MySQL, Elasticsearch, OpenTSDB、Graphite等)和豐富的插件及模板功能,支持圖表權(quán)限控制和報(bào)警Grafan主要特性
- 靈活豐富的圖形化選項(xiàng)
- 可以混合多種風(fēng)格
- 支持白天和夜間模式
- 多個(gè)數(shù)據(jù)源
compose容器編排+容器監(jiān)控三劍客
新建目錄
新建3件套組合的docker-compose.yml
version: '3.1'
volumes:
grafana_data: {}
services:
influxdb:
image: tutum/influxdb:0.9
restart: always
environment:
- PRE_CREATE_DB=cadvisor
ports:
- "8083:8083"
- "8086:8086"
volumes:
- ./data/influxdb:/data
cadvisor:
image: google/cadvisor
links:
- influxdb:influxsrv
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
restart: always
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
user: "104"
image: grafana/grafana
user: "104"
restart: always
links:
- influxdb:influxsrv
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- HTTP_USER=admin
- HTTP_PASS=admin
- INFLUXDB_HOST=influxsrv
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=cadvisor
- INFLUXDB_USER=root
- INFLUXDB_PASS=root
啟動(dòng)docker-compose文件
docker-compose up
等待比較長(zhǎng)的一段時(shí)間
實(shí)在太慢可以考慮換源
https://www.yii666.com/blog/450976.html
查看三個(gè)服務(wù)容器是否啟動(dòng)
瀏覽cAdvisor收集服務(wù),http://ip:8080/
第一次訪問慢,cadvisor也有基礎(chǔ)的圖形展現(xiàn)功能,這里主要用它來作數(shù)據(jù)采集
瀏覽influxdb存儲(chǔ)服務(wù),http://ip:8083/
瀏覽grafana展現(xiàn)服務(wù),http://ip:3000
默認(rèn)帳戶密碼(admin/admin)
配置數(shù)據(jù)源
選擇influxdb數(shù)據(jù)源
選擇InfluxDB數(shù)據(jù)源,Name不要寫死IP , 使用名稱即可 , 因?yàn)榍懊娴膁ocker-compose 容器編排文件中有配置名稱這塊 , 且IP有可能隨著Docker 的每一次重啟而變動(dòng)
配置細(xì)節(jié)
Database 使用cadvisor 同樣是因?yàn)榍懊嫖覀冊(cè)赿ocker-compose文件中有給influxDB初始化了一個(gè)數(shù)據(jù)庫, cAdvisor也是將數(shù)據(jù)寫入的該庫 , 賬戶 root 密碼自己設(shè)置。
配置面板panel
添加一個(gè)面板
在右側(cè)可以選擇各式各樣的圖形 , 柱狀圖 , 虛線圖等
Query一欄里面的配置類似于SQl的選項(xiàng), default是默認(rèn)查詢那個(gè)字段, 后面是篩選條件 , 其他的都不用管 ALIAS 是給這項(xiàng)起個(gè)別名, 如果需要一張圖展示多個(gè)數(shù)據(jù)項(xiàng), 可以繼續(xù)添加查詢語句 , B 、C之類的 ,
配置完成之后進(jìn)行保存
文章來源:http://www.zghlxwxcb.cn/news/detail-614571.html
到這里cAdvisor+InfluxDB+Grafana容器監(jiān)控系統(tǒng)就部署完成了文章來源地址http://www.zghlxwxcb.cn/news/detail-614571.html
到了這里,關(guān)于Docker容器監(jiān)控之 CAdvisor+InfluxDB+Granfana的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!