http://www.atmarkit.co.jp/flinux/rensai/newlog04/newlog04a.html
5.x系とかだと、ディレクトリ構造が変わっているようなので、とりあえず、3.18.5を指定で。
まずはインストール。
# wget http://www.rsyslog.com/Downloads-req-getit-lid-133.phtml # tar xvfz rsyslog-3.18.5.tar.gz # cd rsyslog-3.18.5 # ./configure --prefix=/usr/local/rsyslog-3.18.5 --enable-mysql --enable-mail CPPFLAGS="-I/usr/local/mysql/include" # make # make install # cd /usr/local # ln -s rsyslog-3.18.5 rsyslog
次に必要なファイルをコピー。
(rsyslogdのソースディレクトリで作業します)
# cd redhat/ # cp rsyslog.conf /etc/ ←設定ファイルのコピー # cp rsyslog.sysconfig /etc/sysconfig/rsyslog ←設定ファイル(rsyslogdの起動オプション)のコピー # cp rsyslog.log /etc/logrotate.d/rsyslog ←ログファイルをローテションするlogrotateのための設定ファイルのコピー # vi rsyslog.init ←起動スクリプトの修正 (「自動起動スクリプトの修正」を参考に) # chmod +x rsyslog.init ←実行権の設定 # cp rsyslog.init /etc/init.d/rsyslog ←自動起動スクリプトのコピー
自動起動スクリプトを修正
25行目 rsyslogdのパスを変更 前) [ -x /sbin/rsyslogd ] || exit 5 後) [ -x /usr/local/rsyslog/sbin/rsyslogd ] || exit 5 26行目 rklogdを使用しないためコメントアウト 前) [ -x /sbin/rklogd ] || exit 5 後)# [ -x /sbin/rklogd ] || exit 5 39行目 rsyslogdのパスを変更 前) daemon rsyslogd $SYSLOGD_OPTIONS 後) daemon /usr/local/rsyslog/sbin/rsyslogd $SYSLOGD_OPTIONS 42・43行目 rklogdを使用しないためコメントアウト 前) echo -n $"Starting kernel logger (rklogd): " daemon rklogd $KLOGD_OPTIONS 後)# echo -n $"Starting kernel logger (rklogd): " # daemon rklogd $KLOGD_OPTIONS 49~51行目 rklogdを使用しないためコメントアウト 前) echo -n $"Shutting down kernel logger (rklogd): " killproc rklogd echo 後)# echo -n $"Shutting down kernel logger (rklogd): " # killproc rklogd # echo 61行目 rklogdを使用しないためコメントアウト 前) status rklogd 後)# status rklogd
mysql用DBの作成
$ mysql -uroot GRANT ALL PRIVILEGES ON Syslog.* TO rsyslog@localhost IDENTIFIED BY 'rsyslog'; (※rsyslogとMySQLが同一サーバで稼働していない場合、localhostをrsyslogサーバのIPアドレスに置き換えます)
syslogdの停止
# /etc/init.d/syslog stop ←syslogdの停止 # chkconfig syslog off ←syslogdの自動起動解除 # chkconfig --list syslog ←確認 syslog 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←すべて「off」になっています
ログローテート設定ファイルの移動
# cd /etc/logrotate.d/ # mkdir /..backup.. # mv syslog /..backup../syslog.log ←syslogd用のlogrotate設定ファイルの待避(または削除します)
バージョン3互換モードで動作させる
# vi /etc/sysconfig/rsyslog #SYSLOGD_OPTIONS="-m 0" ←コメントアウト SYSLOGD_OPTIONS="-c3" ←追加
rsyslog.confの編集
# vi /etc/rsyslog.conf local7.* /var/log/boot.log $ModLoad imuxsock ←追加(UNIXソケットからログを受け取れるようにする) $ModLoad imtcp ←追加(TCP利用のため) $InputTCPServerRun 514 ←追加(TCP利用のため) $ModLoad ommysql ←追加(MySQL利用のため) *.* :ommysql:localhost,Syslog,rsyslog,rsyslog ←追加(MySQL利用のため) (:ommysql:MySQLサーバのアドレス,データベース名,ユーザー名,パスワード)
rsyslogの起動と自動起動設定
# /etc/init.d/rsyslog start # /etc/init.d/rsyslog status rsyslogd (pid 14609) を実行中... # chkconfig --add rsyslog ←自動起動登録 # chkconfig --list rsyslog ←確認 rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off ←2~5で「on」になっています
動作確認
# logger -p daemon.crit syslog-ng install ok (「-p」でファシリティとプライオリティを指定しています) # tail /var/log/messages Oct 10 05:07:29 △△ ○○: syslog-ng install ok ←loggerコマンドで入力したメッセージがそのまま出力されています
MySQLに出力されているかの確認
$ mysql -uroot Syslog mysql> select * from SystemEvents Limit 0,5G *************************** 1. row *************************** ID: 1 CustomerID: NULL ReceivedAt: 2009-11-20 11:18:09 DeviceReportedTime: 2009-11-20 11:18:09 Facility: 5 Priority: 6 FromHost: hogehost Message: [origin software="rsyslogd" swVersion="3.18.5" x-pid="4795" x-info="http://www.rsyslog.com"] restart NTSeverity: NULL Importance: NULL EventSource: NULL EventUser: NULL EventCategory: NULL EventID: NULL EventBinaryData: NULL MaxAvailable: NULL CurrUsage: NULL MinUsage: NULL MaxUsage: NULL InfoUnitID: 1 SysLogTag: rsyslogd: EventLogType: NULL GenericFileName: NULL SystemID: NULL