本文由肖远昊深度实践docker监控的报告
非常荣幸得到监控宝的邀请,试用了他们最近推出的新产品――Docker监控。
9月7日,中国APM厂商云智慧CloudWise正式发布上线Docker监控,该产品从部署到使用,整个过程都非常的简单。不仅能够实时监控宿主机和Docker容器的性能信息(包括CPU、Mem、磁盘、Net In/Out),还可以自定义相应的告警策略。以下将从部署、监控信息、告警这几个方面聊聊试用体会。大家可以[注册]监控宝,免费使用Docker监控。
部署流程
阅读了Dockone上的文章《扒一扒监控宝Docker监控的技术原理》,了解到Docker监控的实现是基于SmartAgent架构来完成的,整个部署过程在几分钟内便可以完成。
第一步,点击“创建监控项目”,输入基本信息,包括名称和监控频率后,就可以看到具体的部署步骤。
第二步,在监控机器上安装代理和Docker插件。
l 首先下载、解压和启动SendProxy,SendProxy是一个代理,作为发送引擎,可以在局域网内进行部署,将局域网内机器的监控信息高效地传输到云智慧的SaaS平台。SendProxy可以通过SendProxy.sh脚本进行启动,命令为 `./SendProxy.sh start`,执行之后,可以通过命令 `./SendProxy.sh status`来查看SendProxy的状态,如果“States”是“ok”状态,则表示SendProxy启动成功。
l 其次,下载、解压和启动Docker插件――Docker Agent,Docker Agent是Docker监控的主要模块,负责在监控机器上采集数据并通过SendProxy将数据传输到云智慧的SaaS平台,可直接使用start.sh脚本启动Docker Agent。
经过这两步后,在监控宝的Docker监控页面就可以看到,刚刚创建的监控项目已经获取到了监控机器上的数据了。
不知道大家会不会有个疑问,“数据是怎么定位到刚刚创建的监控项目?”斗胆猜测一下,创建监控项目时,输入的名称和设定的监控频率在保存监控项目后,将监控项目信息写入了Docker Agent的配置文件中,这样就能对应上这个监控项目了。但还有一个疑问,"那一个机器上如果有两个监控项目怎么办?",仔细想想,一台机器上只对应一个监控项目,而一个监控项目可以监控多台机器。
> 根据亲身实践,对于部署流程中遇到的问题,提几个小建议。
> (1)在部署提示中,向用户说明现在Docker Agent所支持的操作系统类型;
> (2)提示用户,监控项目和Docker插件的关联关系;
> (3)提示用户,如果Docker监控页面一直没有收到数据,可以使用bin目录下的docker_py脚本尝试Push监控信息。
监控信息展现
部署完成之后,可以进入具体的信息展示界面。所展示的信息比较全面,包括CPU、内存、磁盘和网络流量的监控信息以及监控机器上不同状态Docker容器的统计信息(这么全面的信息,妈妈再也不用担心Docker运维了)。以下就是监控信息的整体呈现。
监控信息统一使用折线图展示,比较直观,如果想知道具体数据的数值,可以在图表的右侧切换到数据视图。如果想知道某段时间内的数据,可以在页面最上方进行选择,默认提供了“今日”、“昨日”和“最近七天”这三个选项,当然也可以根据需要进行自定义时间范围。图标上的数据线免不了会出现重叠,可以通过点击上方的标题来关闭某些数据线。这些细节方便值得称赞。
具体数据数值的展示如下:
在具体类目监控信息的展示页面,比如说Net In/Out类目,可以看到不同容器的监控数据以及一些统计信息(最大值、平均值和最小值),默认情况下,会展示“资源消耗Top10”的10个容器,当然也可以通过左上角的下拉框选择具体某个容器的数据展示。
告警
告警功能,无疑是运维人员和开发者最重视的一个功能。在云智慧监控宝的Docker监控中,用户可以自定义告警设置。告警对象主要是针对容器的资源使用情况以及容器的存活率。
告警策略根据统计数据(平均值、和值)进行相应阈值的设定,高于、低于或者等于设定阈值时,进行相应告警。对于资源的使用情况,可以针对所有容器或者单个容器进行告警设置。
值得一提的是,监控宝的的告警方式非常全面,可以通过电子邮件、手机短信、电话语音、APP推送、微信等方式进行通知,特别是通过电话语音和微信的方式能保证你不漏掉任何重要的告警信息。
总体感受
自从Docker问世依赖,运维一直是Docker使用者的一个痛点。云智慧推出的Docker监控,填补了国内Docker监控的空白。从部署到监控,整体上的感觉就是简单易懂且易用。整个部署过程,只是简单地下载两个Zip安装包,然后修改相应权限,启动就好了,对于新手或者小白用户来说,这是非常简单的操作。
监控信息使用图表展示,但也没有忘记给需要具体数据的用户提供数据视图的接口,细节方面做的很到位。进入CPU、Mem等具体监控信息部分,能够看到具体单个容器的监控信息,效果不错。告警部分,策略比较明确,通过统计的平均值或者和值做衡量,以设定的条件和阀值来触发告警,可以对单个容器的某个性能监控信息做告警,还是比较细致的。
最后提个建议,是否能够加入“组”或者“集群”的相关概念,在监控展示时,可以选择展示这个“集群”的监控信息,在告警设置中,可以设定这个“集群”的告警信息。有时候在一个宿主机上会把几个容器当成一个集群来用,例如一个hadoop集群。如果对每个容器单独观察监控信息或者设置告警信息,就显得有些繁琐与不便。
最后,非常感谢监控宝给予了这次试用Docker监控的机会,希望监控宝能够给我们带来更多的惊喜。