Docker容器監(jiān)控之 CAdvisor+InfluxDB+Granfana

一、簡介

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)行綁定

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容