cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台

   日期:2024-12-26    作者:o2x3a 移动:http://ljhr2012.riyuangf.com/mobile/quote/51098.html

​ 既然是对Docker的容器进行监控,我们就不自己单独搭建cAdvisor、InfluxDB、Grarana了,本文中这三个实例,主要以Docker容器方式运行。

本文中的案例会有四台机器,他们的Host和IP地址如下,四台机器的集群搭建可以参考<Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例>



​ cAdvisor 为Docker容器用户提供了了解运行时容器资源使用和性能特征的工具。cAdvisor的容器抽象基于Google的lmctfy容器栈,因此原生支持Docker容器并能够“开箱即用”地支持其他的容器类型。cAdvisor部署为一个运行中的daemon,它会收集、聚集、处理并导出运行中容器的信息。这些信息能够包含容器级别的资源隔离参数、资源的历史使用状况、反映资源使用和网络统计数据完整历史状况的柱状图。

​ InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

其主要特色功能

  • 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)

  • 可度量性:你可以实时对大量数据进行计算

  • 基于事件:它支持任意的事件数据

    InfluxDB的主要特点

  • 无结构(无模式):可以是任意数量的列

  • 可拓展的

  • 支持min, max, sum, count, mean, median 等一系列函数,方便统计

  • 原生的HTTP支持,内置HTTP API

  • 强大的类SQL语法

  • 自带管理界面,方便使用

​ Graphite 是一款开源的监控绘图工具。可以实时收集、存储、显示时间序列类型的数据(time series data),有些类似Kibana的东西。

以下是官方的说明

  • 用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
  • 常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
  • 有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、Cloudwatch、Prometheus、InfluxDB、Elasticsearch。

​ 在以前, swarm集群需要一个额外的存储(consul, etcd etc). 来同步网络配置, 保证所有容器在同一个网段中. 在已经内置了这个存储, 集成了的支持。

​ 下面我们创建一个名为logging的overlay网络,用于后面的容器间相互通信。


​ 在列表中,可以看到网络的是,表示在整个集群是生效的。如果是在多台主机的集群中,网络在没有被使用的时候,只会在manage节点出现,使用后会自动同步到其他节点。

​ 我们第一个先安装 ,在用于收集swarm性能数据


用于Influxdb数据读写,用于数据库管理界面

对服务进行约束,指定在机器上运行,更多约束介绍参考<Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例>

挂载一个类型为volume的目录到容器上,实现数据持久化。在上运行命令可以查看目录的情况,运行命令,可以查看目录的详细信息

​ InfluxDB容器创建成功后,可以通过http://10.0.0.31:8083/打开管理界面。点击右上角的齿轮图标,登录到InfluxDB数据库,默认用户名是,密码是,然后点击进行保存

​ 创建数据库,用于收集存储的性能数据,在输入框输入然后按回车,执行命令。

​ 在输入框输入,可以看到我们刚才创建的数据库

​ 创建cAdvisor容器,并连接到InfluxDB。​


在集群中的每个节点创建一个服务,能够收集每一台机器的docker性能数据

挂载本地docker socket用于监控docker性能

指定存储驱动,使cadvisor将数据存储到数据库中,更多存储插件,请参考这里

InfluxDB数据库的地址

数据库名称

如果要指定用户名可以用参数,默认是

如果要指定密码可以用参数,默认是

​ 运行以后,可以通过http://10.0.0.31:8080/查看到Docker运行的机器和容器情况。

​ 验证是否已经向存入数据。打开http://10.0.0.31:8083/的管理界面,点击右上角切换到数据库,然后在输入框输入可以看到已经创建了很多个表。

​ 假如我们要查询CPU数据,可以在输入框输入,可以看到结果集如下:

​ 安装,连接到容器


默认的用户名和密码是/

也可以通过参数来指定一个admin用户名的密码

​ 运行起容器后,通过浏览器打开http://10.0.0.31:3000,输入用户名,密码进行登录

​ 点击左上角图标, 选择, 然后点击,添加完以上信息后,点击,会看到提示,如下图

在Name输入

在Type选择

在Url输入

在Database输入

在User输入

在Password输入

​ 现在是比较有趣的部分,让我们来用绘制,存储到的数据图表。

​ 点击左上角的图标,鼠标移动到菜单,在展开的菜单中,点击。然后在切换的页面中,点击。

​ 在接下来的页面中,点击图形的,在弹出的菜单中选择

​ 在面板中的处,输入

​ 在面板的 选择,点击右侧的


其中是的nodeID,通过可以获取到

​ 在面板,->->->, ->->,最后点击右侧的进行关闭,就可以看到状态了。

​ 鼠标移到屏幕左侧的三个小点,点击,创建一个绘图,点击图形的,在弹出的菜单中选择,在面板的输入。

​ 在面板选择数据源。

​ query的内容如下:


注意替换

是选择监控的容器名称,示例中只监控运行在机器上的和服务

​ 在面板,->->->, ->->,最后点击右侧的进行关闭,就可以看到状态了,到现在我们已经产生两个给图如下:

​ 点击屏幕上的,继续创建一个绘图,点击图形的,在弹出的菜单中选择,在面板的输入。

​ 在面板选择数据源,query如下:


​ 在面板,->->->, ->->,最后点击右侧的进行关闭。

​ 鼠标移到屏幕左侧的三个小点,点击,创建一个绘图,点击图形的,在弹出的菜单中选择,在面板的输入。

​ 在面板选择数据源,query如下:


​ 在面板, ->->->, ->->->,最后点击右侧的进行关闭。

​ 最终效果图如下:

​ 其他更多想法,可以根据上面的实例,在where条件中,选择不同的主机,不同的容器进行特定指标的监控。

https://github.com/google/cadvisor

https://www.brianchristner.io/how-to-setup-docker-monitoring/

https://github.com/vegasbrianc/docker-monitoring

http://docs.grafana.org/reference/graph/




博文作者:迦壹 博客地址:[cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台](http://idoall.org/blog/post/lion/cAdvisor0.24.1-InfluxDB0.13-Grafana4.0.2%E6%90%AD%E5%BB%BADocker1.12.3-Swarm%E9%9B%86%E7%BE%A4%E6%80%A7%E8%83%BD%E7%9B%91%E6%8E%A7%E5%B9%B3%E5%8F%B0) 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号