Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Nagios 網卡流量監控超時故障排查:SNMP 服務異常導致 CHECK_NRPE Socket Timeout

編輯:Linux 教學

Nagios 監控系統報告網卡流量檢查長期處於 CRITICAL 狀態,錯誤信息為 CHECK_NRPE: Socket timeout after 10 seconds。本文記錄一次典型故障的快速定位與恢復過程,核心原因是 SNMP 守護進程 (snmpd) 停止響應。

一、故障現象

服務狀態: CRITICAL
最後檢查: 01-19-2015 10:16:30
持續時間: 1d 11h 26m 34s
嘗試次數: 4/4
輸出信息: CHECK_NRPE: Socket timeout after 10 seconds.

手動執行檢查腳本確認超時:

[root@host ~]# /usr/local/nagios/libexec/check_traffic.sh -V 2c -C nagios -H localhost -I 2 -w 12,30 -c 15,35 -M -b
Timeout: No Response from localhost.

二、根因分析

核心判斷:Timeout: No Response from localhost 表明 NRPE 代理雖能建立 TCP 連接,但遠端腳本執行時無法從本地 SNMP 服務獲取數據。最常見原因是 snmpd 進程掛起、死鎖或崩潰,導致 SNMP 查詢 (UDP 161) 無響應,腳本阻塞直至 NRPE 超時 (預設 10 秒)。

三、解決步驟

  1. 重啟 SNMP 服務:
    service snmpd restart
    或 Systemd 系統:
    systemctl restart snmpd
  2. 驗證 SNMP 響應:
    snmpwalk -v 2c -c nagios localhost system
    應正常返回系統 OID 信息。
  3. 再次執行流量檢查腳本:
    /usr/local/nagios/libexec/check_traffic.sh -V 2c -C nagios -H localhost -I 2 -w 12,30 -c 15,35 -M -b

四、恢復驗證

OK – The Traffic In is 0.0Mbps, Out is 0.0Mbps, Total is 0.0Mbps. The Check Interval is 113s
|In=0.0Mbps;12;15;0;0 Out=0.0Mbps;30;35;0;0 Total=0.0Mbps;42;50;0;0 Interval=113s;1200;1800;0;0

服務狀態轉為 OK,性能數據正常輸出,監控恢復正常。

五、預防與最佳實踐

  • 監控 SNMP 進程本身:在 Nagios 中添加 check_procs -c snmpd 確保進程存活。
  • 設置 SNMP 服務開機自啟:chkconfig snmpd on 或 systemctl enable snmpd。
  • 調整 NRPE 超時時間:若網絡延遲大,可在 nrpe.cfg 中增大 command_timeout (預設 10s),並在 Nagios 端 check_nrpe 命令定義中添加 -t 30。
  • 檢查防火牆/SELinux:確保 UDP 161 (SNMP) 和 TCP 5666 (NRPE) 端口在本地及網絡層面放行。
  • 日誌分析:/var/log/messages 或 journalctl -u snmpd 查看崩潰前錯誤 (如內存不足、配置錯誤)。

總結

Nagios 流量監控超時 90% 以上由 snmpd 異常引起。重啟 snmpd 可秒級恢復。建議將 SNMP 進程存活納入基礎監控項,並優化 NRPE 超時設置,提高系統韌性。

Copyright © Windows教程網 All Rights Reserved