web-dev-qa-db-ja.com

リロード時にSNMPサービスがクラッシュする-カーネルエラー

私のサーバーには、systemdで始まるSNMPサービス(NET-SNMP)があります。 3日ごとの午後3時にサービスがクラッシュすることを除いて、正常に動作します。

ログで、エージェントのリロードがあることに気付きました。その後、クラッシュします。

ログのログローテーションが原因で、サービスがリロードされます。ログファイルは2日以上後にlogrotateに必要なサイズに達するため、3日目にlogrotateが開始されます。 snmpd(および有効になっていないsnmptrapd)をリロードするためのpostrotateがあります。

しかし、以下に示すように、リロードに失敗します。

これが/var/log/messagesからのログです。マシンはSLES12です。

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

1
jayooin

@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]

サービスがreloadedになるたびに、それが発生しました。 reloadでのみ。そのライブラリの正確な問題はまだわかりませんが、システムをSLES12.0からSLES12SP4にアップグレードしました。

これで、ライブラリもlibnetsnmpmibs.so.30.0.3の代わりにlibnetsnmpmibs.so.30.0.2を使用して更新され、reloadがチャームとして機能します。

0
jayooin