创业团队往往人少,强调效率,强调速度,所以一般会选择使用公有云来部署业务,基于云的监控是一个难点,本文讨论创业团队云上监控的方法。
要分享这个题目,是因为前几天我有个朋友,刚好就在一个创业团队,他们的业务初步上线,效果比较好,但是有几次业务出现问题,都是收到用户反馈,然后才去排查,从发现到处理完成,时间已经很长了。经过几次折腾,这时候才意识到监控的重要性。
为了快速解决问题,他们使用了商业监控方案,效果不错,用了一周就完成了系统及业务层面比较全面的监控,能做到业务有问题及时短信、邮件报警,然后快速处理。监控系统上来之后,明显缩短了业务故障的处理时间,提升了用户的满意度。
本文讨论以下几个问题:
-
那些企业适合使用公有云
-
公有云监控的难点在那里
-
云上业务应监控那些方面
-
云上业务监控的方法介绍
-
中小企业云上监控的建议
那些企业适合使用公有云
云计算的概念热了好几年了,云计算、虚拟化对互联网行业来说已经是标配。互联网行业现在都是使用各种云,或者使用公有云,或者自己搞私有云。大部分企业使用的是混合云,即私有云、公有云一起使用,而且即使使用公有云,也会选择多家使用。
传统行业现在也在积极拥抱云计算,各个行业都在将自己的业务和互联网结合,向“互联网+”转变。
最开始拥抱公有云的是中小创业团队,尤其是手游页游兴起的时候,云确实解决了中小创业团队的痛点,不需要自己买服务器,自己建设数据中心,自己部署网络。
中小创业团队本来人力、资源紧张,云降低了他们的门槛,使他们可以专注自己的业务。初创的云计算公司和中小创业团队,一起抱团,开始了云计算行业的第一波使用热潮,目前这股热潮还在继续。
云计算是目前火热的创业浪潮的加速剂,使创业变的更简单,门槛更低。甚至,许多企业已经养成了习惯,公司做大了,上市了,还继续使用云,因为确实从云上尝到了甜头。国外还有一些例子,经历从云到自建,再到完全纯云化的过程。
但是,企业上云只是第一步,业务在云上跑得如何,稳定不稳定,出了问题如何及时发现,只有及早的发现,甚至预警,才能尽量减少业务的影响时间和范围,整个环节要依赖许多技术手段,监控就是其中最重要的环节之一。
公有云监控的难点在那里
第一个难点,公有云服务商不可能提供完善的监控手段
从宿主机层面监控云主机要做到准确很难,CPU利用率、网络、磁盘IO,能做到近似准确,但是更细节的信息是没有办法看到的,比如到底是那个应用使用CPU较多,更别说应用层面指标的监控。
而且即使目前公有云上提供的这些简单的CPU、网络、磁盘监控,都是有时间限制的,从7天到30天不等,因为存储长期的数据,会消耗公有云运营商大量的存储空间。
第二个难点,公有云服务器即使能提供完善的监控服务,用户也很顾忌
公有云要提供完善的监控数据,必须在云主机内部安装客户端程序,用户一般都这个都很顾忌,公有云服务商也会很顾虑。
理论上,从宿主机上获得正在运行的云主机上的数据,难度很低,何况还安装一个客户端,大部分用户是不放心的,前段时间,某云安装在用户云主机内部的客户端出现问题,更是一个佐证。
第三个难点,用户要实施监控,成本也比较高
使用云的以中小企业居多,这些企业的特点就是开发人员是个位数,运维是开发兼任,最多一个人。这时候运维的主要职责是业务的部署,业务跑得稳定最重要,对系统、业务的监控只能做到很初级的监控,很难做到非常细致的监控。
云上业务应监控那些方面
企业实施在云部署业务,需要监控以下几个方面的内容:
1. 云服务器商的网络质量情况
这一点最容易被忽视,许多企业以为选择了公有云,网络质量这里就万事大吉了,放到公有云上面的业务,肯定是要依赖网络来开展服务,有些业务对网络质量是非常敏感的,大部分云不提供网络质量监控的,建议上云的企业,对网络质量的监控也要重视起来。
2. 云主机系统层面的监控
云主机系统层面监控包括云主机的健康状况及CPU、内存、网络、磁盘使用情况,监控云主机主要是为了以下几个方面:
-
监控云主机是否正常运行,如果云主机宕机及时发现;
-
监控云主机的压力情况,如果压力超过阀值,及时做出调整;
-
监控云主机的使用情况,如果长期压力过低,应对业务进行压缩,节省成本。
3. 业务层面的监控
经常会碰到,云主机运行正常,但是业务出现问题,可以分为以下几种情况:
-
业务进程僵死;
-
业务遇到性能瓶颈,比如读写太多,数据库不能支撑,这时候往往在系统层面的指标也可能有反应;
-
业务逻辑层面的预定瓶颈,比如业务一个进程逻辑上只能支撑1024个链接,当超过1000链接以上,业务就不能对外提供服务;
-
触发程序bug。
如果对业务层面没有细致的监控,往往业务出现问题很长时间,才能发现,监控就是我们的眼睛和雷达,对业务指标监控的越细,越有利于我们发现问题,也越有利于我们根据历史的监控数据排查问题,避免下次再发生同样的情况。
云上业务监控方法介绍
我们知道业务的监控非常重要,那么监控方法有那些:
1. 使用开源工具,网络质量监控方面,可以使用开源的SmokePing,系统和业务方面,目前国内比较流行的是Zabbix,也有其他监控工具,比如Cacti等。这些工具的共同特点是:
-
开源免费;
-
学习曲线比较陡峭,一般要熟练使用需要一到两年时间;
-
功能上能满足基本的需要,但是要监控更细致的指标,一般需要二次开发;
-
很难和自己已有的其他系统整合,要整合需要二次开发。
2. 使用商业服务
国内目前在监控商业化方面做的比较好的就是监控宝了,可以申请免费试用。
网络质量方面,监控宝有全球的网络质量监控:
也有国内的网络质量监控:
监控宝有自己固定的节点,不像使用SmokePing,还需要自己找各地的IP地址,而且自己找的IP地址经常会出现ping不通的问题。
云主机系统层面的监控方法,监控宝有针对云主机专用的解决方案。
甚至还能监控Docker虚拟机:
监控宝的云主机监控对用户来讲非常简单,一键安装监控端,很快就可以出图,默认就包括非常完善的指标。
比如网络质量就分为全世界和中国的:
性能方面CPU、内存、网络、磁盘使用情况指标都有:
也可以非常方便的根据自己的需要,自定义自己的业务监控指标:
还可以自定义报警模版及报警方式:
另外,监控宝还有API,可以方便的和自己的其他业务系统整合起来,还有手机上的APP,在手机上也可以随时了解自己的业务情况。
中小企业云上监控的建议
很多人认为已经有开源的解决方案就没有必要使用商业方案,其实中小企业非常适合使用商业方案,好处如下:
-
花钱买效率,商业的解决方案非常完善,几天之内就可以完成部署和使用,而使用开源方案,需要不断的打磨,周期是以年为单位的,并且随着业务不停的变化,实际是一个长期过程;
-
不用过多考虑人的因素,好不容易企业培养起来一个开源监控熟练手,结果离职了,然后一切又要从头开始;
我的朋友就是使用商业方案,比较好的解决了自己的问题。当然,如果运维开发工程师比较多了,自己的业务规模已经非常大,大到需要构建自己的私有云,这时候可能就需要根据业务的需求,开发一套满足自己需要的监控系统。