syslog は 4.2BSD(1983/9) から導入されました。動作しているサービスについて、さまざまな情報を行単位で出力します。20年ほどの歴史がありますが、昨年ようやく
RFC になりました。RFC3164 です。
ログを出力するときには、syslog(3) という関数を利用します。
FreeBSD では、syslogd(8) がそのログを受け取り、syslog.conf(5) の設定に従ってファイルに記録していきます。
syslog にはアクターとして 図1のような概念があります。
|
|
 |
|
 |
 |
relay
ネットワークを介してログを他のコンピュータに中継します |
|
|
|
 |
 |
collector (syslogサーバ)
ログを収集します |
|
 |
|
|
sender は複数に送ることが出来ますし、relay は途中にいくつあっても構いません。また、collector はログを受け取った後には他に中継することはできません。
syslogd は relay と collector の役割を持ち、device から socket 経由でログを受信します。特にオプションを与えずに起動したときには、UNIX
ドメインと INET ドメインの両方で待ち受けています。
| ドメイン |
sender
の種類 |
受信方法 |
| UNIX ドメイン |
syslog() 関数 |
カーネルの場合 /dev/klog
それ以外 /var/run/log (/dev/log) |
| INET ドメイン |
ネットワーク経由 |
514/UDP |
|
|
|