# cd /usr/local/src/ # wget http://www.balabit.com/downloads/syslog-ng/libol/0.3/libol-0.3.18.tar.gz # tar xvzf libol-0.3.18.tar.gz # cd libol-0.3.18 # ./configure # make # make install # # vi /etc/ld.so.conf.d/local-i386.conf ※新規作成(ファイル名は適当)
/etc/ld.so.conf.d/local-i386.conf
以下を追加 /usr/local/lib
# ldconfig
# ldconfig -p |grep libol
libol.so.0 (libc6) => /usr/local/lib/libol.so.0
libol.so (libc6) => /usr/local/lib/libol.so
#
# cd /usr/local/src/ # wget http://www.balabit.com/downloads/syslog-ng/1.6/src/syslog-ng-1.6.11.tar.gz # tar xvzf syslog-ng-1.6.11.tar.gz # cd syslog-ng-1.6.11 # ./configure --sysconfdir=/etc \ --enable-tcp-wrapper ※--enable-tcp-wrapper を有効しても、UDP接続は制限できないので注意!! # make # make install
# mkdir /etc/syslog-ng # cp /usr/local/src/syslog-ng-1.6.11/contrib/syslog-ng.conf.RedHat /etc/syslog-ng/syslog-ng.conf # # syslog-ng -s ※なにも表示されないことを確認(エラーが無い場合はなにも表示されない)
# cp /usr/local/src/syslog-ng-1.6.11/contrib/init.d.RedHat-7.3 /etc/init.d/syslog-ng # chmod +x /etc/init.d/syslog-ng # chkconfig --add syslog-ng # # chkconfig syslog off # chkconfig --list |grep syslog syslog 0:off 1:off 2:off 3:off 4:off 5:off 6:off syslog-ng 0:off 1:off 2:on 3:on 4:on 5:on 6:off #
# vi /etc/logrotate.d/syslog
/etc/logrotate.d/syslog
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true
endscript
}
# /etc/init.d/syslog stop カーネルロガーを停止中: [ OK ] システムロガーを停止中: [ OK ] # # /etc/init.d/syslog-ng start Starting syslog-ng: [ OK ] #
# logger -p local0.info -t test test # tail /var/log/messages ~ 省略 ~ Jun 21 10:30:10 centos01 test: test #
サンプル設定ファイル
### options
options { sync (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (yes);
keep_hostname (yes);
stats(86400);
dir_perm(0700);
perm(0600);
owner(root);
group(root);
};
### source
## for Linux
source local { file ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); };
## for Solaris
#source local { sun-streams("/dev/log" door("/etc/.syslog_door")); internal(); };
## for BSD
#source local { unix-dgram("/var/run/log"); internal(); };
## for logserver (from network)
#source net { udp( ip(0.0.0.0) port(514) ); tcp( ip(0.0.0.0) port(514) ); internal(); };
source net { udp( ip(0.0.0.0) port(514) ); internal(); };
### destination
# for syslog facility
destination d_KERN { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/KERNEL.log"); };
destination d_USER { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/USER.log"); };
destination d_MAIL { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/MAIL.log"); };
destination d_DAEMON { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/DAEMON.log"); };
destination d_AUTH { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/AUTH.log"); };
destination d_SYSLOG { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/SYSLOG.log"); };
destination d_LPR { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LPR.log"); };
destination d_NEWS { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/NEWS.log"); };
destination d_UUCP { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/UUCP.log"); };
destination d_CRON { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/CRON.log"); };
destination d_AUTHPRIV { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/AUTHPRIV.log"); };
destination d_FTP { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/FTP.log"); };
destination d_LOCAL0 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL0.log"); };
destination d_LOCAL1 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL1.log"); };
destination d_LOCAL2 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL2.log"); };
destination d_LOCAL3 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL3.log"); };
destination d_LOCAL4 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL4.log"); };
destination d_LOCAL5 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL5.log"); };
destination d_LOCAL6 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL6.log"); };
destination d_LOCAL7 { file("/var/syslog/$HOST/$YEAR$MONTH/ByFacility/LOCAL7.log"); };
# for application
destination d_console { file("/dev/console"); };
destination d_alluser { usertty("*"); };
destination d_root { usertty("root"); };
destination d_boot { file("/var/syslog/$HOST/$YEAR$MONTH/boot.log"); };
destination d_cron { file("/var/syslog/$HOST/$YEAR$MONTH/cron.log"); };
destination d_mail { file("/var/syslog/$HOST/$YEAR$MONTH/mail.log"); };
destination d_ssh { file("/var/syslog/$HOST/$YEAR$MONTH/sshd.log"); };
destination d_login { file("/var/syslog/$HOST/$YEAR$MONTH/login.log"); };
destination d_su { file("/var/syslog/$HOST/$YEAR$MONTH/su.log"); };
destination d_sudo { file("/var/syslog/$HOST/$YEAR$MONTH/sudo.log"); };
destination d_syslogng { file("/var/syslog/$HOST/$YEAR$MONTH/syslogng.log"); };
destination d_summary { file("/var/syslog/$HOST/$YEAR$MONTH/summary.log"); };
destination d_messages { file("/var/syslog/$HOST/$YEAR$MONTH/messages"); };
# for all host summary log
destination d_all { file("/var/syslog/summary.log.$YEAR$MONTH"); };
# for syslog transfer. Change <ip-addr> to your logserver
destination netudp { udp("<ip-addr>" port(514) ); };
destination nettcp { tcp("<ip-addr>" port(514) ); };
# for notify
destination notify { program("/usr/local/bin/syslog-notify"); };
### filter
# for syslog facility
filter f_KERN { facility(kern); };
filter f_USER { facility(user); };
filter f_MAIL { facility(mail); };
filter f_DAEMON { facility(daemon); };
filter f_AUTH { facility(auth); };
filter f_SYSLOG { facility(syslog); };
filter f_LPR { facility(lpr); };
filter f_NEWS { facility(news); };
filter f_UUCP { facility(uucp); };
filter f_CRON { facility(cron); };
filter f_AUTHPRIV { facility(authpriv); };
filter f_FTP { facility(ftp); };
filter f_LOCAL0 { facility(local0); };
filter f_LOCAL1 { facility(local1); };
filter f_LOCAL2 { facility(local2); };
filter f_LOCAL3 { facility(local3); };
filter f_LOCAL4 { facility(local4); };
filter f_LOCAL5 { facility(local5); };
filter f_LOCAL6 { facility(local6); };
filter f_LOCAL7 { facility(local7); };
# for application
filter f_emergency { level(emerg); };
filter f_notice { level(notice); };
filter f_boot { facility(local7); };
filter f_ssh { program("sshd"); };
filter f_login { program("login") and facility(auth); };
filter f_su { program("su") and facility(auth); };
filter f_sudo { program("sudo") and facility(local2); };
filter f_syslogng { match("syslog-ng") and not match("STATS: dropped 0"); };
filter f_summary { level(debug..emerg); };
filter f_messages { level(info..emerg) and not facility(mail,authpriv,cron); };
# for notify
filter f_error { match("error"); };
filter f_fail { match("fail"); };
## log
# for syslog facility
log { source(local); source(net); filter(f_KERN); destination(d_KERN); };
log { source(local); source(net); filter(f_USER); destination(d_USER); };
log { source(local); source(net); filter(f_MAIL); destination(d_MAIL); };
log { source(local); source(net); filter(f_DAEMON); destination(d_DAEMON); };
log { source(local); source(net); filter(f_AUTH); destination(d_AUTH); };
log { source(local); source(net); filter(f_SYSLOG); destination(d_SYSLOG); };
log { source(local); source(net); filter(f_LPR); destination(d_LPR); };
log { source(local); source(net); filter(f_NEWS); destination(d_NEWS); };
log { source(local); source(net); filter(f_UUCP); destination(d_UUCP); };
log { source(local); source(net); filter(f_CRON); destination(d_CRON); };
log { source(local); source(net); filter(f_AUTHPRIV); destination(d_AUTHPRIV); };
log { source(local); source(net); filter(f_FTP); destination(d_FTP); };
log { source(local); source(net); filter(f_LOCAL0); destination(d_LOCAL0); };
log { source(local); source(net); filter(f_LOCAL1); destination(d_LOCAL1); };
log { source(local); source(net); filter(f_LOCAL2); destination(d_LOCAL2); };
log { source(local); source(net); filter(f_LOCAL3); destination(d_LOCAL3); };
log { source(local); source(net); filter(f_LOCAL4); destination(d_LOCAL4); };
log { source(local); source(net); filter(f_LOCAL5); destination(d_LOCAL5); };
log { source(local); source(net); filter(f_LOCAL6); destination(d_LOCAL6); };
log { source(local); source(net); filter(f_LOCAL7); destination(d_LOCAL7); };
# for application
log { source(local); source(net); filter(f_emergency); destination(d_alluser); };
log { source(local); source(net); filter(f_notice); destination(d_root); };
log { source(local); source(net); filter(f_LOCAL7); destination(d_boot); };
log { source(local); source(net); filter(f_CRON); destination(d_cron); };
log { source(local); source(net); filter(f_MAIL); destination(d_mail); };
log { source(local); source(net); filter(f_ssh); destination(d_ssh); };
log { source(local); source(net); filter(f_login); destination(d_login); };
log { source(local); source(net); filter(f_su); destination(d_su); };
log { source(local); source(net); filter(f_sudo); destination(d_sudo); };
log { source(local); source(net); filter(f_syslogng); destination(d_syslogng); };
log { source(local); source(net); filter(f_summary); destination(d_summary); };
log { source(local); source(net); filter(f_messages); destination(d_messages); };
# for notify
log { source(local); source(net); filter(f_error); destination(notify); };
log { source(local); source(net); filter(f_fail); destination(notify); };
# for all host summary log
log { source(local); source(net); filter(f_summary); destination(d_all); };
# for syslog transfer
#log { source(local); filter(f_summary); destination(netudp); };