SYSLOGD(8) | FreeBSD System Manager's Manual | SYSLOGD(8) |
名称
syslogd — システムメッセージをログ記録する書式
syslogd | [ -468ACcdkNnosTuv][ -a allowed_peer][ -b bind_address][ -f config_file][ -l [ mode:] path][ -m mark_interval][ -P pid_file][ -p log_socket] |
解説
syslogd ユーティリティは、設定ファイルに指定された通りに、システムコンソール、ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。オプションは、次の通りです:
- -4
- syslogd が IPv4 アドレスのみを使用するよう、強制します。
- -6
- syslogd が IPv6 アドレスのみを使用するよう、強制します。
- -8
- 8 ビットデータに干渉しないように syslogd に伝えます。通常、 syslogd は、C1 制御文字 (ISO 8859 と Unicode 文字) をそれらの“M- x”同等物に置き換えます。このオプションは、 syslogd が制御文字 ( iscntrl(3) 参照) を修正する方法を変更しないことに注意してください。それらは、常に“^ x”同等物に置き換えられます。
- -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[ : service]
-
-b
: service
-
特定のアドレスおよびポートにバインドします。ホスト名としてアドレスを、サービス名としてのポートをを指定することができます。 IPv6 アドレスが指定されるなら、それは、‘
[
’と‘]
’で囲まれるべきです。デフォルトの service は、‘syslog
’です。 - -C
-
存在しないログファイル (パーミッションは、
0600
に設定される) を作成します。 - -c
-
出力が他のプログラムへのパイプの場合、同じ行の繰り返しを“
last message repeated N times
”という形式の単一行に圧縮することを無効化します。 2 回指定すると、すべての場合においてこの圧縮を無効化します。 - -d
- syslogd をデバッグモードで実行します。これは恐らく、 syslogd の開発者にのみ役立ちます。
- -f
- 代りの設定ファイルのパス名を指定します。デフォルトは、 /etc/syslog.conf です。
- -k
- ファシリティ“kern”で受信したメッセージをファシリティ“user”へ変換することを、止めます。通常は、“kern”ファシリティは、直接 /dev/klog から読み込むメッセージ用に予約されています。
- -m
- “mark”されたメッセージの間隔を分単位で指定します。デフォルトは、20 分です。
- -N
- UDP ソケットでバインドを無効にします。 RFC 3164 は、発信 syslogd メッセージが、特権があるポートから起こるべきであることを勧めていて、このオプションは、お勧めの振る舞いを 無効 にします。このオプションは、 -s を引き継ぎます。
- -n
- すべての要求に対し、DNS への問い合わせを抑止します。
- -o
-
カーネルメッセージの前に、
getbootfile(3) で判定される完全なカーネルブートファイルを付けます。これを指定しないと、カーネルメッセージのプレフィックスは、常に“
kernel:
”になります。 - -p
- 代りに使用するログ用ソケットのパス名を指定します。デフォルトは、 /var/run/log です。
- -P
- プロセス ID を格納するための別のファイルを指定します。デフォルトは、 /var/run/syslog.pid です。
- -S
- 特権のあるアプリケーションが代わりに利用するログ用ソケットのパス名を指定します。デフォルトは、 /var/run/logpriv です。
- -l
- syslogd が追加のログ用ソケットを置く場所を指定します。主な用法は、様々に chroot したファイル空間において追加のログ用ソケットを /var/run/log に置くというものです。ソケットのファイルパーミッションは、ソケット名の前にコロンで区切って 8 進表記で指定可能です。ソケットの場所へのパスは、絶対パスでなければなりません。
- -s
- セキュアモードで操作します。リモートマシンからのログメッセージをログしません。 2 度指定すると、ネットワークソケットを全くオープンせず、またリモートマシンへのログ動作も無効にします。
- -T
- リモートホストによってメッセージに供給されたタイムスタンプフィールドの代わりに、ネットワークから受信されたメッセージのためにローカルの時間と日付を常に使用します。送信元ホストのいくつかが、適切に時間を保持することができないか、または正しいタイムスタンプを生成することができないなら、これは、役に立ちます。
- -u
- ただ 1 つの優先度のログのみ行います。指定した優先度のメッセージのみログします。このオプションを指定しないと、指定した優先度以上のメッセージがログされます。このオプションにより、デフォルトの比較を“=>”から“=”に変更します。
- -v
- 冗長なログを行います。 1 度指定すると、ローカルに書き込まれたメッセージと共に、ファシリティと優先度が数値でログされます。複数回指定すると、ローカルに書き込まれたメッセージと共に、ファシリティと優先度が名前でログされます。
syslogd ユーティリティは、起動時と hangup シグナルを受けとった時はいつでも設定ファイルを読み込みます。設定ファイルのフォーマットに関する情報は、 syslog.conf(5) 参照して下さい。
syslogd ユーティリティは、 UNIX ドメインソケット /var/run/log と /var/run/logpriv から、 /etc/services で指定されるインターネットドメインソケットから、および特殊デバイス /dev/klog (カーネルメッセージを読むため) からメッセージを読み込みます。
syslogd ユーティリティは、プロセス ID ファイル、デフォルトでは、 /var/run/syslog.pid を作成し、ここにプロセス ID を記録します。これは、 syslogd を kill したり、再設定したりするために使えます。
syslogd に送られるメッセージは、単一の行で構成されます。このメッセージは、先頭に優先順位コードを含んでいます。このコードは、‘<5>’のように括弧でくくられた 10 進数から構成されており、インクルードファイル < sys/syslog.h> で定義されている優先順位に対応します。
セキュリティ上の理由から、 syslogd は、 ( -C オプションが指定されないなら) 存在しないログファイルへ追加書き込みしません。 syslogd の起動前に手動で作成する必要があります。
日付と時間は、受信されたメッセージから取られます。タイムスタンプフィールドの形式が不正確であるなら、ローカルホストから得られた時間が、代わりに使用されます。これは、 -T フラグによって、上書きすることができます。
関連ファイル
- /etc/syslog.conf
- 設定ファイル
- /var/run/syslog.pid
- デフォルトのプロセス ID ファイル
- /var/run/log
- UNIX ドメインデータグラムのログ用ソケットの名前
- /var/run/logpriv
- 特権のあるアプリケーション用の UNIX ソケット
- /dev/klog
- カーネルログ用のデバイス
歴史
syslogd ユーティリティは、 4.3BSD で登場しました。-a, -s, -u と -v のオプションは、 FreeBSD 2.2 における拡張です。
バグ
UDP パケットで受けとったメッセージを記録する能力は認証されていないディスクを溢れさせるリモートサービスと等価であり、恐らくデフォルトで無効にされるべきです。ある種の syslogd 間の認証メカニズムが用意されるべきでしょう。最悪の無駄遣いを避けるために、 -a オプションの使用を強く勧めます。-a のマッチングアルゴリズムは、非常に効率的には見えません;ドメイン名比較より、数値による IP アドレスを使用する方が高速です。許可されたピアのリストの検索は、線型に行なわれるため、多くのメッセージを受け付けると予測されるピアグループは、 -a リストの最初の方に置くべきです。
ログ用ソケットは、読み込み専用のルートファイルシステムの扱いを容易にするために /dev から移されました。このことは、古いバイナリを混乱させるかもしれないので、過渡期の間は、シンボリックリンクが役に立つでしょう。
May 13, 2008 | FreeBSD |