基本へ帰ろう このページをアンテナに追加 RSSフィード

2009-05-19

ログ集約・収集について【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シリーズ)

404 - エラー: 404

UNIXサーバの運用管理で欠かせないログ管理 (1/2):止められないUNIXサーバのセキュリティ対策(7) - @IT

syslogによるログの一元管理:止められないUNIXサーバのセキュリティ対策(8) - @IT

安全性の高いログ・サーバへの乗り換えのススメ(1)〜 syslogサーバからsyslog-ngへの乗り換え 〜:止められないUNIXサーバのセキュリティ対策(9) - @IT

404 - エラー: 404

システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT

Docs ModAccessLog - Lighttpd - lighty labs

慣習を気にせずsyslog-ngの設定をしてみた - (ひ)メモ

システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT

Documentation

Documentation

Documentation






ログ集約・収集について【syslog-ng - 集約】

これは、連載のような記事です。

syslog - 集約

syslog-ng - 集約 <= いまココ

syslog-ng - 収集

と見ると一番分かりやすいです。収集・集約の言葉の定義も分かります。


syslog-ngを使ったログの集約

syslog-ngはsyslogの実装の1つです。syslog-ngではsyslogに比べて、出力するログのフィルタリングや、ログのローテート、ログを出力するディレクトリの自動的な作成など、いろいろ便利な機能を備えています。その便利な機能の1つに「マクロ」があります。これはログにメタ情報などを表すもので、イメージ的には変数が近いです。用意されているマクロには現在の日時やログのファシリティ/プライオリティを表すもの、ログを出力したホストを表すもの、出力されたログに設定されているタグ(プログラム名)を表すものなどがあります。syslog-ngではこのマクロを使って、ログを出力するファイルの名前を組み立てることができます。つまり、たとえば出力先のファイル名としてタグを表すマクロを使えば、同じタグが付いているログは同じファイルに出力されることになります。ログのローテートも、ファイル名の一部に日付を表すマクロを使えば表現できます。

サーバ/インフラを支える技術 P298「Webサーバのログの扱い」

便利そうです・・・やってみます。

安全性の高いログ・サーバへの乗り換えのススメ(1)〜 syslogサーバからsyslog-ngへの乗り換え 〜:止められないUNIXサーバのセキュリティ対策(9) - @IT

安全性の高いログ・サーバへの乗り換えのススメ(2)〜 ログ管理のセキュリティ強化を実現する方法を知ろう 〜:止められないUNIXサーバのセキュリティ対策(10) - @IT

上記のページを参考に行います。


絵で表すと以下のようなイメージになります。

f:id:japanrock_pg:20090519223339p:image

なお、転送元サーバとログサーバの環境は以下です。

$ cat /etc/redhat-release
CentOS release 5 (Final)

syslog-ngのインストール

syslog-ng を利用するには、ログサーバ、転送元サーバともにsyslog-ngをインストールする必要があります。では、インストールしましょう。

syslog-ng のインストール
$ wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.0.2/setups/rhel-5-i386/syslog-ng-3.0.2-1.rhel5.i386.rpm
$ sudo rpm -i syslog-ng-3.0.2-1.rhel5.i386.rpm 
Password:
warning: syslog-ng-3.0.2-1.rhel5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 2aa28252
Shutting down kernel logger: [  OK  ]
Shutting down system logger: [  OK  ]
Starting syslog-ng: OK
$ rpm -qa | grep syslog-ng
syslog-ng-3.0.2-1.rhel5

RPMですんなり入りました。転送元、ログサーバともにインストールします。


syslog-ngの基本

まず、syslog-ngの基本を理解しましょう。

設定ファイルは、 /opt/syslog-ng/etc/syslog-ng.conf です。初期設定では、すべてのログが /var/log/messages にいくように設定されていますので、カスタマイズが必要です。後述します。

syslog-ng.confは以下の5つの項目が基本となっており、(1)(2)(3)に値をセットして(4)でルールの対応付けを行う。(5)は任意の設定である。

(1)source(ログの受信に関する設定)

(2)filter(出力するログのフィルタリング

(3)destination(ログの送信に関する設定)

(4)log(source、destination、filterの対応付け)

(5)options(オプション


転送元(192.168.0.50)のsyslog-ngの設定

まず、こちらを参考に転送元サーバsyslogdの設定を引き継ぎます。

syslogの設定(/etc/syslog.conf)

#kern.*                                                 /dev/console
# local6 は lighttpdのログを流すので /var/log/messagesに行かないようにします
*.info;mail.none;authpriv.none;cron.none;local6.none    /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
# lighttpdのログは local6.info に固定します
local6.info             @loghost

syslogの設定を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");};
# IP指定もOK  destination d_loghost  { udp("192.168.0.10");};

#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_loghost  { 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_loghost);  destination(d_loghost); };

これで、同じ・・・はずです。

※「local6.info @loghost」については、前回(syslog - 集約)の「転送元サーバ(192.168.0.50)の設定」をご覧ください。


次に、ログサーバの設定です。


ログサーバ(192.168.0.10)のsyslog-ngの設定

移行前:syslogdの設定(syslog.conf)

#kern.*                                                 /dev/console
# local6 は lighttpdのログを流すので /var/log/messagesに行かないようにします
*.info;mail.none;authpriv.none;cron.none;local6.none    /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
# lighttpdのログは local6.info に固定します
local6.info             /var/log/siteA.lighttpd.access.log

/opt/syslog-ng/etc/syslog-ng.conf は以下のようになりました。

@version: 3.0

source s_local { file ("/proc/kmsg" program_override("kernel: ")); unix-stream("/dev/log"); internal(); udp(); };

#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  { 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_loghost  { 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_loghost);  destination(d_loghost); };

ポイントは、source s_local の udp(); と、d_loghost の file です。

source s_local の udp(); で UDPポート(514)を待機しログメッセージを受信します。

d_loghost の file は受信したlighttpdのログを保存する場所です。

今回のログの保存ファイル名には ${YEAR}${MONTH}${DAY} というのが付いていて、これは日付を表すことができます。

つまり、日付が変わると自動的にログローテするということです。

これは、Macrosという変数のようなもので実現しています。

siteBからのログ受信も同じように設定すれば実現できます。


udpからtcpにしてログの精度を上げる

サーバ/インフラを支える技術の「集約」とは少し趣旨がずれるのですが)

udpは高速ですが、データの保障がありません。そこで、udpではなくtcpを利用して、ログの精度を上げましょう。

といっても、設定は簡単でsyslog-ng.confのsource部分の udp(); となっているところを tcp(); などにすれば完了です。

デフォルトではtcpポート 514 が割り当てられます。

ログサーバで以下のようになっていれば大丈夫です。

$ netstat -an | grep -i tcp | grep 514
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      

また、転送元サーバsyslog-ng.conf も修正します。

destination d_loghost  { udp("loghost");};
↓
destination d_loghost  { tcp("loghost");};

これで、syslog-ng を再起動すれば完了です。ログがtcp通信で送られてきます。



次回はログの収集について行います。


参考

[24時間365日] サーバ/インフラを支える技術 > スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

404 - エラー: 404

UNIXサーバの運用管理で欠かせないログ管理 (1/2):止められないUNIXサーバのセキュリティ対策(7) - @IT

syslogによるログの一元管理:止められないUNIXサーバのセキュリティ対策(8) - @IT

安全性の高いログ・サーバへの乗り換えのススメ(1)〜 syslogサーバからsyslog-ngへの乗り換え 〜:止められないUNIXサーバのセキュリティ対策(9) - @IT

404 - エラー: 404

システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT

Docs ModAccessLog - Lighttpd - lighty labs

慣習を気にせずsyslog-ngの設定をしてみた - (ひ)メモ

システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT

Documentation

Documentation

Documentation





ログ集約・収集について【syslog - 集約】

複数のWebサーバからlighttpdのログを集約・収集することになったが、方法が分からなかったので「サーバ/インフラを支える技術」で学習しました。

サーバ/インフラを支える技術 P295〜302に載っている「Webサーバのログの扱い」の部分はApacheを例に出していますが、lighttpdにも応用できます。

以下、lighttpdのログ集約・収集についてのメモです。


なお、これは、連載のような記事です。

syslog - 集約 <= いまココ

syslog-ng - 集約

syslog-ng - 収集

と見ると一番分かりやすいです。



集約・収集の言葉の定義

まず、集約・収集の言葉の定義・目的を確認します。サーバ/インフラを支える技術の「Webサーバのログの扱い」では、集約・収集を以下のように定義しています。

集約とは

Webサーバが出力するログを常に転送して1つにまとめること。

1つのログサーバにまとめているのがポイントです。

収集とは

サーバ上に出力されたログを定期的に集め、保存すること。

「普段は【各サーバ上】にあり、定期的に集める」というところがポイントです。


また、目的についても以下のように書かれています。

集約の目的

その時々の状況を把握するためです。瞬間的なPVやユーザ数などを、ざっと集計したりするのに使います。

ネットワーク経由に保存する場合、データが渡されない保障はありません。特に udp で通信していた場合はなおさらです。syslogudpで通信しますので、保障されません。ただし、syslog-ngはtcpが利用できますので保障はされますが、データを保障する分パフォーマンスが落ちる可能性があります。

収集の目的

おもに集計と解析、そして保存。

「各サーバ」に保存されたログはネットワークを経由して保存されたログより精度が高いため、集計と解析、保存に利用されます。


集約と収集を区別している理由

以下のように書かれています。

結局のところ両方とも1ヶ所にログを集めるのに、ログの集約と収集を区別しているのは、前述のとおり両者のログの精度が異なるからです。Webサーバの場合、アクセスの量に比例して短時間あたりに出力されるログの量も増えます。アクセスが一時的に増大すると、そのすべてのログを集約して漏れなく保存するには、それに見合った性能を持つハードウエアが必要になります。一時的にしか発生しない状況に合わせて高性能なハードウェアを用意するのはコストパフォーマンスの面から好ましくないので、集約するログの制度を求めず、それでは問題になる用途のために、別途各サーバのローカルに出力されたログを収集するわけです。

サーバ/インフラを支える技術 P296「Webサーバのログの扱い」

なお、syslog-ngの集約についてはこちらに、syslog-ngの収集についてはこちらに書いてあります。


では、具体的にsyslogでの集約方法についてみていきましょう。

ログの集約

syslogの役割はUNIX系のOSにおけるログの集約ハブです。

syslogを使ったログの集約

まずは、syslogを使った集約をやってみます。※次の記事syslog-ngの集約もやっています。

Apacheはログの出力先として、指定されたファイルに書き込む以外に、別のプログラムを起動して標準入力にログを渡す機能を持っています。ログを渡されたプログラムは、そのプログラムの目的に従ってログを処理します。一方syslogにはloggerというプログラムが付属していて、標準入力から受け取ったログをsyslogに渡すことができます。この2つを組み合わせることで、Apacheのログをsyslogに出力できます。

サーバ/インフラを支える技術 P296「Webサーバのログの扱い」

lighttpd でも同じことができます。

絵で表すと以下のようなイメージになります。


f:id:japanrock_pg:20090519221621p:image

なお、転送元サーバとログサーバの環境は以下です。

$ cat /etc/redhat-release
CentOS release 5 (Final)

ログサーバ(192.168.0.10)の設定

まず、ログ・サーバでは、514/udpポートが待機状態であるか確認します。

確認方法は以下のように、コマンドを入力して表示されればOK。何も表示されない場合は待機状態ではない。

$ netstat -an | grep -i udp | grep 514 
udp        0      0 0.0.0.0:514                 0.0.0.0:*   

こちらの「(2)514/udpを待機させる」に開放の方法が書いてあります。

Red Hat Linux系では、/etc/sysconfig/syslogのSYSLOGD_OPTIONS変数に、-r を追加して、syslog再起動します。

変更前:

SYSLOGD_OPTIONS="-m 0"

変更後:

SYSLOGD_OPTIONS="-m 0 -r"

修正後、syslogd再起動させる。

$ sudo /etc/init.d/syslog restart

また、Firewal、iptablesなどで塞がっていないかどうかも確認したほうが良いと思います。


次に、/etc/syslog.conf の設定例です。以下のようになります。

#kern.*                                                 /dev/console
*.info;mail.none;authpriv.none;cron.none;local6.none    /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
# 転送元サーバ(192.168.0.50)のlighttpd log 保存場所
local6.info /var/log/lighttpd/siteA.access.log

設定のポイントは、local6.none で lighttpdのログを /var/log/messages に行かないようにして、local6.info で lighttpdのログを /var/log/lighttpd/siteA.access.log に保存していることです。

設定したら、syslog再起動(/etc/init.d/syslog restart)します。

これで、ログサーバ側の設定は完了です。

他のWebサーバ用に対応させたい場合は、同じように設定を追加すればOKですので、まずは、192.168.0.50 => 192.168.0.10 のログ転送のみ設定します。


転送元サーバ(192.168.0.50)の設定

ログの転送元となるサーバでは、ログ転送を行うための設定をsyslog.confに追加する必要があります。

まず、/etc/hostsにログ・サーバのホスト名/IPアドレスを追加します。

192.168.0.10 loghost

これは、loghost という名前を解決するためです。DNSサーバに設定しても大丈夫ですが、オススメしません。それはDNSサーバが停止した場合機能しなくなるからです。

つぎに、/etc/syslog.confにログ転送の設定を追加します。facility.priority は local6.info に固定します。また、/var/log/messagesにlighttpdのログが行かないよう local6.none を加えます。

#kern.*                                                 /dev/console
# local6 は lighttpdのログを流すので /var/log/messagesに行かないようにします
*.info;mail.none;authpriv.none;cron.none;local6.none    /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
# lighttpdのログは local6.info に固定します
local6.info     @loghost

そして、syslogd再起動(/etc/init.d/syslog restart)させ、設定を再読み込みさせます。

これで、基本的な設定は完了しました。

転送元サーバで以下のコマンド入力して、ちゃんとログサーバのほうにログが保存されることを確認してください。

logger -p local6.info test

もし、ログがログサーバに現れない場合は、ログサーバで以下のコマンドを実行してみる。

# tcpdump -n -i eth1 udp and dst port 514
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
07:45:12.673781 IP 192.168.0.50.syslog > 192.168.0.10.syslog: SYSLOG user.notice, length: 16

ログサーバ(192.168.0.10)で「tcpdump -n -i eth1 udp and dst port 514」を実行して待ち状態にして、転送元サーバ(192.168.0.50)で 「logger -p local6.info test」 などと実行して、上記のように出力されたら、ログサーバへのアクセスに成功している。

もし、何も変化がない場合、転送元のサーバに問題がある可能性が高いため、設定を見直してみましょう。


ログサーバにログが送れていることが確認できたら、lghttpdの confの設定を行います。

lightpdのアクセスログを ログサーバへ転送させるには、lighttpd の log 出力を logger に渡せばよい。

mod_access_log を利用して、lighttpd.conf のアクセスログが設定してある部分に以下のように記述すればよい。

・
・
accesslog.filename = "|/usr/bin/logger -p local6.info"
・
・

これで、lighttpdアクセスログが loggerに吐かれるようになる。つまり、ログサーバへ吐かれることになります。

同じように他のWebサーバにも設定すれば、ログの集約ができます。


syslogの注意点

ただし、前述したとおり、注意点があります。

syslogは、ログを取りこぼすことがあります。また同じログが連続して出力されるとそれらを1つにまとめます。このため集計などの厳密さが要求される用途には適しませんが、一方で大量のログが出力された時でもディスクへの負荷を押さえることができます。syslogで集約したログはあくまでも、問題が発生したときにどのマシンでそれが発生したのかあたりを付けたり、あるいは現在のサイトのトレンドを観察するために使います。

syslog-ngは udpでの通信でしかできなかったり、出力先のファイル名が1つしか選べないなどの欠点があります。

syslogの欠点を補うのがsyslog-ngです。

次回syslog-ng で集約をやってみます。


参考

[24時間365日] サーバ/インフラを支える技術 > スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

404 - エラー: 404

UNIXサーバの運用管理で欠かせないログ管理 (1/2):止められないUNIXサーバのセキュリティ対策(7) - @IT

syslogによるログの一元管理:止められないUNIXサーバのセキュリティ対策(8) - @IT

安全性の高いログ・サーバへの乗り換えのススメ(1)〜 syslogサーバからsyslog-ngへの乗り換え 〜:止められないUNIXサーバのセキュリティ対策(9) - @IT

404 - エラー: 404

システム管理の基礎 syslogdの設定をマスターしよう (2/3):Linux管理者への道(3) - @IT

Docs ModAccessLog - Lighttpd - lighty labs