ログ集約・収集について【syslog-ng - 収集】
これは、連載のような記事です。
syslog - 集約
↓
syslog-ng - 集約
↓
syslog-ng - 収集 <= いまココ
と見ると一番分かりやすいです。収集・集約の言葉の定義も分かります。
ログの収集についておさらい
サーバ/インフラを支える技術に定義されている収集とは
各サーバ上に出力されたログを定期的に集め、保存すること。
つまり、「普段は【各サーバ上】にある」というところがポイントです。集約・収集の言葉の定義についてはこちらで確認してください。
前回(syslog-ng - 集約)は、lighttpdのログをログサーバに転送して、ローカルには残さない設定をしていました。
それを、ローカルにもログを残すように設定します。
転送元(192.168.0.50)のsyslog-ngの設定
syslog-ngの設定(/opt/syslog-ng/etc/syslog-ng.conf)
@version: 3.0 source s_local { file ("/proc/kmsg" program_override("kernel: ")); unix-stream("/dev/log"); internal(); }; #destination d_console { pipe("/dev/console"); }; destination d_messages { file("/var/log/messages"); }; destination d_authlog { file("/var/log/secure"); }; destination d_maillog { file("/var/log/maillog");}; destination d_cron { file("/var/cron/log"); }; destination d_alluser { usertty("*"); }; destination d_spooler { file("/var/log/spooler"); }; destination d_local7 { file("/var/log/boot.log");}; destination d_loghost { udp("loghost");}; destination d_lighttpd_local { file("/var/log/siteA.lighttpd.access.${YEAR}${MONTH}${DAY}.log"); }; #filter f_console { facility(kern) and level(debug..emerg)}; filter f_messages { level(info) and not facility(mail) and not facility(authpriv) and not facility(cron) and not facility(local6) and level(info); }; filter f_authlog { facility(authpriv) and level(debug..emerg); }; filter f_maillog { facility(mail) and level(debug..emerg); }; filter f_cron { facility(cron) and level(debug..emerg); }; filter f_alluser { level(emerg); }; filter f_spooler { facility(uucp) and level(crit) or facility(news) and level(crit); }; filter f_local7 { facility(local7) and level(debug..emerg); }; filter f_lighttpd_log { facility(local6) and level(info); }; #log { source(s_local); filter(f_console); destination(d_console); }; log { source(s_local); filter(f_messages); destination(d_messages); }; log { source(s_local); filter(f_authlog); destination(d_authlog); }; log { source(s_local); filter(f_maillog); destination(d_maillog); }; log { source(s_local); filter(f_cron); destination(d_cron); }; log { source(s_local); filter(f_alluser); destination(d_alluser); }; log { source(s_local); filter(f_spooler); destination(d_spooler); }; log { source(s_local); filter(f_local7); destination(d_local7); }; log { source(s_local); filter(f_lighttpd_log); destination(d_loghost); }; log { source(s_local); filter(f_lighttpd_log); destination(d_lighttpd_local); };
ポイントは、
ログの保存場所を2つ指定します。ログサーバとローカルです。
destination d_loghost { udp("loghost");}; destination d_lighttpd_local { file("/var/log/siteA.lighttpd.access.${YEAR}${MONTH}${DAY}.log"); };
filterは、local6.info を使います。
filter f_lighttpd_log { facility(local6) and level(info); };
そして、ログを吐く設定で
log { source(s_local); filter(f_lighttpd_log); destination(d_loghost); }; log { source(s_local); filter(f_lighttpd_log); destination(d_lighttpd_local); };
とすれば、lighttpdが logger -p local6.info へ吐くログは、ログサーバとローカルへ保存されます。
ログサーバの設定変更はありません。
これで、各サーバにたまったログを定期的に収集すればOKです。
参考
[24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
http://www.linux.or.jp/JM/html/util-linux/man1/logger.1.html
UNIXサーバの運用管理で欠かせないログ管理 (1/2):止められないUNIXサーバのセキュリティ対策(7) - @IT
syslogによるログの一元管理:止められないUNIXサーバのセキュリティ対策(8) - @IT
安全性の高いログ・サーバへの乗り換えのススメ(1)〜 syslogサーバからsyslog-ngへの乗り換え 〜:止められないUNIXサーバのセキュリティ対策(9) - @IT
http://www.linux.or.jp/JM/html/sysklogd/man5/syslog.conf.5.html
システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT
Docs ModAccessLog - Lighttpd - lighty labs
慣習を気にせずsyslog-ngの設定をしてみた - (ひ)メモ
システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT
Identity & Access Management for the Real World | One Identity
Identity & Access Management for the Real World | One Identity
Identity & Access Management for the Real World | One Identity