利用TICK對Docker進行視覺化監控
阿新 • • 發佈:2019-01-09
效能監控是容器服務必不可少的基礎設施,容器化應用運行於宿主機上,我們需要知道該容器的執行情況,包括 CPU使用率、記憶體佔用、網路狀況以及磁碟空間等等一系列資訊。本文通過TICK 的技術棧方案實現Docker的效能監控。
一、監控結構
Telegraf: 採用外掛機制實現的資料採集服務,可以採集Docker的多種效能資料
Influxdb:時序資料庫,用於儲存Docker的效能資料
Chronograf: 基於React.js編寫的效能資料視覺化服務
Kapacitor: 提供告警和觸發功能
Docker:上述元件以容器形式執行在Docker上
二、部署服務
1、部署influxdb
influxdb的配置檔案influxdb.conf如下:
[meta]
dir = "/var/lib/influxdb/meta"
[data]
dir = "/var/lib/influxdb/data"
wal-dir = "/var/lib/influxdb/wal"
啟動influxdb容器
$ docker run -d --name docker-monitor-influxdb \ -p 8086:8086 \ -v/home/docker/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf \ -v /var/lib/influxdb:/var/lib/influxdb \ docker.io/influxdb
2、部署Telegraf
telegraf的配置檔案telegraf.conf如下:
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
debug = false
quiet = false
hostname = "www.painter_No11.cn"
omit_hostname = false
[[outputs.influxdb]]
urls = ["http://docker-monitor-influxdb:8086"]
database = "telegraf"
username = ""
password = ""
write_consistency = "any"
timeout = "5s"
[[inputs.docker]]
endpoint = "unix:///var/run/docker.sock"
container_names = []
timeout = "5s"
perdevice = true
total = false
[[inputs.cpu]]
[[inputs.system]]
啟動telegraf容器
$ docker run -d --name docker-monitor-telegraf \
--link=docker-monitor-influxdb \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf \
docker.io/telegraf
3、部署Chronograf
啟動Chronograf容器
$ docker run -d --name docker-monitor-chronograf \
-p 8888:8888 --link=docker-monitor-influxdb \
-v /var/lib/chronograf:/var/lib/chronograf docker.io/chronograf \
--influxdb-url=http://docker-monitor-influxdb:8086
4、部署Kapacitor
啟動Kapacitor容器
$ docker run -d --name docker-monitor-kapacitor -p 9092:9092 \
-h=kapacitor \
-e KAPACITOR_INFLUXDB_0_URLS_0=http://docker-monitor-influxdb:8086 \
--link=docker-monitor-influxdb \
-v /var/lib/kapacitor:/var/lib/kapacitor docker.io/kapacitor
三、監控展示
1、訪問docker容器所在主機的8888
埠可以訪問Chronograf頁面,點選HOST LIST,可以檢視主機:
選中指定host點選後會跳轉到效能詳情頁面:
也可以選定HOST中某個APP進行詳情監控,如點選docker