syslog-ngの導入と設定:新世代syslogデーモン徹底活用(2)(3/3 ページ)
UNIX系OSのシステムロギングをおよそ20年の長きにわたって支えてきた「syslogd」にも、限界が見えつつあります。その限界を打ち破る機能を備えた新しいシスログデーモンを紹介します。(編集部)
syslog-ngの基本的な設定
syslog-ngの設定ファイル「syslog-ng.conf」は、syslogdの設定ファイルと記述方法が異なっており、互換性がありません。従って、そのまま流用するわけにはいきません。
先に、syslogd.confをsyslog-ng.confに変換するsyslog2ngスクリプトの使い方を紹介しましたが、syslog-ngの利点を生かした設定を行ったり、新たなロギングを追加したりするには、syslog-ngの記述方法を理解しておく必要があります。
syslog-ng.confの基本構文
syslogd.confでは設定の単位が「行」であるのに対し、syslog-ngでは図1のような「構文」を用います。
source ○○{...}でログの受け取り方法を、filter ○○{...}で対象とするログの分別条件を、destination ○○{...}で出力方法を定義します。定義だけではロギングは行われません。定義された各条件をlog { source(○○); filter(○○); destination(○○); };のように組み立てることで、ロギングが機能します。
なお、定義されたsource/filter/destinationは何度でも使用することができます。同一のsourceに対し異なるfilterを組み合わせ、多面的にシスログを収集するといった利用法も可能です。
syslog-ngの動作にかかわる設定はoptions {...}で行います。
syslog-ng.confの簡単な例
では、syslogdで使用していた設定をsyslog-ng.confに置き換える作業を通して、設定方法を解説しましょう。
syslogdの設定ファイルsyslod.confの次の1行では、認証(authpriv)サービスにかかわるログを、「/var/log/secure」ファイルに出力するよう設定しています。ログの種別にはファシリティ(facility)とプライオリティ(priority)の組み合わせを用いています。「authpriv.info」ではファシリティが「authpriv」、プライオリティが「info」になります。スペースまたはタブに続けて、出力先「/var/log/secure」を指定します。
authpriv.info /var/log/secure
これをsyslog-ngの設定に書き換えます。まず「source」を使って、ログの取得元を指定します。Linuxではソケットファイル「/dev/log」を通してログを取得します(定義名「s1」)。
次に「filter」でログの抽出条件を定義します。ファシリティ「authpriv」で、プライオリティ「info」〜「emerg」までのログを抽出するようにします(定義名「f1」)。
続いて「destination」で出力先を定義します。出力先には「/var/log/secure」ファイルを指定します(定義名「d1」)。
最後に「log」を使って、source/filter/destinationを組み立てます。
source s1 { unix-stream("/dev/log"); internal(); }; ←internal()はsyslog-ng内部で生成するメッセージを取得する際に指定 filter f1 { facility(authpriv) and level(info..emerg); }; destination d1 { file("/var/log/secure"); }; log { source(s1); filter(f1); destination(d1); }; ←s1/f1/d1といった定義名には、syslog-ng.conf内で重複しない限り、任意の文字列を使用できます
今回はsyslog-ngのインストールと基本的な設定方法を解説しました。次回はsyslog-ngの活用方法を解説します。
なお、syslog-ngの設定方法に関するより詳細な解説は、「syslog-ng.conf.doc」などの付属ドキュメントを参考にしてください。付属ドキュメントは以下のディレクトリに用意されています。
参考:
/usr/share/doc/syslog-ng-2.0.9/syslog-ng.conf.doc
Fedoraなどで、yumやrpmでインストールした場合
/...syslog-ngソースディレクトリ.../contrib/syslog-ng.conf.doc
ソースからインストールした場合
Copyright © ITmedia, Inc. All Rights Reserved.