一、簡介
CAdvisor監(jiān)控收集+InfluxDB存儲(chǔ)數(shù)據(jù)+Granfana展示圖表
1.CAdvisor
CAdvⅵsor是一個(gè)容器資源監(jiān)控工具,包括容器的內(nèi)存,CPU,網(wǎng)絡(luò)IO,磁盤IO等監(jiān)控,同時(shí)提供了WEB頁面用于查看容器的實(shí)時(shí)運(yùn)行狀態(tài)。CAdvisor默認(rèn)存儲(chǔ)2分鐘的數(shù)據(jù),而且只是針對單物理機(jī)。不過,CAdvisor提供了很多數(shù)據(jù)集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成上對應(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ù)
2.InfluxDB
InfluxDB是用Go語言編寫的一個(gè)開源分布式時(shí)序、事件和指標(biāo)數(shù)據(jù)庫,無需外部依賴。CAdviso默認(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ǔ)CAdvisorE的數(shù)據(jù)。而且,CAdvisorz本身已經(jīng)提供了InfluxDB的集成方法,豐啟動(dòng)容器時(shí)指定配置即可。
InfluxDB主要功能:
- 基于時(shí)間序列,支持與時(shí)間有關(guān)的相關(guān)函數(shù)(如最大、最小、求和等)
- 可度量性:你可以實(shí)時(shí)對大量數(shù)據(jù)進(jìn)行計(jì)算
- 基于事件:它支持任意的事件數(shù)據(jù)
3.Granfana
Grafana是一個(gè)開源的數(shù)據(jù)監(jiān)控分析可視化平臺,支持多種數(shù)據(jù)源配置(支持的數(shù)據(jù)源包括InfluxDB,小ySQ,Elasticsearc?h,OpenTSDB,Graphites等)和豐富的插件及模板功能,支持圖表權(quán)限控制和報(bào)警。
Grafan主要特性:
- 靈活豐富的圖形化洗項(xiàng)
- 可以混合多種風(fēng)格
- 支持白天和夜間模式
- 多個(gè)數(shù)據(jù)源
二、配置
compose容器編排配置
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
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
運(yùn)行docker-compose up -d



配置grafana
1.配置數(shù)據(jù)源

2.選擇influxdb數(shù)據(jù)源



3.配置面板


在
docker stats中可以看到我們各容器運(yùn)行所占用的資源
我們可以綁定這里的容器名進(jìn)行綁定

