Systemd

SNMP 服務在重新載入時崩潰 - 核心錯誤

  • January 24, 2019

我的伺服器有一個 SNMP 服務 (NET-SNMP) 以systemd. 它執行良好,除了每 3 天,在下午 3:00,服務崩潰。

我在日誌中註意到代理重新載入。然後它崩潰了。

由於日誌的 logrotate,服務被重新載入。日誌文件在 2+ 天后達到 logrotate 所需的大小,因此在第 3 天,logrotate 開始。有一個 postrotate 可以重新載入 snmpd(以及未啟用的 snmptrapd)。

但如下所示,它無法重新載入。

這是來自 的日誌/var/log/messages。這台機器是 SLES 12。

2019-01-16T15:00:01.261639+01:00 myserver systemd[1]: Reloading LSB: Net-SNMP agent.
2019-01-16T15:00:01.270020+01:00 myserver kernel: [4192068.189683] floppy: error -5 while reading block 0
2019-01-16T15:00:01.270032+01:00 myserver kernel: [4220891.794129] snmpd[37667]: segfault at 0 ip 00007ff808105224 sp 00007ffc65011420 error 4 in libnetsnmpmibs.so.30.0.2[7ff80806a000+180000]
2019-01-16T15:00:01.271016+01:00 myserver snmpd[49093]: Reload service snmpd:..done
2019-01-16T15:00:01.282082+01:00 myserver systemd[1]: Reloaded LSB: Net-SNMP agent.
2019-01-16T15:00:01.282290+01:00 myserver snmpd[49101]: Shutting down snmpd:..done
2019-01-16T15:00:01.291082+01:00 myserver systemd[1]: Unit snmptrapd.service cannot be reloaded because it is inactive.
2019-01-16T15:00:01.481446+01:00 myserver systemd[1]: Reloading System Logging Service.

net-snmpd.log崩潰前文件中的最後一行日誌是:Reconfiguring daemon

正如@Lex Li 指出的那樣,該行顯示了問題:

2019-01-16T15:00:01.270032+01:00 myserver kernel: [4220891.794129] snmpd[37667]: segfault at 0 ip 00007ff808105224 sp 00007ffc65011420 error 4 in libnetsnmpmibs.so.30.0.2[7ff80806a000+180000]

每次重新載入服務時,它都會發生。只有在重裝上。我仍然不知道該庫到底出了什麼問題,但我將系統從 SLES 12.0 升級到了 SLES 12 SP4。

現在,庫也更新了,使用libnetsnmpmibs.so.30.0.3代替libnetsnmpmibs.so.30.0.2,並且重新載入作為一個魅力。

引用自:https://serverfault.com/questions/949481