ここでは、syslog-ngの設定ファイル syslog-ng.conf について説明します。
syslog-ngのインストール方法については syslog-ng.confのインストール を参照ください。
syslog-ng.confのlinuxテンプレート syslog-ng.conf.RedHat を例にとって説明します。
ここでは、syslog-ngの設定ファイル syslog-ng.conf について説明します。
syslog-ngのインストール方法については syslog-ng.confのインストール を参照ください。
syslog-ng.confのlinuxテンプレート syslog-ng.conf.RedHat を例にとって説明します。
sourceでは、どこからログを受信するかについて設定を行います。
この設定はおまじない程度に覚えておいてよいと思います。
source s_sys { file ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); };
Linuxでは /proc/kmsgよりカーネルメッセージを取得し、また、log_prefixにより、ログの先頭に"kernel: "の文字列を追加します。
これは、従来のsyslogと同じ形式にするためです。
ログの出力先のファイルを定義するものです。デフォルトでは以下のようになっています。
destination d_cons { file("/dev/console"); }; (1) destination d_mesg { file("/var/log/messages"); }; (2) destination d_auth { file("/var/log/secure"); }; (3) destination d_mail { file("/var/log/maillog"); }; (4) destination d_spol { file("/var/log/spooler"); }; (5) destination d_boot { file("/var/log/boot.log"); }; (6) destination d_cron { file("/var/log/cron"); }; (7) destination d_mlal { usertty("*"); }; (8)
【書式】
destination <destname> { destdriver-params; destdriver-params; ... ; };
destname
送信設定の定義名です。もちろんですがsyslog-ng内で一意となる名前を定義する必要があります。
destdriver-params
送信方法で、従来のsyslog同様にファイルに保存するのであれば
file("保存したい場所"); と定義します。
他に定義できるパラメータは
パラメータ | 意味 |
---|---|
unix-stream | UNIXドメインソケットのSOCK_STREAM形式でメッセージを送信します |
usertty | コンソール上にログを出力 |
program | プログラムにログを出力(Swatchのような機能 詳しくはsyslog-ngでログ監視の自動化を参照) |
などあります。
それをふまえて
(1)~(7)は従来のsyslogと同じようにファイルの保存場所を定義しています。
(8)はコンソール上にログを出力する定義になります。
出力するログメッセージのフィルタを行います。
filterで合致したログメッセージに対して、先ほど説明したdestinationでログの出力先を決定します。
デフォルト定義は以下のようになっています。
filter f_filter1 { facility(kern); }; (1) filter f_filter2 { level(info) and not (facility(mail) or facility(authpriv) or facility(cron)); }; (2) filter f_filter3 { facility(authpriv); }; (3) filter f_filter4 { facility(mail); }; (4) filter f_filter5 { level(emerg); }; (5) filter f_filter6 { facility(uucp) or (facility(news) and level(crit)); }; (6) filter f_filter7 { facility(local7); }; (7) filter f_filter8 { facility(cron); }; (8)
【書式】
filter <filtername> { expression; };
filtername
出力フィルタの定義名です。もちろんですがsyslog-ng内で一意となる名前を定義する必要があります。
expression
and、or、notの論理式を組み合わせてsyslogの ファシリティ や プライオリティ を定義します。
ファシリティの設定は facility
プライオリティの設定は level です。
他に定義できる設定には
パラメータ | 意味 |
---|---|
program | UNIXドメインソケットのSOCK_STREAM形式でメッセージを送信します |
host | コンソール上にログを出力 |
match | プログラムにログを出力(Swatchのような機能 詳しくはsyslog-ngでログ監視の自動化を参照) |
などあります。
それをふまえて
(1)はファシリティが kerne lのものを f_filter1 として定義
(2)はプライオリティが info で ファシリティが mail,authpriv,authpriv でないものを f_filter2 として定義
(3)はファシリティが authpriv のものを f_filter3 として定義
(4)はファシリティが mail のものを f_filter4 として定義
(5)はプライオリティが emerg のものを f_filter5 として定義
(6)はファシリティが uucp と ファシリティが news でプライオリティが crit のものを f_filter6 として定義
(7)はファシリティが local7 のものを f_filter7 として定義
(8)はファシリティが cron のものを f_filter8 として定義
参考までにファシリティとプライオリティについて
ファシリティ
authpriv 認証サービス
cron cronのメッセージ
daemon デーモンのメッセージ
kern カーネルのメッセージ
mail メールサービスのメッセージ
news ニュースサービスのメッセージ
user ユーザプロセスのメッセージ
uucp uucp転送を行うプログラムのメッセージ
local0~7 アプリケーションが自由にわりあえることのできるメッセージ
プライオリティ
debug デバッグ情報
info 情報
notice 通知
warn 警告
err 一般的なエラー
crit 致命的なエラー
alert 緊急に対処すべきエラー
emerg システムが落ちるような状態
前述のsource、destination、filterで定義したルール名の対応付けをします。
デフォルト定義は以下のようになっています。
log { source(s_sys); filter(f_filter2); destination(d_mesg); }; (1) log { source(s_sys); filter(f_filter3); destination(d_auth); }; (2) log { source(s_sys); filter(f_filter4); destination(d_mail); }; (3) log { source(s_sys); filter(f_filter5); destination(d_mlal); }; (4) log { source(s_sys); filter(f_filter6); destination(d_spol); }; (5) log { source(s_sys); filter(f_filter7); destination(d_boot); }; (6) log { source(s_sys); filter(f_filter8); destination(d_cron); }; (7)
これについては特に説明は必要ないかと思いますが念のため、、、
(1) ログ受信 s_sys を利用し、f_filter2 の条件に当てはまったものを d_mesg に出力します。
(2) ログ受信 s_sys を利用し、f_filter3 の条件に当てはまったものを d_auth に出力します。
(3) ログ受信 s_sys を利用し、f_filter4 の条件に当てはまったものを d_mail に出力します。
(4) ログ受信 s_sys を利用し、f_filter5 の条件に当てはまったものを d_mlal に出力します。
(5) ログ受信 s_sys を利用し、f_filter6 の条件に当てはまったものを d_spol に出力します。
(6) ログ受信 s_sys を利用し、f_filter7 の条件に当てはまったものを d_bootg に出力します。
(7) ログ受信 s_sys を利用し、f_filter8 の条件に当てはまったものを d_cron に出力します。
これで従来の syslog と同じようにログが出力されます。
syslog-ngに関する初期設定値などの変更行います。
必要に応じてオプションの値を変更して下さい。
デフォルトは以下のようになっています。
options { sync (0);
time_reopen (10);
#log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
};
特に変更箇所は無いと思いますが私は log_fifo_size をコメントしました。
これでsyslog-ng.confの設定は完了です。
次回、syslog-ngを利用してswatchのような機能は ログ監査の自動化 を参照下さい。
SupportDeskパック Standard24(Linuxサポート付)3年[カスタムメイド対応] / |
|
SupportDeskパック Standard(Linuxサポート付)4年[カスタムメイド対応] / |
|
SupportDeskパック Standard24(Linuxサポート付)4年[カスタムメイド対応] / |