七、Docker監控方案(cAdvisor+InfluxDB+Grafana)

1、組件介紹

咱們採用如今比較流行的cAdvisor+InfluxDB+Grafana組合進行Docker監控。python

一、cAdvisor(數據採集)

開源軟件cAdvisor(Container Advisor)是用於監控容器運行狀態的利器之一,該項目主頁爲https://github.com/google/cadvisor,它被用於多個與docker相關的開源項目中。實際上在Kubernetes系統中,cAdvisor已經被默認集成到了kubelet組件內。cAdvisor提供了web界面可供瀏覽器訪問,在接下來的環境中咱們會部署CAdvisor來收集數據信息。git

二、Influxdb(數據存儲)

Influxdb是用Go語言編寫的一個開源的分佈式時序、事件和指標數據庫,不須要外部依賴,該項目的主頁爲https://www.influxdata.com。github

它有三大特性:web

  • 時序性(Time Series):與時間相關的函數的靈活使用(諸如最大、最小、求和等)。
  • 度量(Metrics):對實時大量數據進行計算。
  • 事件(Event):支持任意的事件數據,換句話說,任意事件的數據咱們均可以作操做。

同時,它還有如下幾大特色:sql

  • schemaless(無結構),能夠是任意數量的列;
  • min, max, sum, count, mean, median 一系列函數,方便統計;
  • Native HTTP API, 內置http支持,使用http讀寫;
  • Powerful Query Language 相似sql;
  • Built-in Explorer 自帶管理工具。

三、Grafana(數據展現)

 Grafana是一個可視化面板(Dashboard),有着很是漂亮的圖表和佈局展現,功能齊全的度量儀表盤和圖形編輯器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB做爲數據源。Grafana主要特性:靈活豐富的圖形化選項;能夠混合多種風格;支持白天和夜間模式;多個數據源。其項目官方地址爲https://grafana.com。docker

 

 2、組件安裝

一、安裝流程

  • 建立自定義網絡monitor(自定義網絡名稱),確保各容器都處於monitor網絡;
  • 建立Influxdb容器,建立數據用戶grafana:grafana、數據庫:vadvisor;
  • 建立cAdvisor容器;
  • 建立Grafana容器,配置grafana;

  

二、安裝部署

a、建立網絡數據庫

[root@localhost ~]# docker network create monitor
46d9e7c32080ac35e1d3034ecf4edf2af804de9352eca37373f7437e37b1368d

  

 

b、建立influxdb容器瀏覽器

[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
a0fdc618d380ece7dabd7f1f802935502d0c6ae3f606216afed5dafc43ea8da5

 

 c、訪問influxdb網絡

經過容器的8083端口訪問web頁面。less

d、建立數據庫cadvisor和用戶

cadvisor數據庫用於存儲數據,用戶用於grafana上進行鏈接,後續會用到此用戶。

 

e、建立cadvisor容器

$docker run -d \
--name=cadvisor \
--net monitor \
-p 8080:8080 \
--mount type=bind,src=/,dst=/rootfs,ro \
--mount type=bind,src=/var/run,dst=/var/run \
--mount type=bind,src=/sys,dst=/sys,ro \
--mount type=bind,src=/var/lib/docker/,dst=/var/lib/docker,ro \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086

  

查看容器是否建立成功:

 

訪問cadvisor

經過8081端口訪問cadvisor:

 

 f、安裝grafana容器

docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana

  

 

g、訪問grafana

 

三、容器監控

a、添加數據源

 

b、製做dashboard

新建dashboard,選擇類型爲Graph:

 

c、添加監控指標

 

 d、製做模板

按照c步驟中添加各個指標,而後作成模板,後續你想監控哪一個容器就直接替換container_name便可,是否是棒棒噠?

到這裏cAdvisor+InfluxDB+Grafana容器監控系統就部署完成了,是否是很是簡單?

可是,要作好容器的監控,知道這些還遠遠不行,咱們不但願每次都手動去添加吧?若是有成千上萬個容器,到那個時候該怎麼監控呢?確定是一種自動添加方式了,而不是原始的手工操做哦。

相關文章
相關標籤/搜索