{{tag>gentoo linux}} # rsyslog が udp を受信しなくなった うっかりうどんワールド((`emerge -uDN world`))したら、他のサーバーやルーターから送られてくる 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-Q((man netstat: "Established: The count of bytes not copied by the user program connected to this socket. Listening: Since Kernel 2.6.18 this column contains the current syn backlog." …… rsyslog が受け付けなかったバイト数 ……と読めばいいのかな。)) おかしいですよねこれ。 [gentoo の package 情報](https://packages.gentoo.org/packages/app-admin/rsyslog)は…… 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 [refpackagesrsyslog]: https://packages.gentoo.org/packages/app-admin/rsyslog ### ちょっと戻してみよう よくわからないので、とりあえず更新前のバージョンに戻してみます。基本にして最強の切り分けですね。 ``` # 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 と同時にうどんワールド((emerge -uDN world))に入ってきていたので、別件でしょう。ちょっと 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 オケ! ……もにょるオチですねぇ。 [つづき: rsyslog が udp を受信しなくなった その2](http://manimani.cc/blog/2017/20170405200411_rsyslog_receive_udp_issue_2 "つづき") [lvm のオチと解決: lvm が warning やら fatal やらどばーっと](http://manimani.cc/blog/2017/20170405213145_lvm_issue "lvm のオチ")