本帖最后由 wuqiong 于 2018-7-12 15:42 编辑
概述性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息。在我的前文《Docker容器可视化监控中心搭建》之中我们就实践过Docker容器的可视化监控,在那篇文章中我们是使用了 cAdvisor + influxdb + grafana 技术栈来完成的。然而容器化世界里向来不会只有一种方法来实现某项功能,可以说有一百条大路来通到罗马,因此本文再来探讨另一种称为 TICK的技术栈方案来实现Docker容器的性能监控。 基于TICK技术栈实现的Docker容器可视化监控方案架构图如下所示: 这四个组件组成了性能监控的数据管道:Telegraf负责采集节点上的性能数据,然后放入InfluxDB数据库进行存储,Kapacitor通过监听InfluxDB的性能数据来对异常指标发出告警,而Chronograf用来展示集群实时的各项性能指标和状态,提供一个可视化的界面。 下面开始实践的过程!
部署InfluxDB服务首先准备好 InfluxDB 配置文件:influxdb.conf mkdir /etc/influxdbcd /etc/influxdbtouch 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://blog.csdn.net/wangshuaiwsws95/article/details/80921021
|