一、监控思考
网站可用性:在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
监控范畴:监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
监控只能让维护人员查看到主机的状态么?
答: 实时收集数据,通过报警及时发现问题,及时处理,所获取的数据也可以为系统优化提供依据。
监控四要素
如果我想让你监控一个人 你最想知道的是什么?
1、监控谁 监控什么
2、什么时候监控 你现在就去 全天跟着 还是看十分钟就回来? 也就是说是一次性的还是循环的?
3、有问题如何汇报? 管理员还是其他用户
4、监控方法 明着跟着 还是暗地跟着
监控一个设备也是这样的
- 监控对象 [主机状态 服务 资源 页面,url]
- 用什么监控 [zabbix-server zabbix-agent]
- 什么时间监控 [7x24 5x8]
- 报警给谁 [管理员]
二、主流的开源监控平台分析
- mrtg (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML页面方式显示给用户。
- cacti (仙人掌) 用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据。现在主要在IDC机房使用,主要用在监控网卡以及交换机路由器的端口,由于出图慢,默认5分钟更新一次(最快可以调成一分钟),而现在很多领域都要求实时的,这个时间就显得有些长,又很难自定义监控,所以很少用它监控除了交换机路由器以外的设备
官网地址: https://www.cacti.net/
- ntop 官网地址: https://www.ntop.org/
- nagios 能够跨平台,插件多(监控的东西多),可以自定义–灵活,报警功能强大。或者说nagios就是一个平台,这个平台依靠插件来工作,想要什么样的插件可以用任意语言 自己写,但是由于机器数量越来越多,并且还要求地域性容灾,所以服务器都存放在不同的机房里面,这个时候nagios的不能分布式监控的缺陷就显现出来了。如果想监控这些服务器,就需要在每一个机房都部署一台nagios,然后分别去登录这些服务器查看。
官网地址: https://www.nagios.org/
- centreon 底层使用的就是nagios。是一个nagios整合版软件。界面比nagios要好看很多。
官网地址: https://www.centreon.com/
- ganglia 设计用于测量数以千计的节点,资源消耗非常小。 官网地址: http://ganglia.info/
- open-falcon 小米发布的运维监控软件,高效率,高可用。时间较短,用户基数小。 官网地址: http://open-falcon.org/
- zabbix 跨平台,支持分布式,可以集中管理,可以画图,能够持久化保存数据,多条件告警,多种API接口,扩展性非常强。使用基数特别大,阿里云使用的就是zabbix。 官网地址: https://www.zabbix.com/
- prometheus 是一个基于时间序列的数值数据的容器监控解决方案。 官网地址: https://prometheus.io/
综合分析:zabbix比较适合公司的监控需求,主要特点如下:
1、丰富的模板
2、可以自定义监控项
3、完善的告警机制
4、适合分布式监控
5、集中管理系统
6、开源、免费系统