性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 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