日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SYSLOG.CONF(5) FreeBSD ファイルフォーマットマニュアル SYSLOG.CONF(5) 名称 syslog.conf -- syslogd(8) 設定ファイル 解説 syslog.conf ファイルは、syslogd(8) プログラムのための設定ファイルです。そ れは、次の 2 つのフィールドを含んでいる各行で (区切りが、それらの行に 1 つ現れる) program, hostname または property-based filter (プロパティベー スのフィルタ) 指定によって区切られた行のブロックから成ります: 行に適用さ れるメッセージのタイプと優先度を指定する selector フィールドとメッセージ syslogd(8) が一致する選択基準を受信するなら、取られるアクションを指定する action フィールド。selector フィールドは、1 つ以上のタブ文字または空白に よって action フィールドから分離されます。 キーワードに続いているディレクトリに含まれている '.' で始まらない、 '.conf' で終わる名前があるすべてのファイルをインクルードするために、特別 の include キーワードを使用することができます。このキーワードは、最初のレ ベルの設定ファイルでのみ使用することができます。 区切りに空白を使用すると、syslog.conf は、他の Unix や Unix 的システムと 互換性が無くなってしまうことに注意してください。この機能は、設定を容易に し (例えば syslog.conf にカットアンドペーストできるようにし)、その際発生 し得るミスを避けるため追加されました。しかしながらこの変更は、古いスタイ ルの syslog.conf (すなわちタブ文字のみ) へのバックワードコンパチビリティ を保っています。 selector は、facility とピリオド (``.'') とオプションの比較フラグ ([!] [<=>]) そして level で符号化され、間に空白は、含みません。facility と level の双方とも、大文字小文字の区別はありません。 facility は、メッセージを生成したのがシステムのどの部分なのかを表します。 これは、次のキーワードの 1 つです: auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, security, syslog, user, uucp, と local0 から local7。これらのキーワード (mark を除く) は、openlog(3) と syslog(3) ライブラリルーチンで指定される ``LOG_'' で始まる値と一致しま す。 比較フラグを使用して、何を記録するのかを正確に指定できます。デフォルトの 比較は、``=>'' (またはあなたが好むのなら ``>='') であり、指定した facility リストからの level 以上のレベルのメッセージを記録することを意味 します。``!'' で開始する比較フラグは、その論理的意味を反転させます。 ``!=info'' は、info 以外の全レベルを意味し、``!notice'' は、``<notice'' と同じ意味です。 level は、メッセージの重要度を表し、以下のキーワードの順に高から低になり ます: emerg, crit, alert, err, warning, notice, info と debug。これらの キーワードは、syslog(3) ライブラリルーチンで指定される ``LOG_'' で始まる 値と一致します。 行の各ブロックは、program, hostname または property-based filter (プロパ ティベースのフィルタ) 指定によって前のブロックから区切られています。ブ ロックは、与えられた最も最近の program, hostname と property-based filter (プロパティベースのフィルタ) 指定に対応しているメッセージのみをログ記録し ます。したがって、`ppp' を program として選択するブロックに、hostname `dialhost' からのメッセージを選択するブロックが直後に続くと、第 2 のブ ロックは、dialhost 上の ppp(8) プログラムからのメッセージのみをログしま す。 program 指定は、行の先頭が `#!prog' または `!prog' (前者は、以前の sys logd との互換性のためのものです。例えば syslog.conf ファイルを共有したい 時などに便利です) で始まり、引き続くブロックは、syslog(3) を呼び出す特定 のプログラムと関連付けられています。program 指定 `foo' は、`foo: ' という プレフィックスを持つカーネルログメッセージにもマッチします。`#!+prog' ま たは `!+prog' の指定は、前述のものと正に同じ動作をします。`#!-prog' また は `!-prog' の指定は、指定したプログラム以外からのメッセージにマッチしま す。複数のプログラムをコンマで区切って列挙可能です。`!prog1,prog2' は、ど ちらのプログラムからのメッセージにもマッチし、`!-prog1,prog2' は、`prog1' と `prog2' 以外からのすべてのメッセージにマッチします。 hostname 指定で `#+hostname' または `+hostname' という書式のものは、これ に引き続くブロックを、指定したホスト名からのメッセージに適用させます。ま た、hostname 指定で `#-hostname' または `-hostname' という指定のものは、 これに引き続くブロックを、指定したホスト名以外からのメッセージに適用させ ます。ホスト名が `@' として与えられると、ローカルホスト名が使用されます。 プログラムの指定と同様、コンマで区切った複数の値をホスト名の指定として使 用可能です。 property-based filter (プロパティベースのフィルタ) 指定は、`#:' または `:' で始まる行であり、次のブロックは、フィルタ値が与えられたフィルタのプ ロパティの値と一致しているときだけ、適用されます。詳細については、「プロ パティベースのフィルタ」セクションを参照してください。 program, hostname または property-based filter (プロパティベースのフィル タ) 指定は、引数として `*' を与えることによってリセットされます。 facility と level の両方のキーワードとその意味のより詳細な説明を知りたい 場合は、syslog(3) を参照してください。選択は、facility で行なう方が program で行なうよりも好まれています。なぜなら、後者は、ネットワーク環境 の中では、簡単に変化してしまう場合があるからです。しかし、適切な facility が本当に存在しない場合もあります。 もし facility 指定に一致したメッセージを受けとり、なおかつそれが指定した level (もしくは、それ以上の level) だった場合、またはメッセージ中の日付の 後ろの最初の単語が program と一致した場合、action フィールドで指定された 動作が選択されます。 複数の selector を、セミコロン (``;'') によって区切ることにより、1 つの action に対して指定することができます。しかしそれぞれの selector は、その 前にある指定を上書き修正できてしまいますので注意してください。 複数の facility は、コンマ (``,'') によって区切ることにより 1 つの level を指定することができます。 アスタリスク (``*'') は、全ての facility、全ての levels、または全ての programs を指定するのに使用できます。 特別な facility である ``mark'' は、20分毎に ``info'' の優先度を持つメッ セージを受け取ります (syslogd(8) を参照)。これは、アスタリスクを含む facility フィールドには適用されません。 特別な level である ``none'' は、特定の facility を無効にします。 それぞれの行の action フィールドは、selector フィールドに指定されたメッ セージを受け取った際の動作を指定します。動作指定には、次の 5つの形式があ ります: • パス名 (先頭がスラッシュで始まります)。該当するメッセージは、そのファ イルに追加されます。 カーネルメッセージが適切に書き込まれることを保証するために、カーネル からメッセージを書き込んだ後に syslog.conf は、fsync(2) を呼び出しま す。他のメッセージは、明示的に同期書き込みすることはありません。パス 名の前にマイナス符号 ``-'' を付けることで、指定したファイルに対する カーネルメッセージ 1 つごとの同期取りをしなくなります。但し、書き込み の直後にシステムがクラッシュした場合、情報が失われるかもしれないこと は留意して下さい。それでも、``-'' オプションの使用は、パフォーマンス を改善します。カーネルが大量のメッセージをログする場合は、とくにそう です。 • ホスト名 ((``@'') 文字から始まる必要があります)。該当するメッセージ は、指定されたホストの syslogd(8) プログラムに転送されます。ポート番 号がコロン (`:') の後に追加されるなら、そのポートは、通常の syslog ポートよりむしろ宛先ポートとして使用されます。角括弧 (`[' と `]') で アドレス部分を囲むことによって、IPv6 アドレスを使用することができま す。 • コンマで区切られたユーザのリスト。該当するメッセージは、指定された ユーザがログインしていれば、そのユーザの画面に出力されます。 • 1 つのアスタリスク。該当するメッセージは、ログイン中の全てのユーザの 画面に出力されます。 • 垂直バー (``|'') とそれに続くコマンド。該当したメッセージをパイプを 使ってコマンドに渡すことができます。このコマンドは、sh(1) によって評 価されるので、通常のシェルメタキャラクタや入力/出力リダイレクトを利用 できます。(しかし実行されたコマンドからの stdio(3) バッファされた出力 のリダイレクトは、余計な遅延を引き起こしたり、あるいはシグナルによっ てロギング中のサブプロセスが終了した場合など出力データを失うことがあ るかもしれないことに注意してください) コマンドそれ自身は、stdout と stderr を /dev/null にリダイレクトして動作します。SIGHUP を受け取る と、syslogd(8) は、そのプロセスとのパイプを閉じます。もしそのプロセス が自発的に終了しない場合は、60 秒の猶予期間の後 SIGTERM を送ります。 コマンドは、パイプ経由で送るべきデータが到着した際に 1 度だけ起動され ます。その後、コマンドが終了した場合には、必要に応じて再起動されま す。そのため、1 行の入力だけをサブプロセスに引き渡すことが望ましいの ならば、(もし多くのメッセージが速く流れる場合には、資源を大量に消費す る可能性がありますが) 1 行の入力があった後に終了する事によって達成す る事ができます。必要ならば、この効果を得るためにラッパスクリプトを書 くこともできます。 そのコマンドが完全なパイプラインでない場合、コマンドを exec で起動す ると、起動したシェルプロセスがコマンドの完了を待たなくなるので便利か もしれません。警告: このプロセスは、syslogd(8) の UID のもとで動きま す。通常は、スーパユーザです。 空行、および、最初の空白でない文字がハッシュ (``#'') 文字である行は、無視 されます。`#' が行の中央に置かれるなら、`#' 文字とその後の行の残りは、無 視されます。特別な意味を防ぐために、`#' 文字は、`\' をつけてエスケープす ることができます。この場合、先行する `\' は、削除され、`#' は、普通の文字 として取り扱われます。 プロパティベースのフィルタ program, hostname 指定は、明示的なフィールドだけに対してフィルタリングと 正確な照合を実行します。Property-based filters (プロパティベースのフィル タ) は、様々なメッセージ属性に対して一致している部分文字列と正規表現 re_format(7)) を参照) を特徴とします。フィルタ指定は、3 つのコンマで区切 られたフィールド property, operator, "value" が続く `#:' または `:' で始 まります。値は、ダブルクォートで囲まれなければなりません。ダブルクォート とバックスラッシュは、バックスラッシュによってエスケープされなければなり ません。 続く properties (プロパティ) は、テスト値としてサポートされます: • `msg' - 受信されたメッセージの本体。 • `programname' - メッセージを送信するプログラム名。 • `hostname' - メッセージの発信者のホスト名。 • `source' - ホスト名のためのエイリアス。 演算子は、フィルタの値に対してプロパティの値の間の比較機能を指定します。 指定できる演算子は、次の通りです: • `contains' - フィルタ値がプロパティの部分文字列としての見つけられるな ら、真。 • `isequal' - フィルタ値が、プロパティと等しいなら、真。 • `startswith' - プロパティがフィルタ値で始まるなら、真。 • `regex' - プロパティが、フィルタ値で定義された基本的な正規表現と一致 するなら、真。 • `ereregex' - プロパティが、フィルタ値で定義された拡張された正規表現と 一致するなら、真。 演算子は、次によって、前置されます。 • `!' - 比較の論理を反転します。 • `icase_' - 比較関数を大文字と小文字を区別しないようにします。 実装に関する注 ``kern'' ファシリティは、通常、ローカルのカーネルから生成されるメッセージ 用に予約されています。ファシリティ ``kern'' でログされた他のメッセージ は、通常、ファシリティ ``user'' に変換されます。この変換は、無効化可能で す。詳細は、syslogd(8) を参照してください。 関連ファイル /etc/syslog.conf syslogd(8) 設定ファイル 使用例 設定ファイルは、次のように見えます: # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します. # プライベートな認証メッセージは、記録をとりません! *.err;kern.*;auth.notice;authpriv.none;mail.crit /dev/console # info 以上のレベルを持つ (mail を除く) 全てのメッセージを記録します. # プライベートな認証メッセージは、記録をとりません! *.info;mail.none;authpriv.none /var/log/messages # debug レベルのみの daemon メッセージを記録します daemon.=debug /var/log/daemon.debug # authpriv ファイルには、アクセス制限があります. authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します. mail.* /var/log/maillog # emerg (非常事態) レベルの全てのメッセージは、全員が受け取ります. *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます. *.alert root,eric # err レベル以上の mail と news のエラーを特別なファイルに保存します. uucp,news.crit /var/log/spoolerr # 全てのレベルの認証メッセージをフィルタにパイプします. auth.* |exec /usr/local/sbin/authfilter # セキュリティメッセージを別のファイルに保存します. security.* /var/log/security # /dev/console への書き込みを別のファイルに保存します. console.* /var/log/console.log # ftpd のトランザクションを mail と news にあわせて保存します. !ftpd *.* /var/log/spoolerr # ipfw メッセージをすべてのメッセージの後で同期書き込みなしで保存します. !ipfw *.* -/var/log/ipfw # メッセージ本体の "Deny" で ipfw メッセージをログ記録します. :msg, contains, ".*Deny.*" *.* /var/log/ipfw.deny # プログラム名のフィルタリングをリセットします. !* # bird または bird6 から 1 つのファイルにメッセージをログ記録します. :processname, regex, "^bird6?$" *.* /var/log/bird-all.log # 大文字と小文字を区別しない, 複数の位置でラック 10-19 のサーバからメッセージをログ記録します. :hostname, icase_ereregex, "^server-(dcA|podB|cdn)-rack1[0-9]{2}\..*" *.* /var/log/racks10..19.log 関連項目 syslog(3), syslogd(8) バグ 複数の selector 指定は、時々思ったように効果を発揮しない事があります。例 えば、``mail.crit,*.err'' と設定すると、``mail'' ファシリティのメッセージ のレベルは、``err'' かそれ以上となり、``crit'' かそれ以上のレベルにはなり ません。 ネットワーク環境においては、全てのオペレーティングシステムが同じ facility 名のセットを実装しているわけではない点に注意してください。authpriv, cron, ftp, ntp といったこの実装において知られた facility が、目的のシステムに は、存在しないかもしれません。更に悪い事に、DEC UNIX は、AdvFS ファイルシ ステムのログイベントに facility 番号 10 (この実装では、authpriv に該当し ます) を使っています。 FreeBSD 11.4 March 26, 2020 FreeBSD 11.4