戳蓝字“CSDN云计算”关注我们哦!

原文:https://mp.weixin.qq.com/s/qAkoG-Hut9Tfd9tOFRwafg

提到服务器宕机检测,大家会想到,宕机能够很快知道,这个有什么可做的?实际上,很多时候服务器宕机,并不总是被及时感知。服务器宕机,ping或者ssh这是最简单的做法,但真正的工程实践,没这么简单。

想要获知服务器宕机怎么办?可以通过服务器宕机实时检测:

1)发现宕机。

2)提前告警。

3)告知宕机的详细原因,如硬件故障,内核bug,网络异常等等。

4)自动报修生成工单。

我们知道,进行全网物理机宕机准确探测与实时发现,可以给宕机分析提供第一现场,获取第一现场的日志。也可以尽早将宕机数据推送给业务或运营感知并处理,如自动报修,业务迁移等,从而尽可能将业务影响降到最低。

更重要的是,准确的宕机发现数据可以为宕机预测提供准确的标注数据,为后期宕机预测提供数据基础,并且这些数据提供给运营部门进行整体分析,提升处理效率。

那么,如何可以准确发现宕机,减少误报呢?我们可以有以下操作,比如:

心跳源检测异常

顾名思义,通过心跳源,初步发现异常。通常心跳变化会有三类消息,update消息,delete消息和insert消息。心跳逻辑在于,正常情况下SA服务端与NC建立长连接,每数秒缓存一次心跳,每几分钟打包上报一次,但当NC异常时,长连接感知后,立即上报异常,并修改路由表。所以心跳异常做到秒级感知。

update消息,在有心跳发生变化情况下都会有,心跳异常和心跳恢复正常时都会发起,是主要的心跳来源。

delete消息,在心跳异常,并且SA判断ping不通,且ssh不通情况下发起,删除该条消息,避免延迟太长。

insert消息,在新增加机器, 或者重装后重新上位的机器发起,该消息对宕机发现价值不大,配合uptime使用。

心跳源检测任务逻辑,主要是监听并缓存uptime消息,同时避免时间窗内多次消息冲突,导致信息被覆盖。

异常排除

  • 排除非物理机器,将系统中暂时不关注的VM等产生的异常信息排除掉。

  • 排除非业务状态的机器,如装机状态中的,包括生产中,维修中,迁移中,重装中,销毁中,重启中,无管控状态,只监控正常状态的机器。

  • 排除非正在工作的机器,如非working状态机器。

网络干扰排除

宕机分析中,较多误报是由于网络问题干扰,无法准确判断出物理机是否宕机,有可能是网络问题。

  • 排除上联网络设备异常导致的误报,包括机房断网演练,小面积网络故障,上联网络故障,如通过探测丢包情况,使用一些逻辑初步判断网络问题。

  • 服务器本身未丢包的误报,除了需要过滤出网络问题,还要通过丢包数据分析,过滤掉SA误报问题, SA异常会上报心跳异常,被误理解为宕机。

  • icmp及tcp丢包分析,icmp采集频率为固定数秒,tcp采集频率固定数秒,包括多个不同大小包(16,32,64,128,256等)的丢包情况,根据分析时间窗内两项数据的丢包情况

特殊情况干扰排除

个别机房有时候会出现大面积风暴式的无故心跳异常,同时网络ping包异常,但上联网络设备ping包正常,这种误报,一般根据具体case具体进行针对性的分析。如根据监控每个机房的上报频率,排除干扰。

进一步识别误报

至此,大部分干扰已经过滤掉,但仍有一部分误报隐藏其中。比如心跳异常,ping异常,都合乎宕机判断的逻辑,会导致误判成宕机,如导致网卡被打爆,或者重试率高,这种是业务原因导致网络异常,但业务认为不是异常,需要排除掉。再例如服务器并没有挂掉,但是IO延时和资源占用率各项指标都不正常等场景。针对以上等情况,增加uptime判断以及带外日志分析排查。

  • 宕机时间点探测uptime确定是否发生重启。

  • 进一步通过分析日志是否连续,判断是否发生重启。

  • 日志重启特征值匹配,确认是否发生重启。

  • 如果还不能确定,使用uptime的时间窗技术进行重启。

  • 仍不能确定的待处理,进入长尾处理名单。

长尾再次处理

未确认的待处理的,会加入到长尾列表中,像这种分钟级的心跳异常,ping异常,但串口日志一直正常输出的情况,一般就是某种死机,死到连网络都不通的场景。会观察一段时间,一个固定时间窗内仍未恢复或重启的话,就暂时报宕机。后期会把这种死机单独找划分归类。

讲了这么多,到底效果怎么样?

我们从准确率和覆盖率来看:

  • 准确率:目前发现的宕机中有很高准确度,可以区分出真正宕机或者未宕机。而判断为宕机的数据中,也存在少量的,由于缺少相关信息导致误报,该部分将进一步优化,逐渐降低误报,在新的措施之后,该比例会接近0。

  • 覆盖率:当前统计的覆盖率已经能很好的支撑日常宕机处理,该数据在有足够的特征后,会进一步提升。

目前,宕机感知是宕机分析的基础,通过服务器宕机实时检测,会把相应的宕机原因分布整理出来,明确具体的原因,达成服务器极致可靠性。

推荐阅读

  • Gartner的预言:通向混合IT之旅

  • 崩溃!新浪程序员加班错失 77 万年会大奖

  • 刚刚!华为又被美国盯上了!

  • 阿里“菜鸟”AI?

  • 以太坊升级的拖油瓶,竟只是这几行代码

  • 程序员有话说 | 程序猿在乘地铁的时候都在想什么?

  • 清华北大“世界排名断崖式下跌”?

1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。

喜欢就点击“好看”吧!

请重视!服务器这几个“异常”可能性预警相关推荐

  1. 异常信息:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults

    异常信息:由于内部错误,服务器无法处理该请求.有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults <behaviors><endpo ...

  2. 文档服务器无可用设备,云服务器GPU设备显示异常

    云服务器GPU设备显示异常 内容精选 换一换 云服务器列表页面,云服务器的状态显示为"异常".进入云服务器列表页面,鼠标移动至"异常"状态处,查看具体的异常原因 ...

  3. C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)

    C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT) 参考文章: (1)C# 调用Excel 出现服务器出现意外情况 ...

  4. 前端服务器OWA 访问显示异常最佳解决方案

    EXCHANGE2003环境: 前端服务器:denver     后端服务器:sbs1 出现的问题: 当从一台XP客户端通过OWA进行访问时,如直接通过后端[url]http://sbs1/excha ...

  5. Excel导出显示服务器意外,C# 调用Excel 出现服务器出现意外状况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)...

    C# 调用Excel 出现服务器出现意外状况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)html private Microsoft.Office.In ...

  6. Artifact springmvc-01-servlet:war exploded: 部署工件时出错。请参阅服务器日志

    有自己思想,拒绝纯复制黏贴!!! 有自己思想,拒绝纯复制黏贴!!! 有自己思想,拒绝纯复制黏贴!!! 这里说个题外话,现在网上有一种现象让我深恶痛绝,就是很多网友对别人所发的博文不加验证,便进行纯复制 ...

  7. smb连接错误“请检查服务器名称或IP地址,然后再试一次,如果问题持续发生,请联系系统管理员“

    问题 公司内部的共享服务器突然访问不了了(iMac访问Windows共享).提示错误"请检查服务器名称或IP地址,然后再试一次,如果问题持续发生,请联系系统管理员" 经过试验,有如 ...

  8. linux服务器http进程CPU异常飙高(轮为免费矿工)

    最近两次发现服务器CPU占用率达95%左右,top 查看后发现有个进程占用异常偏高.但却不占用大量宽带资源,并且服务器在请求压力不大的情况下能正常访问,也就是不设置资源报警不易发觉. 在第一次发现时还 ...

  9. smb连接错误: 连接到服务器时出现问题。请检查服务器名称或IP地址,然后再试一次。如果问题持续发生,请联系系统管理员

    大家在用Ipad或者Iphone连接电脑的共享文件夹时如果出现"连接到服务器时出现问题.请检查服务器名称或IP地址,然后再试一次.如果问题持续发生,请联系系统管理员" 解决办法: ...

最新文章

  1. 画蛇添足之error of activesync over usb link to pc
  2. apache的动态编译和静态编译
  3. Android中设置输入法为数字输入
  4. 【ElasticSearch】在 ELASTICSEARCH 中使用管道重新索引数据 pipeline
  5. SAP License:一个 SAP 新手的困惑
  6. Sublime+ZenCoding的使用
  7. mysql 判断日志时间早_MySQL5.7慢查询日志时间与系统时间差8小时原因详解
  8. ios开发text kit_TextKit
  9. html网页模板如何修改,如何修改和管理网站模板
  10. HCDA学习笔记(二)
  11. 计算机网络的定义以及分类
  12. Windows | 管理员权限打开CMD 快捷键
  13. 手机android系统锁了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了的解决办法...
  14. 【软件工程Ⅱ】作业二 |分布式版本控制系统Git的安装与使用
  15. 赛门铁克并购 Blue Coat 的益处显现
  16. 实时错误‘94’无效使用null值
  17. JS 获取某一年有多少周
  18. php 微信表情存储,轻松处理PHP开发中微信emoji表情mysql存储的问题
  19. 编码乱码问题解释,解决Tomcat乱码的最快速有效办法。【希望能够指正】
  20. Java第十二天笔记01——网络编程

热门文章

  1. cache数据库和mysql_并发环境下,先操作数据库还是先操作缓存?
  2. Linux设置swap分区为128g,swap分区或文件的数量与大小限制
  3. 电脑解锁后黑屏有鼠标_电脑开机黑屏只有鼠标
  4. AI超人赛车手狂虐人类登Nature封面!1000台PS4训练,「苏菲」极限超车独霸赛道...
  5. 一道小学数学题引发的“纷争” 产科医生给出解答
  6. Matlab高级绘图功能
  7. java英文拼写检查并自动纠正
  8. c++堆栈中 top() pop()的具体作用是什么
  9. Turtlebot入门-配置网络
  10. DataWorks 功能实践速览