SYSLOGD(8)

名称
syslogd - システムメッセージの記録をとる

書式
syslogd [-46Adknsuv] [-a allowed_peer] [-b bind_address] [-f config_file] [-m mark_interval] [-p log_socket] [-P pid_file] [-l path]

解説
syslogd デーモンは設定ファイルに指定された通りに、システムコンソール、 ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。

オプションには以下のものがあります。

-4  syslogd が IPv4 アドレスのみを使用するよう、強制します。

-6  syslogd が IPv6 アドレスのみを使用するよう、強制します。

-A  ホストが複数の A または AAAA レコードを持っている場合でも、 通常 syslogd はメッセージを単一のアドレスにのみ送信しようとします。 本オプションが指定されると、 syslogd はメッセージをすべてのアドレスに送信しようとします。

-a allowed_peer
    allowed_peer がこの syslogd に UDP データグラムを使用してログすることを許します。複数の -a オプションを指定可能です。

    allowed_peer は以下のいずれかです:

        ipaddr /masklen [:service] ipaddr (通常のドット表記の 4 つ組) からのデータグラムを受け付けます。 アドレス比較の際、 masklen ビットを考慮します。 アドレスを ‘[’ と ‘’] で括ることで、 ipaddr に IPv6 アドレスを指定可能です。 service が指定された場合、パケット送出元が属すべき UDP service の名前もしくは番号となります ( services(5) 参照)。 service に ‘*’ を指定すると、全ての UDP ポートから送信されたパケットを受け付けます。 デフォルトの service は ‘syslog’ です。 ipaddr が IPv4 アドレスの場合で masklen を指定しないと、 ipaddr がクラス A もしくは B のアドレス範囲に属す場合にはそれぞれ 歴史的なクラス A もしくは B のネットマスクが使用され、 そうでない場合には 24 が使用されます。 ipaddr が IPv6 アドレスの場合で masklen を指定しないと、 masklen は 128 が用いられます。

        domainname[:service] 送信アドレスのアドレス逆引きにおいて domainname が得られたデータグラムを受け付けます。 service の意味は前述の通りです。

        *domainname[:service] 上述の通りですが、送信ホスト名が domainname で 終る 全てのホストから受け付けます。

    -s が指定された場合には、 -a オプションは無視されます。

-b bind_address
    バインド対象となる IP アドレスまたはホスト名を、1 個指定します。 ホスト名が指定された場合、これに対応する IPv4 または IPv6 のアドレスが使用されます。

-c  出力が他のプログラムへのパイプの場合、同じ行の繰り返しを “last message repeated N times” という形式の単一行に圧縮することを無効化します。 2 回指定すると、すべての場合においてこの圧縮を無効化します。

-d  syslogd をデバッグモードで実行します。これは恐らく、 syslogd の開発者にのみ役立ちます。

-f  代りの設定ファイルのパス名を指定します。 デフォルトは /etc/syslog.conf です。

-k  ファシリティ “kern” で受信したメッセージをファシリティ “user” へ変換することを、止めます。 通常は、 “kern” ファシリティは、直接 /dev/klog から読み込むメッセージ用に予約されています。

-m  “mark” されたメッセージの間隔を分単位で指定します。 デフォルトは 20 分です。

-n  すべての要求に対し、DNS への問い合わせを抑止します。

-p  代りに使用するログ用ソケットのパス名を指定します。 デフォルトは /var/run/log です。

-P  プロセス ID を格納するための別のファイルを指定します。 デフォルトは /var/run/syslog.pid です。

-l  syslogd が追加のログ用ソケットを置く場所を指定します。 19 個まで追加のログ用ソケットを指定可能です。 主な用法は、 様々に chroot したファイル空間において追加のログ用ソケットを /var/run/log に置くというものです。

-s  セキュアモードで操作します。リモートマシンからのログメッセージをログしません。 2 度指定すると、ネットワークソケットを全くオープンせず、 またリモートマシンへのログ動作も無効にします。

-u  ただ 1 つの優先度のログのみ行います。 指定した優先度のメッセージのみログします。 このオプションを指定しないと、指定した優先度以上のメッセージがログされます。 このオプションにより、デフォルトの比較を “=>” から “=” に変更します。

-v  冗長なログを行います。1 度指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が数値でログされます。 複数回指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が名前でログされます。

syslogd デーモンは 起動時と hangup シグナルを受けとった時はいつでも設定ファイルを 読み込みます。 設定ファイルのフォーマットに関する情報は、 syslog.conf(5) 参照して下さい。

syslogd デーモンは UNIX ドメインソケット /var/run/log、 /etc/services で指定されるインターネットドメインソケット および特殊デバイス /dev/klog (カーネルメッセージを読むため) からメッセージを読み込みます。

syslogd デーモンはプロセス ID ファイル、デフォルトでは /var/run/syslog.pid を作成し、ここにプロセス ID を記録します。 これは syslogd を kill や、設定ファイルを読み込ませるために使えます。

syslogd に送られるメッセージは単一の行で構成されます。このメッセージは先頭に 優先順位コードを含んでいます。このコードは ‘<5>’ のように括弧でくくられた 10 進数から構成されており、インクルードファイル <sys/syslog.h> で定義されている優先順位に対応します。

セキュリティ上の理由から、 syslogd は存在しないログファイルへ追加書き込みしません。 syslogd の起動前に手動で作成する必要があります。

関連ファイル
/etc/syslog.conf
    コンフィギュレーションファイル
/var/run/syslog.pid
    デフォルトのプロセス ID ファイル
/var/run/log
    UNIX ドメインデータグラムのログ用ソケットの名前
/dev/klog
    カーネルログ用のデバイス

関連項目
logger(1), syslog(3), services(5), syslog.conf(5)

歴史
syslogd コマンドは 4.3BSD から登場しました。

-a, -s, -u, -v のオプションは FreeBSD 2.2 における拡張です。

バグ
UDP パケットで受けとったメッセージを記録する能力は認証されていない ディスクを溢れさせるリモートサービスと等価であり、恐らくデフォルトで無効に されるべきです。ある種の syslogd 間の認証メカニズムが用意されるべきでしょう。 最悪の無駄遣いを避けるために、 -a オプションの使用を強く勧めます。

-a のマッチングアルゴリズムは非常に効率的には見えません; ドメイン名比較より、数値による IP アドレスを使用する方が高速です。 許可されたピアのリストの検索は線型に行なわれるため、 多くのメッセージを受け付けると予測されるピアグループは -a リストの最初の方に置くべきです。

ログ用ソケットは読み込み専用のルートファイルシステムの扱いを容易にする ために /dev から移されました。このことは古いバイナリを混乱させるかもしれないので、 過渡期の間はシンボリックリンクが役に立つでしょう。