为什么需要监控??
对于一个物理机上运行多个容器应用时,容器的运行情况如:等信息,都是需要去了解的,因此监控是必须的。对于容器的监控方案可谓多种多样,本身自带命令
今天民工哥要介绍的是一款开源方案cAdvisor+InfluxDB+Grafana。组件简介cAdvisor:用于数据采集
cadvisor谷歌公司自己用来监控他们基础设施的一款工具,这个工具厉害之处不仅能监控docker容器的实时信息,而且还能将你的cadvisor这容器所在的主机的系统的实时信息,但是由于cadvisor只是能监控到实时的信息而不能保存。
InfluxDB:用于数据存储
InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。所以我们要使用influxdb将这些实时监控到的信息存放起来。
InfluxDB主要特色功能
基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);
可度量性:你可以实时对大量数据进行计算;
基于事件:它支持任意的事件数据;
InfluxDB主要特点
无结构(无模式)
可以是任意数量的列
可拓展的;
支持min, max, sum, count, mean, median 等一系列函数,方便统计
原生的HTTP支持,内置HTTP API
强大的类SQL语法
自带管理界面,方便使用
参考文章:https://www.influxdata.com/products/
Grafana: 用于数据展示
Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。
Grafana主要特性:
灵活丰富的图形化选项
可以混合多种风格
支持白天和夜间模式
多个数据源。
安装布署过程
首先得有docker环境,这个就不用介绍了吧,请参考前面的文章
1、部署influxDB服务
说明:
-d :后台运行此容器
--name :启运容器分配名字influxdb
-p :映射端口,8083端口为infuxdb管理端口,8086端口是infuxdb的数据端口
tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来
查看容器
现在可以通过浏览器去访问influxdb的管理端了
接下来创建cadvisor的数据库与用户,这个用于后期配置granfa
回车直接创建完成如下图
创建管理用户
创建完成如下图
同时也是可以使用CLI命令行界面来创建的,命令一样
2、布署cadvisor服务
说明:
-d :后台运行此容器
--name :启运容器分配名字cadvisor
-p :映射端口8082:8080(由于环境8080端口被占用,cadvisor默认端口是8080不建议修改)
-v:把宿主机的目录映射到容器中,这些目录都是cadviso需要采集的目录文件和监控内容
-storage_driver:需要指定cadvisor的存储驱动、数据库主机、数据库名
google/cadvisor:通过cadvisor这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来;
查看cadvisor容器:
现在可以通过浏览访问cadisor的管理页面
cadvisor的基础图形功能也酷炫的
测试是否写入influxdb数据库
3、布署granafa
访问WEB管理端
用户名:密码 admin:admin
添加数据源
之后保存并测试连接
新建New dashboard
这里随便选择一个容器做为测试使用,实际环境可根据实际环境填写
保存返回到HOME界面后,如下图
最终的效果图如下
●编号190,输入编号直达本文
●输入m获取文章目录
推荐↓↓↓
Linux学习
更多推荐《18个技术类微信公众号》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。
领取专属 10元无门槛券
私享最新 技术干货