せっかく1号機、2号機(=暇を持て余している)の2台体制になっている Raspberry Pi なので、1号機から2号機へsyslog転送してみます。(2015-02-09)
本当の目的は、これ。
ごくごくまれに1号機がフリーズ(=勝手に再起動)することがあり、さらにsyslogをtmpgsに保存しているためログが確認できず、また、保存先が tmpfs ではなくSDカードだとしても、SDカードの書き込みは遅いため、ログが記録できていない可能性もあり、そのため、2号機へ転送(信頼性より速度重視のUDPによる通信)しておけばもしかしたら原因を記録できるかもしれない、という目論見(1号機はモニターレスで運用のため)。
ただし、意味不明のフリーズ~再起動は、最近はあまり見かけなくなった。なんでだろ。
とにかくやってみます。
(2015-03-19)先日とうとう発生しましたよ、フリーズが。 Raspberry Pi/フリーズした時のsyslog。
まずは受信側から設定します。
UDP受信
設定ファイル /etc/rsyslog.conf
変更内容
# diff rsyslog.conf.orig rsyslog.conf 16,17c16,17 < #$ModLoad imudp < #$UDPServerRun 514 --- > $ModLoad imudp > $UDPServerRun 514
ログファイルの分離
rsyslogの設定ファイルは /etc/rsyslog.d/ の下にも分割して置くことができるので、リモートから受信した場合の設定はこっちに置いてみます。
設定ファイル(新規) /etc/rsyslog.d/remote-syslog.conf ファイル内容
# receive from remote syslog # created in 2015.02.09 :fromhost-ip, isequal, "192.168.1.20" -/var/log/remote-syslog & ~
補足:
最後に、設定を有効にするため、rsyslogdを再起動します。
# /etc/init.d/rsyslog restart
ログローテーション
前述の設定だけだと、リモートから受信したログファイルがどんどん肥大化してしまうので、ログローテーションの対象に入れてあげます。
(今回は rsyslog のテンプレート機能*1は使いませんでした:-)
設定ファイル /etc/logrotate.d/rsyslog 変更内容
# diff rsyslog.orig rsyslog 26a27 > /var/log/remote-syslog
次に送信側の設定を行います。
設定ファイル /etc/rsyslog.conf ファイル内容
# diff rsyslog.conf.orig rsyslog.conf 61a62 > *.*;auth,authpriv,cron,mail,user.none @192.168.1.21
補足:
最後に、設定を有効にするため、rsyslogdを再起動します。
# systemctl restart rsyslog.service (wheezy以前 は # /etc/init.d/rsyslog restart)