CentOS5.4にrsyslogをインストール

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です