rsyslog が udp を受信しなくなった
うっかりうどんワールド1)したら、他のサーバーやルーターから送られてくる udp の syslog を一切受信しなくなった模様…
# emerge -pv rsyslog These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-admin/rsyslog-8.24.0-r2::gentoo USE="gcrypt mysql snmp ssl uuid -dbi -debug -doc -elasticsearch -grok -jemalloc -kafka -kerberos (-libressl) -mongodb -normalize -omhttpfs -omudpspoof -postgres -rabbitmq -redis -relp -rfc3195 -rfc5424hmac -systemd {-test} -usertools -zeromq" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB
切り分け
うちの環境では、全てのサーバーの syslog を1箇所に集約して、mysql に突っ込んでます。で、この集約ホスト自身のログだけはちゃんと mysql に書き込まれているので、ommysql.o の挙動には問題がない模様。
あと、送信元として rsyslog を使っていないルーターのログも出力が停止しているので、送信側の rsyslog も関係がない模様。
とりあえず色々見てみる
# ss -ua | grep -e 'syslog' -e 'Recv' State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 213440 0 172.22.16.8:syslog *:*
…… Recv-Q2) おかしいですよねこれ。
gentoo の package 情報は…… 2017.04.04 現在は更新されていませんね。orz
前のバージョンの ebuild と、とりあえず USE フラグを比較してみます。
# grep '^IUSE' rsyslog-8.19.0.ebuild IUSE="dbi debug doc elasticsearch +gcrypt grok jemalloc kafka kerberos libressl mongodb mysql normalize omhttpfs" IUSE+=" omudpspoof postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid zeromq" # grep '^IUSE' rsyslog-8.24.0-r2.ebuild IUSE="dbi debug doc elasticsearch +gcrypt grok jemalloc kafka kerberos libressl mongodb mysql normalize omhttpfs" IUSE+=" omudpspoof postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid zeromq"
ん~~~~変わってないです……w
ちょっと戻してみよう
よくわからないので、とりあえず更新前のバージョンに戻してみます。基本にして最強の切り分けですね。
# emerge -av =app-admin/rsyslog-8.19.0 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild UD ] app-admin/rsyslog-8.19.0::gentoo [8.24.0-r2::gentoo] USE="gcrypt mysql snmp ssl uuid -dbi -debug -doc -elasticsearch -grok -jemalloc -kafka -kerberos (-libressl) -mongodb -normalize -omhttpfs -omudpspoof -postgres -rabbitmq -redis -relp -rfc3195 -rfc5424hmac -systemd {-test} -usertools -zeromq" 0 KiB Total: 1 package (1 downgrade), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] y
で。
# /etc/init.d/rsyslog restart
# /etc/init.d/rsyslog restart * Caching service dependencies ... [ ok ] * Executing: /lib64/rc/sh/openrc-run.sh /lib64/rc/sh/openrc-run.sh /etc/init.d/rsyslog stop * Checking rsyslogd's configuration ... [ ok ] * Stopping rsyslog ... * Will stop /usr/sbin/rsyslogd * Will stop PID in pidfile `/run/rsyslogd.pid' * Will stop processes of `/usr/sbin/rsyslogd' * Sending signal 15 to PID 2986 ... [ ok ] * Sending signal 0 to PID 2986 ... [ ok ] * Executing: /lib64/rc/sh/openrc-run.sh /lib64/rc/sh/openrc-run.sh /etc/init.d/lvm start * Setting up the Logical Volume Manager ... WARNING: Device for PV 0yjmj1-fAsX-5wYP-1nn1-3ck0-nHVJ-pHFGwm not found or rejected by a filter. WARNING: Device for PV lGYvY6-pjJf-GRyz-a6IU-2T3h-HIb4-hsfQyt not found or rejected by a filter. ~ WARNING だばぁぁ ~ * Failed to setup the LVM [ !! ] * ERROR: lvm failed to start * Executing: /lib64/rc/sh/openrc-run.sh /lib64/rc/sh/openrc-run.sh /etc/init.d/rsyslog start * Starting rsyslog ... * start-stop-daemon: fopen `/run/rsyslogd.pid': No such file or directory * Detaching to start `/usr/sbin/rsyslogd' ... * Sending signal 0 to PID 904 ...
……はい? LVM?
いやでもまぁ……解決しました…… rsyslog "だけ" は……
え~と……とりあえず何事もなかったかのように rsyslog は正常稼働を開始しました。ちゃんと全ホストからの syslog が出力されてます。
# ss -ua | grep -e 'Recv' -e 'syslog' State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 ip.addr.of.host:syslog *:*
きれいに捌けてますね…… syslog は。
lvm がなんかおかしいのは、確かに syslog と同時にうどんワールド3)に入ってきていたので、別件でしょう。ちょっと portage の summary.log を見た感じでは、とりあえず kernel の config を見直すところから始める必要がありそうです。
……オチは?
……ん~と、この記事のオチとしては、とりあえず rsyslog の 8.24 系はうちの環境ではうまく動かないようなのでマスクします。
vi /etc/portage/package.mask/rsyslog >=app-admin/rsyslog-8.24
で、マスクされてることを確認します。
# emerge -pv rsyslog These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-admin/rsyslog-8.19.0::gentoo USE="gcrypt mysql snmp ssl uuid -dbi -debug -doc -elasticsearch -grok -jemalloc -kafka -kerberos (-libressl) -mongodb -normalize -omhttpfs -omudpspoof -postgres -rabbitmq -redis -relp -rfc3195 -rfc5424hmac -systemd {-test} -usertools -zeromq" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB
(;`・ω・´)b オケ!
……もにょるオチですねぇ。