1. 程式人生 > 其它 >docker容器監控系統

docker容器監控系統

Cadvisor+InfluxDB+Grafana

Cadvisor
Cadvisor是檢測單節點資源資訊的工具,提供了一個http介面的查詢介面,可以和其他工具整合使用,Cadvisor既可以採集宿主機還可以採集容器的資源資料進行事實監控,包括,CPU,記憶體,網路,等等,利用linux的Cgroups獲取容器的資源資訊
k8s的各個節點預設安裝Cadvisor

特點

  • 可以展示主機和容器兩個層次的監控資料
  • 可以展示歷史變化資料
  • 監控指標齊全
  • 方便部署,將官方的映象直接下載使用
  • 預設只會在本地儲存一分鐘資料,需要第三方儲存

因為它的介面太過於簡陋,需要第三方工具加工使用,並且只能監控一個節點,有多少個就要安裝多少個,等等,所以總的來說它只適合於監控資料收集,需要第三方工具加工處理

InfluxDB
InfluxDB是一個開源的非關係時序型資料庫,主要用於高效能查詢與儲存時序型資料,InfluxDB用於儲存系統的監控資料。

主要功能

  • 基於時間序列,支援時間有關的函式命令
  • 可度量性:可以實時對大量資料計算
  • 基於事件:支援任意事件資料

特點

  • 無結構(無模式):可以是任意數量的列
  • 支援擴充套件
  • 支援時間等函式使用
  • 自帶管理介面
  • 強大的類SQL語句

Grafana
Grafana是一個視覺化面板工具,可以從Graphite,zabbix,InfluxDB,Prometheus等元件提取資料展示

特點

  • nb的圖形化
  • 支援多個數據源

監控元件架構

Cadvisor使用者資料採集,InfluxDB用於資料儲存,Grafana用於資料展示

監控元件構架部署方案

需要上述三個映象
[root@localhost ~]# docker load < cadvisor.tar
[root@localhost ~]# docker load < influxdb.tar
[root@localhost ~]# docker load < grafana.tar 
[root@localhost ~]# docker load < prometheus.tar 

#建立自定義網路
[root@localhost ~]# docker network create monitor
[root@localhost ~]# docker network ls
5fe0ef94b68a   monitor             bridge    local

#建立InfluxDB容器
[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE            COMMAND     CREATED          STATUS          PORTS                                                                                  NAMES
f8304d8dc5e1   tutum/influxdb   "/run.sh"   54 seconds ago   Up 52 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp   influxdb
#-d:後臺執行容器
#--name:啟動容器分配名字:influxdb
#--net:將容器加入到新的網路monitor
#-p:對映埠:8083後臺控制埠,8086資料埠

#此時可以訪問頁面使用8083後臺控制埠

建立Cadvisor容器