獨立經營福州,福州,福州,電信高防機房
高防伺服器咨詢QQ:97533879 TEL:17689221416
伺服器“異常”的幾個可能性預警請重視!
提到伺服器當機檢測,大家會想到,當機能夠很快知道,這個有什麼可做的?實際上,很多時候伺服器當機,并不總是被及時感覺。伺服器當機,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異常,但序列槽日志一直正常輸出的情況,一般就是某種當機,死到連網絡都不通的場景。會觀察一段時間,一個固定時間窗内仍未恢複或重新開機的話,就暫時報當機。後期會把這種當機單獨找劃分歸類。