オリジナルのsyslogdは細かいログの制御・監査が行えない。また、セキュリティがあまり考慮されていないなどの問題があります。
これらの問題点を解消したのが syslog-ng とよばれるソフトウェアです。
ここでは、syslog-ng の導入及び、syslogd からの移行について説明しています。
オリジナルのsyslogdは細かいログの制御・監査が行えない。また、セキュリティがあまり考慮されていないなどの問題があります。
これらの問題点を解消したのが syslog-ng とよばれるソフトウェアです。
ここでは、syslog-ng の導入及び、syslogd からの移行について説明しています。
syslog-ng導入には syslog-ng本体 と libolライブラリ が必須となります。
以下のURLから最新のソースを入手してください。
http://www.balabit.com/products/syslog_ng/
syslog-ng本体は syslog-ng-1.6.7.tar.gz をダウンロードしました。
http://www.balabit.com/downloads/syslog-ng/1.6/src/syslog-ng-1.6.7.tar.gz
libolライブラリは libol-0.3.15.tar.gz をダウンロードしました。
http://www.balabit.hu/downloads/syslog-ng/libol/0.3/libol-0.3.15.tar.gz
(1) libolライブラリ
libolライブラリをコンパイルまでします。
$ tar xvfz libol-0.3.15.tar.gz $ cd libol-0.3.15 $ ./configure $ make
(2) syslog-ng本体
$ tar xvfz syslog-ng-1.6.7.tar.gz $ cd syslog-ng-1.6.7 $ ./configure --with-libol=../libol-0.3.15 $ make $ su # make install
以下にインストールされます
/usr/local/sbin/syslog-ng
/usr/local/man/man5/syslog-ng.conf.5
/usr/local/man/man8/syslog-ng.8
syslog-ngの設定ファイルは /usr/local/etc/syslog-ng/syslog-ng.conf を利用します。
インストール後、ファイルは存在しないので用意する必要があります。
# mkdir /usr/local/etc/syslog-ng/
syslog-ngを展開したディレクトリ内にテンプレートがありますのでそちらをコピーします。
# cp ./contrib/syslog-ng.conf.RedHat /usr/local/etc/syslog-ng/syslog-ng.conf
内容は以下の通りです。デフォルトのまま利用できると思いますが私は log_fifo_size をコメントしました。
syslog-ng.confの詳しい説明は syslog-ng.confの設定 を参照下さい。
options { sync (0);
time_reopen (10);
#log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
};
source s_sys { file ("/proc/kmsg" log_prefix("kernel: "));
unix-stream ("/dev/log"); internal(); };
destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog"); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_mlal { usertty("*"); };
filter f_filter1 { facility(kern); };
filter f_filter2 { level(info) and
not (facility(mail)
or facility(authpriv) or facility(cron)); };
filter f_filter3 { facility(authpriv); };
filter f_filter4 { facility(mail); };
filter f_filter5 { level(emerg); };
filter f_filter6 { facility(uucp) or
(facility(news) and level(crit)); };
filter f_filter7 { facility(local7); };
filter f_filter8 { facility(cron); };
#log { source(s_sys); filter(f_filter1); destination(d_cons); };
log { source(s_sys); filter(f_filter2); destination(d_mesg); };
log { source(s_sys); filter(f_filter3); destination(d_auth); };
log { source(s_sys); filter(f_filter4); destination(d_mail); };
log { source(s_sys); filter(f_filter5); destination(d_mlal); };
log { source(s_sys); filter(f_filter6); destination(d_spol); };
log { source(s_sys); filter(f_filter7); destination(d_boot); };
log { source(s_sys); filter(f_filter8); destination(d_cron); };
また、現在利用している syslog.conf を syslog-ng.conf に変換するツールも展開したディレクトリにあります。
# cd syslog-ng展開ディレクトリ # cd contrib # ./syslog2ng /etc/syslog.conf > /usr/local/etc/syslog-ng/syslog-ng.conf
とすることで、前まで利用していた syslog.conf を 簡単に syslog-ng.conf に変換する事が可能です。
作成したsyslog-ng.confはそのままではLinuxでは利用できませんので source構文を以下のように変更する必要があります。
#source local {
# unix-stream("/dev/log");
# udp(ip(0.0.0.0) port(514));
# internal();
#};
source local {
file ("/proc/kmsg" log_prefix("kernel: "));
unix-stream ("/dev/log"); internal();
};
syslog-ng.confについては syslog-ng.confの設定 を参照下さい。
syslog-ng.confの設定が完了したら次はsyslogd から syslog-ng へ移行しましょう。
(1) syslogdの停止
# /etc/rc.d/init.d/syslog stop
# chkconfig --del syslog <-syslogのサービスが自動起動停止
(2) syslog-ngの起動
syslog-ngの自動起動スクリプトはsyslog-ngの展開ディレクトリにあります。それをコピーし起動します。
# cp ./contrib/init.d.RedHat-7.3 /etc/rc.d/init.d/syslog-ng
スクリプトの先頭に #!/bin/sh を追加します。
# vi /etc/rc.d/init.d/syslog-ng
---------------------
#!/bin/sh
---------------------
# chmod 755 /etc/rc.d/init.d/syslog-ng # /etc/rc.d/init.d/syslog-ng start
これで syslog-ng で起動するようになりました。
続いて起動後に自動的に立ち上がるように ckconfig を実施しておきましょう
# chkconfig --add syslog-ng
これで syslogd から syslog-ng への移行は完了しました。
logrotate の syslog のローテートで syslogのプロセスに対してHUPシグナルを送るように設定をしているので syslog-ng に対して送るように設定変更する必要があります。
# vi /etc/logrotate.d/syslog
--------------------
/var/log/messages {
postrotate
/usr/bin/killall -HUP syslog-ng <-ここをsyslog-ngへ変更
endscript
}
--------------------
すべての HUPシグナルを syslog-ng に変更すれば設定完了です。
syslog-ngは 設定ファイル syslog-ng.conf を編集しswatchのような機能も持たせる事ができます。
詳しくは syslog-ng.confの設定 を参照下さい。
SupportDeskパック Standard24(Linuxサポート付)3年[カスタムメイド対応] / |
|
SupportDeskパック Standard(Linuxサポート付)4年[カスタムメイド対応] / |
|
SupportDeskパック Standard24(Linuxサポート付)4年[カスタムメイド対応] / |