我们常说,IT运维是比较有风险意识的。往往能预测哪里可能出现问题,出现问题后该如何处理。在运维环境中,为了保障业务系统稳定正常运行,需要对监控对象进行持续性的监控,并且通过数据统计分析,及时地反应出性能瓶颈、安全隐患等。
因此监控就成为整个运维环境,乃至整个产品运维环节中最重要的一环,事前及时预警发现故障,事中诊断快速定位,事后分析复盘避免二次故障。
监控对象分类
我们通常将监控对象分为四大类
1.服务器监控,主要监控服务器如:CPU 负载、内存使用率、磁盘使用率、登陆用户数、进程状态、网卡状态等。
2.应用程序监控,主要监控该应用程序的服务状态,吞吐量和响应时间,因为不同应用需要监控的对象不同,这里不一 一列举。
3.数据库监控,特别重要,一般监控数据库状态,数据库表或者表空间的使用情况,是否有死锁,错误日志,性能信息等等。
4.网络监控,主要监控当前的网络状况,网络流量等。
如何提高运维监控水平,我们分享一些小技巧。
1、定义告警优先级策略
一般监控结果是成功或者失败,如Ping不通、访问网页出错、连接不到Socket,这些最优先告警。除此之外,还能监控到返回的延时、内容等,如Ping返回的延时、访问网页的时间、访问网页取到的内容等。
利用返回的结果可以自定义告警条件,如Ping监控的返回延时一般是10-30ms之间,当延时大于100ms时候,表示网络或者服务器可能出现问题,引起网络响应慢,需要立即检查是否流量过大或者服务器CPU太高等问题。
2、定义告警信息内容标准
当服务器或应用发生故障时告警信息内容非常多,如告警运行业务名称、服务器IP、监控的线路、监控的服务错误级别、出错信息、发生时间等。
预先定义告警内容及标准使收到的告警内容具有规范性及可读性。这点对于用短信接受告警内容特别有意义,短信内容最多是70个字符,要在70个字符完全知道故障内容比较困难,更需要预先定义内容规范。如:“视频直播服务器10.0.211.65 在2012-10-18 13:00电信线路监控第到1次失败”,清晰明了的知道故障信息。
3、 集中监控和分布式监控相结合
主动集中监控虽然不需要安装代码和程序,非常安全和方便,但缺少很多细致的监控内容,如无法获取硬盘大小、CPU的使用率、网络的流量等,这些监控内容非常有用,如CPU太高表示有网站或者程序出问题,流量太高表示可能被攻击等。
被动分布式监控常用的是SNMP(简单网络管理协议),通过SNMP能监控到大部分你感兴趣的内容。大部分操作系统支持SNMP,开通管理非常方便,也非常安全。SNMP缺点是比较占用带宽,会消耗一定的CPU和内存,在CPU太高和网络流量大情况下,无法有效进行监控。
4、定义故障告警主次
对于监控同一台服务器的服务,需要定义一个主要监控对象,当主要监控对象出现故障,只发送主要监控对象的告警,其它次要的监控对象暂停监控和告警。
例如用Ping来做主要监控对象,如果Ping不通出现Timeout,表示服务器已经当机或者断网,这时只发送服务器Ping告警持续监控Ping,因为再继续监控和告警其它服务已经没有必要。这样能大大减少告警消息数量,又让监控更加合理、更加有效率。
5、实现对常见性故障业务自我修复功能
实现对常见性故障业务自我修复功能脚本进行统一部署并对修复后故障进行检查告警检查频次不多于3次。
6、 监控范围及目标
实现对负载均衡设备、网络设备、服务器、存储设备、安全设备、数据库、中间件及应用软件等IT资源的全面监控管理;
同时自动收集、过滤、关联和分析各种管理功能产生的故障事件,实现对故障的提前预警和快速定位;
对网络和业务应用等IT资源的性能进行监控,定期提供性能报表和趋势报表,为性能优化及未来系统扩容提供科学依据。
南京林科斯拉-智能运维管家,智能极简 全栈监控。 (linksla.cn)https://www.linksla.cn/#/