Syslog Next Generation
balabitが開発している次世代syslogデーモンhttp://www.balabit.com/
OSS版があり、SuSEが標準syslogデーモンとして採用している
CentOSのデフォルトsyslog設定は以下
#kern.* /dev/console ←kernel関連はコメントアウト *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot.log
syslog単体ではログローテーションできないため、logrotateでローテーションしている
/etc/logrotate.conf | 基本設定ファイル |
/etc/logrotate.d/ | 各ログローテーション設定ファイル |
/etc/cron.daily/logrote | cronで起動するためのファイル |
必要なやつ
# wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.0.1/source/syslog-ng_3.0.1.tar.gz
# wget https://www.balabit.com/downloads/files/eventlog/0.2/eventlog_0.2.9.tar.gz
# tar zxvf eventlog_0.2.9.tar.gz; cd eventlog-0.2.9 # ./configure --prefix=/usr →RedHatスタイルに合わせる # make # make install
# tar zxvf syslog-ng_3.0.1.tar.gz; cd syslog-ng-3.0.1 # ./configure --enable-dynamic-linking →OpenSSLのライブラリエラー対策 # make # make install
contrib/fedora-packagingにFedora向けinitなどがあるので流用する
syslog-ng.conf | /usr/local/etc/にコピー |
syslog-ng.init | /etc/init.d/syslog-ngとしてコピー |
syslog-ng.logrotate | /etc/logrotate.d/syslog-ngとしてコピー |
syslog-ng.sysconfig | /etc/sysconfig/syslog-ngとしてコピー |
最後 syslogdを止めておく
syslog-ngを起動するようにしておく
# chkconfig syslogd off # chkconfig syslog-ng on # service syslogd stop # service syslog-ng start
インストールのファイルはこれだけ!
/usr/local/sbin/syslog-ng | 本体 |
/usr/local/bin/loggen | なんだろ? |
/usr/local/share/man/man5/syslog-ng.conf.5 | マニュアル |
/usr/local/share/man/man8/syslog-ng.8 | マニュアル |
syslog-ng -s | 構文チェック |
syslog-ngは多彩なことが出来る反面設定ファイルの管理が煩雑
それでも多彩な機能が利用できるので…我慢です!
設定ファイルの先頭に必要(3.0から追加された)
@version:3.0
インクルードファイルを利用可能、15階層までOK
include "filename";
記述フォーマット
type identifier {parameters} ; セミコロンで定義を完了する #コメント #で始まる行はコメント行
type
source | |
destination | |
log | |
filter | |
parser | |
rewrite | |
rule | |
template |
identifierはユニークな名称
syslog-ngではprefixを付けて区別している sourceタイプはs_、destinationタイプはd_、filterタイプはf_など
Global Options デフォルトのsyslog-ng.confに記載されているオプションには古いものがある
sync | flush_lines()に変更 |
log_prefix | program_override()に変更 |