Syslog-ng 3.x を Cent OS にインストールする

Version 3.x をインストール

執筆時点の最新版は、Version 3.2.2ですので、これを使います。

なお、オープンソース版(OSS)と有償版がありますが、ここでは、OSS版を使います。

  1. VPS にログインする。
  2. コンパイルに必要なパッケージを予めインストールする。
    # yum -y install glib2-devel pkgconfig
    • gcc も必要です。契約したばかりの VPS の場合はインストールしていない事も多いので、以下のコマンドでインストールします。
      # yum -y install gcc
  3. Eventlog をダウンロードして、インストールする。
    $ wget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.2/source/eventlog_0.2.12.tar.gz
    $ tar xzvf eventlog_0.2.12.tar.gz
    $ cd eventlog-0.2.12/
    $ ./configure
    $ make
    # make install
  4. Syslog-ng をダウンロードして、インストールする。
    $ wget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.2/source/syslog-ng_3.2.2.tar.gz
    $ tar xzvf syslog-ng_3.2.2.tar.gz
    $ cd syslog-ng-3.2.2
    $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
    $ ./configure --sysconfdir=/etc/syslog-ng --enable-gprof --disable-ipv6 --with-pidfile-dir=/var/run
    $ make
    # make install
    • ServersMan@VPS  を VPS として使う場合は、有効な IPv6 アドレスがあるので、–disable-ipv6 オプションを付けなくても構いません。
    • –with-pidfile オプションで、.pid ファイルの場所を指定します。
    • –sysconfdir オプションにより、/etc/syslog-ng/syslog-ng.conf が設定ファイルとなります。
      • 今のバージョンは自動的に最小構成の syslog-ng.conf を生成しておいてくれますが、他にも modules.conf と scl.conf を用意するので、/etc の下に Syslog-ng 専用のディレクトリを用意します。

 

設定 (1 of 2)

以下のような設定をします。

  1. /usr/local/var ディレクトリが無ければ作成する。
    # mkdir /usr/local/var
  2. シンボリックリンクを作る。
    # ln -s /usr/local/sbin/syslog-ng /sbin
    • これは、自動起動設定用のファイルの Syslog-ng の起動パスが /sbin/syslog-ng になっているためです。
  3. 自動起動するようにする
    # cp contrib/rhel-packaging/syslog-ng.init /etc/init.d/syslog-ng
    # chmod 755 /etc/init.d/syslog-ng
    # chkconfig --add syslog-ng
  4. logrotate の設定を変更する。
    # cp fedora-packaging/syslog-ng.logrotate /etc/logrotate.d/syslog-ng
    # rm  /etc/logrotate.d/syslog
    • /etc/logrotate.d/syslog ファイルは必ず削除してください。

 

設定 (2 of 2)

Syslog-ng を make install したときに自動的にインストールされている /etc/syslog-ng/syslog-ng.conf では、 全ての Syslog メッセージが /var/log/message に保存されてしまいますが、元々入っている Syslogd の代わりにはなっています。

ですが、Cent OS 5.x では、syslog は /var/log/secure や /var/log/maillog など、facility等でフィルタしてファイルに保存されていますので、 それと同じようになるように変更します。

ただし、用意されている設定ファイルは Syslog-ng Version 2.x 以前のもので、Syslog-ng Version 3.x では変更が必要です。

実は設定ファイルを修正しなくても、互換性があるので Syslog-ng の起動は出来るのですが、様々なエラーメッセージが表示されます。

そこで、新しいバージョン用の表記に直します。

  1. VPS へログイン
  2. ディレクトリを移動して、ベースとなる設定ファイルをコピー。
    # cd syslog-ng-3.2.2
    # cp contrib/fedora-packaging/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
    • 既存の syslog-ng.conf を上書きします。
  3. 以下のファイルを編集する。
    # vi /etc/syslog-ng/syslog-ng.conf
    
    @version: 3.2		# ファイルの先頭に追加します。
    @include "scl.conf"	# Source Configuration Library (SCL) を有効にします。
    
    options {
        flush_lines (0);		# sync を flush_lines にします。
    
    (途中略)
    
    source s_sys {
        system();			# file( ... と unix-... を置き換えます。
        internal();
        # udp(ip(0.0.0.0) port(514));
    };
    
    (途中略)
    
    destination d_mail { file("/var/log/maillog" flush_lines(10)); };	# sync を flush_lines にします。
    • file (“/proc/kmsg” log_prefix(“kernel: “)); unix-stream (“/dev/log”); を system(); に置き換えられるのは、Version 3.2.x 以降です。
      • system() ドライバ は Syslog-ng のプラットフォームに合わせて内容が変化する関数のようなもので、その実体は、/usr/local/share/include/scl/system/plugin.conf で定義されており、/usr/local/share/include/scl/system/generate-system-source.sh が SCL(Source Configuration Library) のメカニズムで実行されます。
      • system() ドライバを使うために、最初に @include “scl.conf” しています。
    • destination d_mail { file(“/var/log/maillog” flush_lines(10)); }; の flush_lines(10)の部分は消してしまっても問題無いと考えています。この設定では、ファシリティが mail の syslog は全て10秒後にバッファリングされてから記録されることを意味します。

 

Syslog と Syslog-ng の切替

最後に今動いている Syslog を止めて、Syslog-ng を起動します。

# chkconfig syslog off
# service syslog stop
# chkconfig --del syslog
# servcie syslog-ng start

残念ながら、依存関係があるため、syslog パッケージを削除することはできません。


前のページへ 次ページへ

 

関連するコンテンツ


コメントを残す


メモ - 以下の HTML タグと属性が利用できます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>