がらくたネット


syslog-ng

syslog-ng

Syslog Next Generation

balabitが開発している次世代syslogデーモンhttp://www.balabit.com/

OSS版があり、SuSEが標準syslogデーモンとして採用している

CentOSの元々

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で起動するためのファイル 

インストール

必要なやつ

  • eventlog(balabitにある)
  • gcc 2.7.2以上
  • GNU flex
  • bison
  • glib
  • libnet(spoof-source functionを利用する場合)
  • libwrap(tcp_wrapperを利用する場合、普通入っている)
  1. 必要なやつで未導入のパッケージをyumでインストール
  2. syslog-ngのstable最新版をダウンロード
    # wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.0.1/source/syslog-ng_3.0.1.tar.gz
  3. eventlogのstable最新版をダウンロード
    # wget https://www.balabit.com/downloads/files/eventlog/0.2/eventlog_0.2.9.tar.gz
  4. eventlogの解凍、インストール
    # tar zxvf eventlog_0.2.9.tar.gz; cd eventlog-0.2.9
    # ./configure --prefix=/usr →RedHatスタイルに合わせる
    # make
    # make install
  5. syslog-ngの解凍、インストール
    # tar zxvf syslog-ng_3.0.1.tar.gz; cd syslog-ng-3.0.1
    # ./configure --enable-dynamic-linking →OpenSSLのライブラリエラー対策
    # make
    # make install
  • eventlogは/usr/local/libにライブラリと幾つかのファイルを作る →これを–prefixで/usr/libに変更
  • eventlogは/usr/local/include/eventlog/にヘッダファイルを作る →これを–prefixで/usr/includeに変更
  • syslog-ngのconfigureはlibwrapのバイナリについて検知すれば自動的に有効になる
  • syslog-ngは/usr/localにインストールされる

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()に変更