小辉聊监控(1)

今天,我们潇(zi)洒(ji)英(yi)俊(wei)的监控管理与监控产品(Raptor)首席工程师,“灰灰”聊聊我们日常运维管理的眼睛——监控系统。

监控的需求分析及比较

其实总结出的监控需求无非几种:告警的对接、告警的可用性、告警的灵活性、告警通知的灵活性、平台性能。

以下主要选取了目前比较流行的几款开源监控系统,并进行了以下对比,其优缺点也及其明显,本人还是比较推荐使用zabbix和prometheus 的总体监控解决方案的,不过也需要根据大家实际需求,进行选择。

对于以上相比较而言来看,Zabbix可以监控网络和服务的监控状况,Zabbix 利用灵活的告警机制,允许用户对事件发送基于邮件、短信、微信和钉钉等告警方式,这样可以保证快速的对问题作出响应,支持图形化展示。

prometheus:prometheus的优点也是显而易见的,比如支持多维数据模型,在多维度上灵活的查询语言,不依赖分布式存储,但是优点的同时也是有着zabbix具有的优点而prometheus没有的功能,比如告警通知的灵活性等,那我们怎么来选择这两套监控系统呢,比如生产环境中物理机和虚拟机较多,对应用监控要求较高的话,首选zabbix。但是如果环境变动很频繁的情况下,zabbix的支持可能就没有prometheus那么灵活了,所以想k8s,docker等容器,首选prometheus。但是在我们实际的生产环境常常可能遇到既有虚拟机又有容器,我们自己的解决方案 Raptor 1.2就是用了zabbix+prometheus双引擎方式,实现主机及容器的双重监控系统,以期发挥一加一大于二的效果。

监控中的难点

平台部署方便。管理 docker 的平台本身也基于 docker 部署。只要你有 docker ,一个命令就完成平台的部署了。

微服务的难点:监控的指标数量的增加,监控的弹性伸缩,配置难

大规模主机及容器数量

监控实现的保证

对业务不间断实时监控

实时反馈系统的当前状态

保证服务的可靠性和安全性

保证业务的稳定运行

保证业务故障及时通知到所属的业务联系人

当然,这个部分也是使用的自有消息推送平台 MessageIn (http://linkyoyo.com/messageIn/) ,通过灵活配置,完成复杂的消息推送规则。

监控深度

可用性监控:

可用性层面监控,比如:监控端口是否活,机器PING监控。

性能监控:

例如cpu使用率监控,内存监控等等。

日志监控:

主要是应用日志监控,其次还有安全审计日志、系统日志等。这些日志监控可确保我们人员操作的合规性。应用日志也会为后续的全链路监控提供跟踪依据,为故障定位作为参考依据。

应用监控:

对针对不同业务制定不同的监控方法或者方案。

自定义监控:

我们会有很多来自于业务方面的需求,自己定义的指标,比如过去十分钟的成交量有多少,提供附加的自定义监控,那就能更好地满足业务监控需求,从业务的角度去了解企业业务的运行状况。

今天先聊一部分的监控需求和我们自有监控产品Raptor的一些设计思想和遵循的规则。希望可以起到抛砖引玉的作用。 后续部分更精彩,我们下周见。