UNIX系OSのシステムロギングをおよそ20年の長きにわたって支えてきた「syslogd」にも、限界が見えつつあります。その限界を打ち破る機能を備えた新しいシスログデーモンを紹介します。(編集部)
前回「syslogdの限界と次世代シスログデーモン」、シスログデーモン「syslogd」の問題点や限界について言及し、その代替として「syslog-ng」と「rsyslog」を紹介しました。今回はそのうち、シスログの内容に基づいてメール通知やアクセスフィルタを実行できるなど、さまざまな機能を備えたsyslog-ngを取り上げ、その導入方法やsyslogdからの移行方法を解説します。
openSUSEではデフォルトで採用するなど、一部ではsyslog-ngの標準化も進んでいます。openSUSEに限らず多くのディストリビューションでも、パッケージ管理ツールを使って容易にインストールすることができます。
バイナリパッケージが用意されていないプラットフォームやカスタムインストールを実行する場合も、Linuxならソースから手軽にインストールすることもできます。バイナリパッケージを使用する場合と、ソースからインストールする場合、それぞれのインストール方法を解説します。
以降はrootユーザーにて作業を行います。Ubuntuのようにrootユーザーが直接使用できない場合には、sudoコマンドを使用します。
それぞれのディストリビューションで用意されているパッケージ管理ツールを使って、インストールを実行します。
Fedoraではyumコマンドを使って、オンラインインストールを実行することができます。syslog-ngを使用するには、ほかにも依存するパッケージが必要になりますが、yumコマンドならパッケージの依存性を自動で解決し、必要なパッケージ(今回はeventlog)の追加インストールを自動で行います。
なおFedora9では、syslog-ngをインストールすると、標準インストールされるrsyslogと競合し、「Error: rsyslog conflicts with syslog-ng」というエラーが表示されます。この場合は競合するパッケージを先に削除しておく必要があります。rsyslogを削除する際は、パッケージとの依存性を無視する必要があるため、rpmコマンドで「--nodeps」オプションを使用します。
削除に先立ち、設定ファイルsyslogd.confのコピーを保存します。これは後ほど、syslog-ngの設定で利用します。
# cp /etc/syslogd.conf /etc/syslogd.conf.org (syslogdの設定ファイルを再利用するため、事前にバックアップを作成) # rpm -e --nodeps rsyslog (syslog-ngと競合する場合には、競合するパッケージを削除)
# yum install syslog-ng ←syslog-ngのオンラインインストール ...省略... Is this ok [y/N]: y ←「y」をタイプ ...省略... Running Transaction Installing : eventlog [1/2] Installing : syslog-ng [2/2] ...省略...
オンラインインストール後、設定ファイルを編集し、syslog-ngを自動起動するようにします。この後の手順は「syslog-ngの設定」へ続きます。
Fedora以外にCentOSやRed Hatでもyumコマンドが使用できますが、2008年8月時点ではパッケージが提供されていないため、ソースからインストールする必要があります。またUbuntuやDebianではSynapticを、openSUSEではYaST2といったパッケージ管理ツールを使ってオンラインインストールを実行します。
ソースファイルを使ってインストールする場合は、BalaBitのWebサイトから、syslog-ngのソースアーカイブとともにeventlogのソースをダウンロードし、同時にインストールする必要があります。
eventlogとsyslog-ngをソースからインストールする手順は以降のとおりです。ここでは、インストール先をデフォルトの「/usr/local」から「/usr」に変更するため、configure実行時にオプションを指定しています。そのほかのオプションも「# configure --help」で確認し、適宜追加します。
(eventlogのダウンロードとインストール) # wget http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/eventlog-0.2.7.tar.gz # tar xvfz eventlog-0.2.7.tar.gz # cd eventlog-0.2.7 # ./configure --prefix=/usr ←prefix=/usr:インストール先の指定 # make # make install (syslog-ngのダウンロードとインストール) # wget http://www.balabit.com/downloads/files/syslog-ng/sources/stable/src/syslog-ng-2.0.9.tar.gz # tar xvf syslog-ng-2.0.9.tar.gz # cd syslog-ng-2.0.9 # ./configure --prefix=/usr --sbindir=/sbin \ > --sysconfdir=/etc/syslog-ng \ > --enable-tcp-wrapper \ > --enable-dynamic-linking --prefix=/usr:インストール先の指定 --sbindir=/sbin:syslog-ng本体プログラムのインストール先を指定 --sysconfdir=/etc/syslog-ng:設定ファイルのパスを指定 --enable-tcp-wrapper:TCP_Wrapperによるアクセス制限を有効化 --enable-dynamic-linking:動的リンクを使用 # make # make install
なお、eventlog以外に、libnetやtcp_wrappers(およびtcp_wrappersのライブラリ、インクルードファイル)といったパッケージが必要な場合があります。その際は各ディストリビューションのインストールメディアやリポジトリから追加インストールしてください。
次に、自動起動スクリプトや設定ファイルを用意します。主要なディストリビューションでは、ソースアーカイブに同梱されたファイルをそのまま使用できます。
以下はFedoraでの作業例ですが、Red HatやopenSUSEでも、ソースディレクトリ中の「contrib/」に各ファイルを見つけることができます。そのほかのディストリビューションでは、これらのファイルを参考にして作成する必要があります。
この後の手順は「syslog-ngの設定」へ続きます。
(自動起動スクリプトの用意) # cp contrib/fedora-packaging/syslog-ng.init /etc/init.d/syslog-ng # chmod +x /etc/init.d/syslog-ng (設定ファイルの用意) # mkdir /etc/syslog-ng # cp contrib/fedora-packaging/syslog-ng.conf /etc/syslog-ng/
Copyright © ITmedia, Inc. All Rights Reserved.