syslog-ng 1.6.x インストール

更新履歴

  • 2006/06/01 初版

概要

  • ログサーバ

バージョン

  • syslog-ng 1.6.11
    • libol 0.3.18

インストール環境

  • CentOS 4.3

インストールポリシー

  • 既存のsyslogdは停止し、syslog-ngに移行する

参考URL

インストール手順

libolライブラリ インストール

  • syslog-ngインストール時に libolライブラリ が必要となるため、事前にインストールする。
# 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
# 

syslog-ng インストール

  • syslog-ng をインストールする。
# 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

syslog-ng 設定

  • /etc/syslog-ng 以下に設定ファイルを作成する。
  • 設定ファイルについては、syslog-ng付属のRedHat用設定ファイルをコピーする。
# 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 ※なにも表示されないことを確認(エラーが無い場合はなにも表示されない)

syslog-ng 自動起動設定

  • サーバ起動時に自動的に実行されるように起動スクリプトを作成する。
  • 既存のsyslogサーバについては、起動時に実行されないように変更する。
# 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
# 

ログ・ローテーションの設定変更

  • logrotateの設定を変更する。(既存syslogの設定ファイルを流用)
# 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
}

syslog-ng への切り替え

  • 既存のsyslogdは停止し、syslog-ngに移行する。
# /etc/init.d/syslog stop
カーネルロガーを停止中:                                    [  OK  ]
システムロガーを停止中:                                    [  OK  ]
# 
# /etc/init.d/syslog-ng start
Starting syslog-ng:                                        [  OK  ]
# 

動作確認

  • 正常にロギング出来ているか、loggerコマンドでsyslogのテストを行う。
# 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); };
 
server/syslog-ng16_install.txt · 最終更新: 2007/10/16 12:02
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki NINJA TOOLS