TICK架构解析
基于TICK技术栈实现的Docker容器可视化监控方案架构图如下所示:

Telegraf:采用插件机制实现的数据采集服务,可以采集包含Docker容器在内的多种性能数据
InfluxDB:专门负责存储时序数据
Chronograf:基于React.js编写的性能数据可视化服务
Kapacitor:提供告警触发和处理功能
这四个组件组成了性能监控的数据管道:Telegraf负责采集节点上的性能数据,然后放入InfluxDB数据库进行存储,Kapacitor通过监听InfluxDB的性能数据来对异常指标发出告警,而Chronograf用来展示集群实时的各项性能指标和状态,提供一个可视化的界面。
下面开始实践的过程!
部署InfluxDB服务
首先准备好 InfluxDB 配置文件:influxdb.conf
mkdir /etc/influxdb
cd /etc/influxdb
touch influxdb.conf
[meta]
dir = "/var/lib/influxdb/meta"
[data]
dir = "/var/lib/influxdb/data"
wal-dir = "/var/lib/influxdb/wal"
然后利用Docker来启动InfluxDB服务:
docker run -d \
--name influxdb \
-p 8086:8086 \
-v /etc/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf \
-v /var/lib/influxdb:/var/lib/influxdb \
docker.io/influxdb
部署Telegraf服务
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.codesheep.cn"
omit_hostname = false
[[outputs.influxdb]]
urls = ["http://192.168.31.177: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]]
该配置文件比较简化,inputs插件是负责数据采集,可以看出来上面的配置说明了我们想采集节点的CPU、System以及Docker容器的各项性能数据;而outputs插件指明了我们将采集到的性能数据放入InfluxDB数据库进行存储。
然后同样利用Docker来启动Telegraf服务
docker run -d \
--name telegraf \
--network host \
-v /etc/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf \
docker.io/telegraf
Chronograf部署
docker run -d \
--name chronograf \
-p 8888:8888 \
-v /var/lib/chronograf:/var/lib/chronograf \
docker.io/chronograf \
--influxdb-url=http://192.168.31.177:8086
注意从上面的指令我们可以看出,Chronograf服务是需要连接到InfluxDB服务中去的,服务启动以后利用浏览器访问8888端口可以打开Chronograf的可视化监控界面
Kapacitor部署
docker run -d \
--name kapacitor \
-p 9092:9092 \
-v /var/lib/kapacitor:/var/lib/kapacitor \
docker.io/kapacitor
好了,至此 TICK 组件已经部署完成,我们可以查看一下宿主机上的容器情况,发现服务都已经启动起来了:

实际试验
浏览器打开:localhost:8888来访问 Chronograf 提供的可视化界面,后续所有的操作都基于该界面。
点击 Chronograf 主界面左侧菜单的 Host List,可以看到被监控的节点信息:

然后我们点击节点名进入后,就可以查看从该节点上采集到的各项主要指标数据的图表:

除此之外,我们还可以点击节点上的 Apps 具体监控小类,如 docker类别,这样可以得到仅仅与docker相关的性能数据展示:


然后我们点击 Chronograf 主界面左侧菜单的 Data Explorer,可以看到从InfluxDB那里获得的数据表,以及存储于InfluxDB数据表中的各项具体指标

最后我们来看一下如何利用Kapacitor来实现告警功能。
点击 Chronograf 主界面左侧菜单的 Alert,可以自定义创建告警规则:

这里给出一个规则配置示例:我们可以监控某个具体性能指标的变化,如配置一个告警规则等:

注:本文转自https://www.codesheep.cn/2018/07/05/%E5%88%A9%E7%94%A8TICK%E6%90%AD%E5%BB%BADocker%E5%AE%B9%E5%99%A8%E5%8F%AF%E8%A7%86%E5%8C%96%E7%9B%91%E6%8E%A7%E4%B8%AD%E5%BF%83/
Be First to Comment