このページで
単一シャーシ システムのシステム ロギング
単一シャーシ システム ロギング設定の概要
Junos システム ロギング ユーティリティは、UNIX syslogd
ユーティリティと似ています。このセクションでは、Junos OS を実行する単一シャーシ システムのシステム ロギングを設定する方法について説明します。
コモン クライテリア環境の Junos-FIPS ソフトウェアおよびジュニパーネットワークス ルーターのシステム ロギング設定は、Junos OS の場合と同じです。詳細については、『 Secure Configuration Guide for Common Criteria』および『Junos-FIPS』を参照してください。
TX MatrixルーターとT640ルーターで構成されるルーティングマトリクスのシステムロギングの設定については、 TXマトリクスルーターのシステムロギングの設定を参照してください。
各システム ログ メッセージは ファシリティに属し、関連するメッセージをグループ化します。各メッセージには 重大度レベルも事前に割り当てされており、トリガー イベントがルーター機能に与える影響の深刻度を示します。ログに含めるメッセージのファシリティと重大度は常に指定します。詳細については、 ログに含めるメッセージのファシリティと重大度の指定を参照してください。
1 つ以上の宛先にメッセージを送信するには、 階層レベルで適切なステートメントを [edit system syslog]
含めます。
ステートメントを含めることで、ローカル・ファイル・システム内の名前付きファイルに対して
file
。「システム ログ メッセージをログ ファイルに送信する」を参照してください。ステートメントを含
user
めることで、1つ以上の特定のユーザー(またはすべてのユーザー)の端末セッションにログインします。システムログメッセージをユーザー端末に誘導するを参照してください。ステートメントを含めることで、ルーターコンソールに
console
。システムログメッセージをコンソールに誘導するを参照してください。ステートメントを含
host
めることで、ユーティリティをsyslogd
実行しているリモートマシン、またはルーター上の他のルーティングエンジンに送信します。
デフォルトでは、UNIXシステムログ形式に基づく標準形式でメッセージが記録されます。メッセージのフォーマットの詳細については、 システムログエクスプローラを参照してください。ログに記録されたメッセージの内容と形式は、以下の方法で変更できます。
標準の Junos 形式ではなく、構造化データ形式でファイルにメッセージをログに記録できます。構造化データ形式では、膨大な長さを追加することなくより多くの情報を提供し、自動化アプリケーションでメッセージから情報を簡単に抽出できます。詳細については、「 構造化データ形式でのメッセージのログ記録」を参照してください。
メッセージのファシリティと重大度レベルは、その 優先度と呼ばれます。デフォルトでは、メッセージの標準 Junos 形式には優先度情報は含まれません(構造化データ形式にはデフォルトで優先コードが含まれています)。ファイルまたはリモート宛先に送信される標準形式メッセージに優先順位情報を含める場合は、 ステートメントを
explicit-priority
含めます。詳細については、「 システムログメッセージに優先度情報を含める」を参照してください。デフォルトでは、メッセージの標準 Junos 形式では、メッセージがログに記録された月、日付、時間、分、秒が指定されます。標準形式のシステムログメッセージでタイムスタンプを変更して、年、ミリ秒、またはその両方を含めることができます。(構造化データ形式では、年とミリ秒がデフォルトで指定されます)。詳細については、「 タイムスタンプに年またはミリ秒を含める」を参照してください。
メッセージをリモートマシンに送信する場合、メッセージに報告されるIPアドレスを送信元として指定できます。また、Junos OS によって生成されたメッセージや、特定のルーターで生成されたメッセージを分離しやすくする機能を設定することもできます。
事前定義された設備グループは関連メッセージを一緒にグループ化しますが、正規表現を使用して、ファシリティからのメッセージがファイル、ユーザー端末、またはリモート宛先に記録される正確なメッセージを指定することもできます。詳細については、「 文字列と正規表現を使用してログに記録されたメッセージのセットを改良する」を参照してください。
単一シャーシ システム ロギング設定の概要
QFX シリーズの Junos OS システム ロギング ユーティリティは、UNIX syslogd ユーティリティと似ています。このトピックでは、Junos OS を実行する単一シャーシ システムのシステム ロギングを設定する方法について説明します。
各システム ログ メッセージは ファシリティに属し、関連するメッセージをグループ化します。各メッセージには 重大度レベルも事前に割り当てされており、トリガー イベントがルーター機能に与える影響の深刻度を示します。ログに含めるメッセージのファシリティと重大度は常に指定します。詳細については、 ログに含めるメッセージのファシリティと重大度の指定を参照してください。
1 つ以上の宛先にメッセージを送信するには、 階層レベルで適切なステートメントを [edit system syslog]
含めます。
ステートメントを含めることで、ローカル・ファイル・システム内の名前付きファイルに対して
file
。「システム ログ メッセージをログ ファイルに送信する」を参照してください。ステートメントを含
user
めることで、1つ以上の特定のユーザー(またはすべてのユーザー)の端末セッションにログインします。システムログメッセージをユーザー端末に誘導するを参照してください。ステートメントを含めることで、スイッチのコンソールに
console
アクセスします。システムログメッセージをコンソールに誘導するを参照してください。ステートメントを含めることで、ユーティリティを syslogd 実行しているリモートマシンに
host
送信します。システムログメッセージをリモートマシンに送信するを参照してください。
デフォルトでは、UNIXシステムログ形式に基づく標準形式でメッセージが記録されます。メッセージのフォーマットの詳細については、 Junos OSシステムログメッセージリファレンスを参照してください。ログに記録されたメッセージの内容と形式は、以下の方法で変更できます。
標準の Junos OS 形式ではなく、構造化データ形式でファイルにメッセージをログに記録できます。構造化データ形式では、膨大な長さを追加することなくより多くの情報を提供し、自動化アプリケーションでメッセージから情報を簡単に抽出できます。詳細については、「 構造化データ形式でのメッセージのログ記録」を参照してください。
メッセージのファシリティと重大度レベルは、その 優先度と呼ばれます。デフォルトでは、メッセージの標準 Junos OS 形式には優先情報は含まれません(構造化データ形式にはデフォルトで優先コードが含まれています)。ファイルまたはリモート宛先に送信される標準形式メッセージに優先順位情報を含める場合は、 ステートメントを
explicit-priority
含めます。詳細については、「 システムログメッセージに優先度情報を含める」を参照してください。デフォルトでは、メッセージの標準Junos OSフォーマットは、メッセージがログに記録された月、日付、時間、分、および秒を指定します。標準形式のシステムログメッセージでタイムスタンプを変更して、年、ミリ秒、またはその両方を含めることができます。(構造化データ形式では、年とミリ秒がデフォルトで指定されます)。詳細については、「 タイムスタンプに年またはミリ秒を含める」を参照してください。
メッセージをリモートマシンに送信する場合、メッセージに報告されるIPアドレスを送信元として指定できます。また、Junos OSによって生成されたメッセージや、特定のスイッチで生成されたメッセージを分離しやすくする機能を設定することもできます。詳細については、「 システム ログ メッセージをリモート マシンに送信する」を参照してください。
事前定義された設備グループは関連メッセージを一緒にグループ化しますが、正規表現を使用して、ファシリティからのメッセージがファイル、ユーザー端末、またはリモート宛先に記録される正確なメッセージを指定することもできます。詳細については、「 文字列と正規表現を使用してログに記録されたメッセージのセットを改良する」を参照してください。
コミット チェック中、設定に関する traceoptions 警告(トレース ファイル サイズやトレース ファイル数の不一致など)は、コンソールに表示されません。ただし、これらの警告は、新しい設定がコミットされると、システムログメッセージに記録されます。
Junos OSシステムログ設定ステートメント
システム メッセージをログに記録するようにスイッチを設定するには、 階層レベルで ステートメントを[edit system]
含syslog
めます。
[edit system] syslog { archive <files number> <size size> <world-readable | no-world-readable>; console { facility severity; } file filename { facility severity; archive <archive-sites (ftp-url <password password>)> <files number> <size size> <start-time "YYYY-MM-DD.hh:mm"> <transfer-interval minutes> <world-readable | no-world-readable>; explicit-priority; match "regular-expression"; structured-data { brief; } } host hostname { facility severity; explicit-priority; facility-override facility; log-prefix string match "regular-expression"; } source-address source-address; time-format (year | millisecond | year millisecond); user (username | *) { facility severity; match "regular-expression"; } }
Junos OS 最小システム ロギング設定
システム ログ メッセージを記録または表示するには、 階層レベルに ステートメントをsyslog
[edit system]
含める必要があります。で説明 表 1されているように、メッセージの宛先を少なくとも 1 つ指定します。設定ステートメントの詳細については、 単一シャーシシステムロギング設定の概要を参照してください。
先 |
最小設定ステートメント |
---|---|
ファイル |
[edit system syslog] file filename { facility severity; } |
1 ユーザー、複数ユーザー、またはすべてのユーザーの端末セッション |
[edit system syslog] user (username | *) { facility severity; } |
ルーターまたはスイッチ のコンソール |
[edit system syslog] console { facility severity; } |
ルーターまたはスイッチ上のリモートマシンまたはその他のルーティングエンジン |
[edit system syslog] host (hostname | other-routing-engine) { facility severity; } |
例:システム ログ メッセージの設定
QFabric システムは、コンポーネント デバイスで発生するイベントを監視し、そのイベントに関するシステム ログ メッセージを、構成されたすべての外部システム ログ メッセージ サーバー(ホスト)に配信します。コンポーネントデバイスには、ノードデバイス、相互接続デバイス、Directorデバイス、およびバーチャルシャーシが含まれる場合があります。メッセージは、QFabric システム データベースでのみ表示するために保存されます。メッセージを表示するには、 コマンドを show log
発行します。
この例では、QFabric システムでシステム ログ メッセージを設定する方法について説明します。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
Junos OS リリース 12.2
QFabricシステム
システム ログ メッセージ ホストとして構成できる外部サーバー
概要
システム ログ メッセージ イベントを生成するコンポーネント デバイスには、ノード デバイス、相互接続デバイス、Director デバイス、コントロール プレーン スイッチが含まれる場合があります。以下の構成例には、QFabric システムのこれらのコンポーネントが含まれています。
Directorグループで実行されている Directorソフトウェア
コントロール プレーン スイッチ
相互接続デバイス
複数ノード デバイス
設定
手順
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの CLI [edit]
にコピー アンド ペーストします。
set system syslog host 10.1.1.12 any error set system syslog file qflogs set system syslog file qflogs structured-data brief set system syslog file qflogs archive size 1g
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 Junos OS CLIユーザーガイドの 設定モードでのCLIエディターの使用を参照してください。
QFabric Directorデバイスからシステムメッセージを設定するには、次の手順に従います。
ホスト、任意のファシリティ、重大度レベルを指定します
error
。[edit system syslog] user@switch# set host 10.1.1.12 any error
注:複数のシステム ログ メッセージ サーバー(ホスト)を設定できます。QFabric システムは、構成された各サーバーにメッセージを送信します。
(オプション)ログメッセージをキャプチャするファイル名を指定します。
注:QFabric システムでは、 という名前 messages の syslog ファイルは、ファシリティと重大度レベルが
any any
100 MB のファイル サイズで暗黙的に設定されます。そのため、設定でファイル名 messages を指定することはできません。そのファイル名に対して自動コマンド完了は機能しません。[edit system syslog] user@switch# set file qflogs structured-data brief user@switch# set file qflogs
(オプション)システム ログ メッセージ アーカイブ ファイルの最大サイズを設定します。この例では、1 GB のアーカイブ サイズを指定します。
[edit system syslog] user@switch# set file qflogs archive size 1g
結果
設定モードから、 コマンドを入力して設定を show system
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
[edit] user@switch# show system syslog { file qflogs { } host 10.1.1.12 { any error; } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
構造化データ形式でのロギング メッセージ
標準の Junos OS 形式ではなく、構造化データ形式でファイルにメッセージをログに記録できます。構造化データ形式では、膨大な長さが不要でより多くの情報が提供され、自動化されたアプリケーションでメッセージから情報を簡単に抽出できます。
構造化データ形式は、インターネット標準 RFC 5424、 Syslog プロトコル( https://tools.ietf.org/html/rfc5424)に準拠しています。RFC は、ログに記録されたメッセージの送信元またはトランスポート プロトコルに関係なく、標準メッセージ形式を確立します。
構造化データ形式のファイルにメッセージを出力するには、 階層レベルに structured-data
ステートメントを [edit system syslog file filename]
含めます。
[edit system syslog file filename] facility severity; structured-data { brief; }
オプション brief
のステートメントは、メッセージの最後にデフォルトで表示される英語のテキストを抑制し、エラーまたはイベントを記述します。
構造化形式は、Junos プロセスまたはソフトウェア ライブラリによって生成されたファイルに記録されたすべてのメッセージに使用されます。
ステートメントと一緒に および time-format
ステートメントのいずれかまたは両方をexplicit-priority
structured-data
含む場合、それらは無視されます。これらのステートメントは、構造化データ形式ではなく、標準的なJunos OSシステムログ形式に適用されます。
ログファイルのサイズ、数、アーカイブプロパティの指定
ログ ファイルのサイズが大きくなりすぎないようにするために、Junos OS システム ロギング ユーティリティはデフォルトで、定義済みのサイズのファイルのシーケンスにメッセージを書き込みます。シーケンス内のファイルは、アーカイブ ・ ファイルと呼ばれ、メッセージが現在書き込まれている アクティブ・ ファイルと区別します。デフォルトの最大サイズは、プラットフォーム タイプによって異なります。
EX シリーズ スイッチの 128 KB(キロバイト)
M シリーズ、MX シリーズ、T シリーズ ルーターの 1 メガバイト(MB)
TX Matrix または TX Matrix Plus ルーターの場合、10 MB
QFX シリーズ用 1 MB
という logfile アクティブ・ログ・ファイルが最大サイズに達すると、ロギング・ユーティリティーはファイルをクローズして圧縮し、圧縮アーカイブ・ファイルに名前を付けます logfile.0.gz。次に、ロギング ユーティリティは を開き、 と呼ばれる logfile新しいアクティブ ファイルに書き込みます。このプロセスは、ファイルの回転とも呼ばれます。new logfile が設定された最大サイズに達すると、 logfile.0.gz は 、 に名前が変更 logfile.1.gzされ、新しい logfile サイズは閉じられ、圧縮され、名前が変更されます logfile.0.gz。デフォルトでは、ロギング・ユーティリティーは、この方法で最大 10 個のアーカイブ・ファイルを作成します。アーカイブ・ファイルの最大数に達し、アクティブ・ファイルのサイズが構成済みの最大サイズに達した場合、最後にアーカイブされたファイルの内容が現在のアクティブ・ファイルによって上書きされます。デフォルトでは、ロギングユーティリティは、ログファイルを読み取ることができるユーザーとJunos OSmaintenance
権限をroot
持つユーザーに制限します。
Junos OSは、ログファイルサイズを確認するための時間間隔を設定することで、システムログファイルの回転頻度を設定する設定ステートメント log-rotate-frequency
を提供します。周波数は、1分~59分の値に設定することができます。デフォルトの頻度は15分です。
ログのローテーション頻度を設定するには、 階層レベルに ステートメントを[edit system syslog]
含log-rotate-frequency
めます。
ステートメントを archive
含めれば、各ファイルの最大サイズ、作成されるアーカイブ・ファイルの数、およびログ・ファイルを読み取れるユーザーを変更することができます。
すべてのログファイルに適用される値を設定するには、 階層レベルに ステートメントを[edit system syslog]
含めますarchive
。
archive <files number> <size size> <world-readable | no-world-readable>;
特定のログファイルに適用される値を設定するには、 階層レベルで archive
ステートメントを [edit system syslog file filename]
含めます。
archive <archive-sites (ftp-url <password password>)> <files number> <size size> <start-time "YYYY-MM-DD.hh:mm"> <transfer-interval minutes> <world-readable | no-world-readable> ;
archive-sites site-name
は、ファイルの保存に使用するアーカイブ・サイトのリストを指定します。値は site-name
、宛先への有効な FTP URL です。複数のサイト名が構成されている場合は、システム ログ ファイル用のアーカイブ サイトのリストが作成されます。ファイルがアーカイブされると、ルーターまたはスイッチは、転送が成功しない場合にのみ次のサイトに移動して、リスト内の最初の URL にファイルの転送を試みます。ログファイルは、指定されたログファイル名でアーカイブサイトに保存されます。有効なFTP URLを指定する方法については、 Junos OS CLIコマンドでファイル名とURLを指定するためのフォーマットを参照してください。
binary-data
バイナリ データを含むファイルとしてマークします。これにより、WTMP ファイル(UNIX ベースのシステムのログイン レコード)などのバイナリ ファイルを適切にアーカイブできます。デフォルト設定に戻すには、 ステートメントを no-binary-data
含めます。
files number
は、最も古いファイルを上書きする前に作成するファイルの数を指定します。値は 1~1000 です。
size size
は、各ファイルの最大サイズを指定します。値は、64 KB(64k)から1ギガバイト(1g)までです。メガバイト単位を表すためには、整数の後に文字 m
を使用します。数字と 、 、または g
単位の文字のk
m
間にスペースはありません。
start-time "YYYY-MM-DD.hh:mm"
ステートメントで指定されたサイトのリスト内の最初の到達可能なサイトに、アクティブなログファイルを一度だけ転送するローカルタイムゾーンの日付と時刻を archive-sites
定義します。
transfer-interval interval
は、現在のログ・ファイルが開いたままで(可能な最大サイズに達していない場合でも)、閉じてアーカイブ・サイトに転送される前に新しい統計を受信する時間を定義します。この間隔の値は、5~2880 分です。
world-readable
すべてのユーザーがログファイルを読み取られます。デフォルトの権限を復元するには、 ステートメントを no-world-readable
含めます。
システムログメッセージに優先度情報を含む
メッセージのファシリティと重大度レベルは、まとめて その優先度と呼ばれます。デフォルトでは、標準のJunos OS形式でログに記録されたメッセージには、優先度に関する情報は含まれていません。ファイルに送信される標準形式メッセージに優先度情報を含める場合は、 階層レベルに ステートメントを[edit system syslog file filename]
含explicit-priority
めます。
[edit system syslog file filename] facility severity; explicit-priority;
構造化データ形式でロギングされるメッセージには、デフォルトで優先順位情報が含まれます。ステートメントと一緒に 階層レベルに structured-data
ステートメントを[edit system syslog file filename]
explicit-priority
含める場合、 explicit-priority
ステートメントは無視され、メッセージは構造化データ形式で記録されます。
ステートメントの詳細 structured-data
については、「 構造化データ形式でのメッセージのログ記録」を参照してください。
リモートマシンまたはその他のルーティングエンジンに送信されるメッセージに優先度情報を含める場合は、 階層レベルに explicit-priority
ステートメントを [edit system syslog host (hostname | other-routing-engine)]
含めます。
[edit system syslog host (hostname | other-routing-engine)] facility severity; explicit-priority;
オプションは other-routing-engine
QFX シリーズには適用されません。
メッセージに記録された優先順位は、元のローカルファシリティ名を常に示します。リモート宛先に送信されるメッセージに facility-override
ステートメントが含まれている場合、Junos OS システム ロギング ユーティリティは、リモート宛先に送信する際に、メッセージ自体に代替ファシリティ名を使用します。詳細については、 リモート宛先に向けられたシステムログメッセージの代替ファシリティ名の変更を参照してください。
ステートメントが explicit-priority
含まれている場合、Junos OS ロギング ユーティリティは、メッセージに次のメッセージがある場合、ファシリティ名と重大度レベルのコードをメッセージ タグ名の先頭に付加します。
FACILITY-severity[-TAG]
(タグは、一部のJunos OSシステムログメッセージに割り当てられた一意の識別子です)。
以下の例では、 CHASSISD_PARSE_COMPLETE
メッセージはファシリティに daemon
属し、重大度 info
が割り当てられます(6)。
Aug 21 12:36:30 router1 chassisd[522]: %DAEMON-6-CHASSISD_PARSE_COMPLETE: Using new configuration
ステートメントが explicit-priority
含まれていない場合、優先度はメッセージに表示されません。
Aug 21 12:36:30 router1 chassisd[522]: CHASSISD_PARSE_COMPLETE: Using new configuration
優先度情報に報告されたシステムログファシリティコードと数値コード
表 2 は、システムログメッセージに表示できるファシリティコードをリストし、それらをファシリティ名にマッピングします。
コード |
Junos ファシリティ名 |
イベントまたはエラーのタイプ |
---|---|---|
|
|
認証および許可の試み |
|
|
スーパーユーザーのみが確認できる認証および許可の試み |
|
|
Junos OS 設定の変更 |
|
|
指定された設定はルーター タイプで無効です |
|
|
カーネル コンソール出力 r によって書き込まれる /dev/console メッセージ |
|
|
ronプロセスで実行されたアクションや発生したエラー |
|
|
システム プロセスで実行されたアクションや発生したエラー |
|
|
動的フロー キャプチャ プロセスで実行されたアクションや発生したエラー |
|
|
ファイアウォール フィルターによって実行されるパケット フィルタリング アクション |
|
|
FTP プロセスで実行されたアクションや発生したエラー |
|
|
Junos OS CLI プロンプトで発行されたコマンド、または Junos XML プロトコルや NETCONF クライアントなどのクライアント アプリケーションによって呼び出されたコマンド |
|
|
Junos カーネルで実行されたアクションや発生したエラー |
|
|
Network Time Protocol(NTP)で実行されたアクションや発生したエラー |
|
|
パケット転送エンジンで実行されたアクションや発生したエラー |
|
|
Junos システム ロギング ユーティリティで実行されたアクションや発生したエラー |
|
|
ユーザー空間プロセスで実行されたアクションや発生したエラー |
表 3 は、システム ログ メッセージに表示できる数値の重大度コードを示し、それらを重大度レベルにマッピングします。
数値コード |
重大度レベル |
説明 |
---|---|---|
|
|
ルーターの機能を停止させるシステム パニックやその他の状態 |
|
|
システム データベースの破損など、直ちに修正が必要な状態 |
|
|
ハードエラーなどのクリティカルな状態 |
|
|
通常、緊急、アラート、クリティカルなレベルのエラーほど深刻な結果を持たないエラー状態 |
|
|
監視を保証する条件 |
|
|
エラーではないが、特別な取り扱いが必要となる可能性のある条件 |
|
|
関心のあるイベントまたは非エラー状態 |
|
|
ソフトウェア デバッグ メッセージ(これらのメッセージは、技術サポート担当者がこの重大度レベルの設定を指示した場合のみ表示されます) |
タイムスタンプに年またはミリ秒を含める
デフォルトでは、標準形式のシステムログメッセージに記録されたタイムスタンプは、次の例のように、メッセージがログに記録された月、日付、時間、分、および2番目の時間を指定します。
Aug 21 12:36:30
年、ミリ秒、または両方をタイムスタンプに含めるには、 または [edit security log]
階層レベルに ステートメントを[edit system syslog]
含めますtime-format
。
[edit system syslog] time-format (year | millisecond | year millisecond);
ただし、traceoption メッセージのタイムスタンプは、デフォルトではミリ秒で指定され、 ステートメントには依存しません [edit system syslog time-format]
。
変更されたタイムスタンプは、 階層レベルで 、 console
、 ステートメントuser
でfile
設定された各宛先に送信されるメッセージで[edit system syslog]
使用されますが、 ステートメントでhost
設定された宛先には使用されません。
デフォルトでは、FreeBSD コンソールでは、 ステートメントで設定された各宛先に送信されるシステムログメッセージに追加の時間情報は host
使用できません。ただし、FreeBSD コンソールを使用した Junos OS 固有の実装では、宛先ごとに送信されるシステム ログ メッセージに追加の時間情報が含まれます。
以下の例は、ミリ秒(401)と年(2006)の両方を含むタイムスタンプの形式を示しています。
Aug 21 12:36:30.401 2006
構造化データ形式でログに記録されるメッセージには、デフォルトで年とミリ秒が含まれます。階層レベルで 構造化データ ステートメントを [edit system syslog file filename]
ステートメントと共 time-format
に含める場合、 ステートメントは無視され、 time-format
メッセージは構造化データ形式で記録されます。
ステートメントの詳細 structured-data
については、「 構造化データ形式でのメッセージのログ記録」を参照してください。
文字列と正規表現を使用して、ログに記録されたメッセージのセットを改良する
事前定義されたファシリティグループは関連メッセージをグループ化しますが、メッセージを文字列や正規表現と照合して、ファシリティからのメッセージがファイル、ユーザー端末、またはリモートの宛先に記録されるかを改善することもできます。
match-strings
および match
設定ステートメントを使用すると、システムログメッセージを文字列または正規表現にそれぞれ一致させることができます。これらのステートメントは、以下の階層レベルに含めることができます。
[edit system syslog file filename]
(ファイルの場合)[edit system syslog user (username | *)]
(特定のユーザーセッションまたは端末上のすべてのユーザーセッションに対して)[edit system syslog host (hostname | other-routing-engine)]
(リモート宛先の場合)
正規表現に対してメッセージを評価し、特定の宛先に一致するメッセージのみをログに記録するには、 ステートメントを match
含めて、正規表現を指定します。
match
"regular-expression";
Junos OS リリース 16.1 以降では、複雑な正規表現に対するマッチングよりも CPU を大量に消費しないため、より効率的なフィルター メッセージに対する単純な文字列比較を使用できます。メッセージが宛先に記録されるメッセージに表示されるテキスト文字列を指定するには、 ステートメントを match-strings
含めて、一致する文字列または文字列のリストを指定します。
match-strings
string-name;
match-strings
[string1 string2];
および match
ステートメントはmatch-strings
、指定された文字列または正規表現に一致するファシリティと重大度が設定されたメッセージを選択します。ステートメントは match-strings
単純な文字列比較を行い、その結果、 ステートメントを使用して match
複雑な正規表現に一致させるよりもCPUを消費する負荷が低くなります。同じ宛先に と match-strings
の両方のステートメントをmatch
設定した場合、Junos OS はまず条件をmatch-strings
評価します。メッセージに設定された部分文字列が含まれている場合、メッセージは記録されmatch
、条件は評価されません。条件が match-strings
満たされない場合、システムは設定ステートメントの正規表現に対してメッセージを match
評価します。
ステートメントの正規表現 match
を指定する場合は、拡張(最新)UNIX正規表現のPOSIX標準1003.2で定義された表記を使用します。正規表現の構文については本書では説明していませんが、POSIX 標準は IEEE( IEEE、http://www.ieee.org)から入手できます。
表 4 は、 一致ステートメントで使用できる一部の正規表現演算子で一致する文字または文字を指定します。説明では、用語用語は、単一の英数字、または大括弧、括弧、または中括弧で囲まれた一連の文字を指します。
ステートメントでは match
大文字と小文字は区別されません。
オペレーター | 一致 |
---|---|
.(期間) |
スペースを除く任意の文字の 1 つのインスタンス。 |
* (アスタリスク) |
直前の用語の 0 つ以上のインスタンス。 |
+(プラス記号) |
直前の用語の 1 つ以上のインスタンス。 |
?(疑問符) |
直前の用語のゼロまたは 1 つのインスタンス。 |
|(パイプ) |
パイプ演算子の両側に表示される用語の1つです。 |
!(埋め立てポイント) |
式の先頭に埋め立てポイントが表示される場合、式で指定された文字列を除く任意の文字列。埋め立てポイントの使用は、Junos OS 固有です。 |
^ (キャレット) |
キャレットが角括弧の外に現れると、ラインの開始。 キャレットが角括弧内の最初の文字である場合、角括弧内でそれを追わない任意の文字の1つのインスタンス。 |
$(ドル記号) |
ラインの終わり。 |
[ ](ペアの角括弧) |
同封の英数字の 1 つのインスタンス。文字の範囲を示すためには、ハイフン (-) を使用して範囲の開始文字と終了文字を区切ります。たとえば、[a-z0-9] は任意の文字または数字に一致します。 |
( )(ペアの括弧) |
同封の項の評価値の 1 つのインスタンス。括弧は、正規表現における評価の順序を示すために使用されます。 |
文字列と正規表現の使用
ファシリティに属するフィルター メッセージで interactive-commands
、文字列 configure
を含むメッセージを root ユーザーの端末に誘導します。
[edit system syslog] user root { interactive-commands any; match-strings configure; }
ユーザーがコマンドを発行configure
して設定モードにroot
入ると、ユーザーの端末に次のようなメッセージが表示されます。
timestamp router-name mgd[PID]: UI_CMDLINE_READ_LINE: User 'user', command 'configure private'
ファシリティに daemon
属し、重大度が 1 以上の error
メッセージをフィルターして、メッセージをファイル /var/log/process-errorsに送信します。SNMP プロセス(snmpd)によって生成されたメッセージを省略し、代わりにメッセージをファイル /var/log/snmpd-errorsに送信します。
[edit system syslog] file process-errors { daemon error; match "!(.*snmpd.*)"; } file snmpd-errors { daemon error; match-strings snmpd; }
一致ステートメントの Junos システム ログ正規表現演算子
オペレーター |
一致 |
---|---|
|
スペースを除く任意の文字の 1 つのインスタンス。 |
|
直前の用語の 0 つ以上のインスタンス。 |
|
直前の用語の 1 つ以上のインスタンス。 |
|
直前の用語のゼロまたは 1 つのインスタンス。 |
|
パイプ演算子の両側に表示される用語の1つです。 |
|
式の先頭に埋め立てポイントが表示される場合、式で指定された文字列を除く任意の文字列。埋め立てポイントの使用は、Junos OS 固有です。 |
|
キャレットが角括弧の外に現れるときのラインの始まり。 キャレットが角括弧内の最初の文字である場合、角括弧内でそれを追わない任意の文字の1つのインスタンス。 |
|
ラインの終わりです。 |
|
同封の英数字の 1 つのインスタンス。文字の範囲を示すためには、ハイフン( |
|
同封の項の評価値の 1 つのインスタンス。括弧は、正規表現における評価の順序を示すために使用されます。 |
ファシリティのシステム ログ記録の無効化
特定のファシリティに属するメッセージのロギングを無効にするには、設定に facility none
ステートメントを含めます。このステートメントは、たとえば、重大度レベルが同じで、少数の機能を含むすべてに属するメッセージをログに記録する場合に便利です。ログに記録する各ファシリティにステートメントを含める代わりに、ログに any severity
記録しない各ファシリティの ステートメントと ステートメント facility none
を含めることができます。例えば、以下は、 および kernel
ファシリティからのメッセージをerror
除き、レベル以上のすべてのメッセージをコンソールにdaemon
記録します。これらのファシリティからのメッセージは、代わりにファイル >/var/log/internals に記録されます。
[edit system syslog] console { any error; daemon none; kernel none; } file internals { daemon info; kernel info; }
例:システム ロギングの設定
以下の例では、CLI プロンプトでユーザーが入力するか、Junos OS XML プロトコルや NETCONF クライアント アプリケーションなどのクライアント アプリケーションによって呼び出されたすべてのコマンド、およびファイル cli-commands とログインしているすべてのユーザーの端末に対するすべての認証または許可の試みについて、メッセージのロギングを設定する方法を示します。
[edit system] syslog { file cli-commands { interactive-commands info; authorization info; } user * { interactive-commands info; authorization info; } }
以下の例は、アラームの状態におけるすべての変更のロギングをファイル /var/log/alarmsに設定する方法を示しています。
[edit system] syslog { file alarms { kernel warning; } }
以下の例は、コメントで説明されているように、さまざまなタイプのメッセージの処理を設定する方法を示しています。情報は、2つのファイル、ユーザー alex
の端末、リモートマシン、およびコンソールに記録されます。
[edit system] syslog { /* write all security-related messages to file /var/log/security */ file security { authorization info; interactive-commands info; } /* write messages about potential problems to file /var/log/messages: */ /* messages from "authorization" facility at level "notice" and above, */ /* messages from all other facilities at level "warning" and above */ file messages { authorization notice; any warning; } /* write all messages at level "critical" and above to terminal of user "alex" if */ /* that user is logged in */ user alex { any critical; } /* write all messages from the "daemon" facility at level "info" and above, and */ /* messages from all other facilities at level "warning" and above, to the */ /* machine monitor.mycompany.com */ host monitor.mycompany.com { daemon info; any warning; } /* write all messages at level "error" and above to the system console */ console { any error; } }
次の例は、ユーザーが Junos OS CLI コマンドを発行したときに生成されるメッセージの処理を設定する方法を示しています。次の重大度レベルでファシリティを interactive-commands
指定します。
info
— CLI の動作モードまたは設定モードのプロンプトでコマンドを発行した場合、メッセージをログに記録します。この例では、メッセージをファイルに書き込みます /var/log/user-actions。notice
— ユーザーが設定モード コマンドとcommit
を発行した場合、メッセージをログに記録しますrollback
。この例では、メッセージをユーザーの端末に書き込みますphilip
。warning
— ユーザーがソフトウェア プロセスを再起動するコマンドを発行したときにメッセージをログに記録します。この例では、メッセージをコンソールに書き込みます。[edit system] syslog { file user-actions { interactive-commands info; } user philip { interactive-commands notice; } console { interactive-commands warning; } }
例:代替ファシリティの割り当て
ローカルルーティングプラットフォームで生成されたすべてのメッセージをエラーレベル以上で、リモートマシン上のlocal0
ファシリティに記録します。monitor.mycompany.com
[edit system syslog] host monitor.mycompany.com { any error; facility-override local0; }
カリフォルニア州にあるルーティング プラットフォームとニューヨークにあるルーティング プラットフォームを設定し、 と呼ばれる central-logger.mycompany.com
単一のリモート マシンにメッセージを送信します。カリフォルニアからのメッセージには代替施設 local0
が割り当てられ、ニューヨークからのメッセージは別の施設 local2
に割り当てられます。
施設内のメッセージを集約するために、カリフォルニア州のルーティング プラットフォームを
local0
設定します。[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local0; }
施設内のメッセージを集約するために、ニューヨークのルーティング プラットフォームを
local2
設定します。[edit system syslog] host central-logger.mycompany.com { change-log info; facility-override local2; }
次にcentral-logger
、システム・ロギング・ユーティリティーを構成して、ファシリティからファイルに、およびファシリティからlocal0
ファイルcalifornia-config
にメッセージをlocal2
new-york-config
書き込むことができます。