このページで
単一シャーシ システムのシステム ロギング
単一シャーシ システム ロギング構成の概要
Junos システム ロギング ユーティリティは UNIX syslogd
ユーティリティと似ています。このセクションでは、Junos OS を実行する単一シャーシ システムのシステム ロギングを設定する方法について説明します。
共通条件環境の Junos-FIPS ソフトウェアおよびジュニパーネットワークス ルーターのシステム ロギング設定は、Junos OS の場合と同じです。詳細については、 共通基準および Junos-FIPS のセキュア構成ガイドを参照してください。
TX マトリクス ルーターと T640 ルーターで構成されるルーティング マトリクスのシステム ロギングの設定については、「 TX マトリクス ルーターのシステム ロギングの設定」を参照してください。
各システム・ログ・メッセージは、関連するメッセージをグループ化する 機能に属します。各メッセージには 重大度レベルも事前に割り当てられ、トリガー イベントがルーター機能にどれほど深刻な影響を与えるかを示します。ログに含めるメッセージのファシリティと重大度は常に指定します。詳細については、「 ログに含めるメッセージのファシリティと重大度の指定」を参照してください。
階層レベルで適切なステートメントを含めて、1 つ以上の宛先にメッセージを [edit system syslog]
送信します。
ステートメントを含めて、ローカル・ファイル・システム内の名前付きファイルへ
file
。「システム ログ メッセージをログ ファイルに転送する」を参照してください。ステートメントを含めて
user
、1つ以上の特定のユーザー(またはすべてのユーザー)の端末セッションにルーターにログインします。ユーザー端末へのシステム・ログ・メッセージの誘導を参照してください。ステートメントを含めて、ルーターコンソールに
console
アクセスします。「システム ログ メッセージをコンソールに転送する」を参照してください。ステートメントを含めて、ユーティリティを
syslogd
実行しているリモート マシン、またはルーター上のもう一方のルーティング エンジンにhost
送信します。
デフォルトでは、メッセージは UNIX システム ログ形式に基づく標準形式でログに記録されます。メッセージのフォーマットの詳細については、 システム ログ エクスプローラーを参照してください。ログに記録されたメッセージの内容と形式は、以下の方法で変更できます。
標準の Junos 形式ではなく構造化データ形式でファイルにメッセージをログできます。構造化データ形式では、膨大な長さを追加することなく、より多くの情報が提供され、自動化されたアプリケーションがメッセージから情報を簡単に抽出できるようになります。詳細については、「 構造化データ形式でのメッセージのロギング」を参照してください。
メッセージのファシリティレベルと重大度レベルは、その 優先度と呼ばれます。デフォルトでは、メッセージの標準 Junos 形式には優先度情報は含まれません(構造化データ形式にはデフォルトで優先コードが含まれています)。ファイルまたはリモート宛先に送られる標準フォーマット・メッセージに優先順位情報を組み込むには、ステートメントを組み
explicit-priority
込みます。詳細については、「 システム ログ メッセージに優先度情報を含める」を参照してください。デフォルトでは、メッセージの標準 Junos 形式では、メッセージがログに記録された月、日付、時間、分、および秒が指定されます。標準形式のシステム ログ メッセージのタイムスタンプを変更して、年、ミリ秒、またはその両方を含めることができます。(構造化データ形式では、デフォルトで年とミリ秒を指定します。詳細については、「 年またはミリ秒をタイムスタンプに含める」を参照してください。
メッセージをリモート・マシンに誘導する場合は、メッセージに報告される IP アドレスをソースとして指定できます。また、Junos OS によって生成されたメッセージや、特定のルーターで生成されたメッセージを簡単に分離できる機能を設定することもできます。
事前定義されたファシリティは関連メッセージをグループ化しますが、正規表現を使用して、ファイル、ユーザー端末、またはリモート宛先にログに記録されるファシリティからのメッセージをより正確に指定することもできます。詳細については、「 文字列と正規表現を使用してログに記録されるメッセージのセットを絞り込む」を参照してください。
単一シャーシ システム ロギング構成の概要
QFX シリーズの Junos OS システム ロギング ユーティリティは、UNIX syslogd ユーティリティと似ています。このトピックでは、Junos OS を実行する単一シャーシ システムのシステム ロギングを構成する方法について説明します。
各システム・ログ・メッセージは、関連するメッセージをグループ化する 機能に属します。各メッセージには 重大度レベルも事前に割り当てられ、トリガー イベントがルーター機能にどれほど深刻な影響を与えるかを示します。ログに含めるメッセージのファシリティと重大度は常に指定します。詳細については、「 ログに含めるメッセージのファシリティと重大度の指定」を参照してください。
階層レベルで適切なステートメントを含めて、1 つ以上の宛先にメッセージを [edit system syslog]
送信します。
ステートメントを含めて、ローカル・ファイル・システム内の名前付きファイルへ
file
。「システム ログ メッセージをログ ファイルに転送する」を参照してください。ステートメントを含めて、1つ以上の特定のユーザー(またはすべてのユーザー)がスイッチにログインしたときに、端末セッションに
user
アクセスします。ユーザー端末へのシステム・ログ・メッセージの誘導を参照してください。ステートメントを含めて、スイッチ コンソールに
console
アクセスします。「システム ログ メッセージをコンソールに転送する」を参照してください。ステートメントを含めて、ユーティリティを syslogd 実行しているリモート マシンに
host
送信します。「システム ログ メッセージをリモート マシンに転送する」を参照してください。
デフォルトでは、メッセージは UNIX システム ログ形式に基づく標準形式でログに記録されます。メッセージのフォーマットの詳細については、「 Junos OS システム ログ メッセージ リファレンス」を参照してください。ログに記録されたメッセージの内容と形式は、以下の方法で変更できます。
標準の Junos OS 形式ではなく、構造化データ形式でファイルにメッセージをログできます。構造化データ形式では、膨大な長さを追加することなく、より多くの情報が提供され、自動化されたアプリケーションがメッセージから情報を簡単に抽出できるようになります。詳細については、「 構造化データ形式でのメッセージのロギング」を参照してください。
メッセージのファシリティレベルと重大度レベルは、その 優先度と呼ばれます。デフォルトでは、メッセージの標準 Junos OS 形式には優先度情報は含まれません(構造化データ形式にはデフォルトで優先コードが含まれます)。ファイルまたはリモート宛先に送られる標準フォーマット・メッセージに優先順位情報を組み込むには、ステートメントを組み
explicit-priority
込みます。詳細については、「 システム ログ メッセージに優先度情報を含める」を参照してください。デフォルトでは、メッセージの標準 Junos OS 形式では、メッセージがログに記録された月、日付、時間、分、および秒が指定されます。標準形式のシステム ログ メッセージのタイムスタンプを変更して、年、ミリ秒、またはその両方を含めることができます。(構造化データ形式では、デフォルトで年とミリ秒を指定します。詳細については、「 年またはミリ秒をタイムスタンプに含める」を参照してください。
メッセージをリモート・マシンに誘導する場合は、メッセージに報告される IP アドレスをソースとして指定できます。また、Junos OS によって生成されたメッセージや、特定のスイッチで生成されたメッセージを簡単に分離できる機能を設定することもできます。詳細については、「 システム ログ メッセージをリモート マシンに転送する」を参照してください。
事前定義されたファシリティは関連メッセージをグループ化しますが、正規表現を使用して、ファイル、ユーザー端末、またはリモート宛先にログに記録されるファシリティからのメッセージをより正確に指定することもできます。詳細については、「 文字列と正規表現を使用してログに記録されるメッセージのセットを絞り込む」を参照してください。
コミット チェック中に、設定に関する traceoptions 警告(トレース ファイル サイズやトレース ファイル数が一致しないなど)は、コンソールに表示されません。ただし、これらの警告は、新しい設定がコミットされるとシステム ログ メッセージに記録されます。
Junos OS システム ログ設定ステートメント
システム メッセージをログに記録するようにスイッチを設定するには、階層レベルに syslog
ステートメントを [edit system]
含めます。
[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 システムは、コンポーネント デバイスで発生するイベントを監視し、これらのイベントに関するシステム ログ メッセージを設定されたすべての外部システム ログ メッセージ サーバー(ホスト)に配信します。コンポーネント デバイスには、Node デバイス、Interconnect デバイス、Director デバイス、バーチャル シャーシが含まれます。メッセージは、QFabric システム・データベースでのみ表示するために保管されます。メッセージを表示するには、コマンドを show log
発行します。
この例では、QFabric システムでシステム ログ メッセージを設定する方法について説明します。
要件
この例では、次のハードウェアおよびソフトウェア コンポーネントを使用します。
Junos OS リリース 12.2
QFabric システム
システム ログ メッセージ ホストとして構成できる外部サーバー
概要
システム ログ メッセージ イベントを生成するコンポーネント デバイスには、Node デバイス、Interconnect デバイス、Director デバイス、コントロール プレーン スイッチが含まれます。次の構成例には、QFabric システムのこれらのコンポーネントが含まれています。
Director グループ上で実行されている Director ソフトウェア
制御プレーン スイッチ
相互接続デバイス
複数ノード デバイス
設定
手順
CLI クイック設定
この例を迅速に設定するには、次のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致するために必要な詳細情報を変更してから、コマンドを階層レベルで [edit]
CLI にコピーアンドペーストします。
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 システムでは、syslog という名前 messages のファイルは、ファシリティレベルと重大度レベルと 100 MB の
any any
ファイル サイズで暗黙的に設定されます。したがって、設定でファイル名を指定することはできません。そのファイル 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 プロセスまたはソフトウェア ライブラリによって生成されたファイルに記録されたすべてのメッセージに使用されます。
ステートメントと共に and time-format
ステートメントのいずれかまたは両方をexplicit-priority
structured-data
含める場合、それらのステートメントは無視されます。これらのステートメントは、構造化データ形式ではなく、標準の Junos OS システム ログ形式に適用されます。
ログ ファイルのサイズ、番号、アーカイブのプロパティの指定
ログ ファイルのサイズが大きくなりすぎないように、デフォルトで Junos OS システム ロギング ユーティリティは、定義済みのサイズのファイルシーケンスにメッセージを書き込みます。シーケンス内のファイルは、現在メッセージが書き込まれるアクティブ・ファイルと区別するためにアーカイブ・ファイルと呼ばれます。デフォルトの最大サイズは、プラットフォーム タイプによって異なります。
EX シリーズ スイッチの場合、128 KB(キロバイト)
M シリーズ、MX シリーズ、T シリーズ ルーターの場合は 1 MB(MB)
TX マトリクスまたは TX マトリクス プラス ルーターの場合は 10 MB
QFX シリーズ用 1 MB
呼び出 logfile されたアクティブ・ログ・ファイルが最大サイズに達すると、ロギング・ユーティリティーはファイルをクローズし、圧縮し、圧縮アーカイブ・ファイルに名前を付けます logfile.0.gz。次に、ロギング ユーティリティが開き、という logfile名前の新しいアクティブ ファイルに書き込みます。このプロセスは、ファイルの回転とも呼ばれます。新しい logfile が設定された最大サイズに達すると、 logfile.0.gz 名前が変更され logfile.1.gz、新しい logfile ファイルが閉じられ、圧縮され、名前が変更されます logfile.0.gz。デフォルトでは、ロギング ユーティリティは、この方法で最大 10 個のアーカイブ ファイルを作成します。アーカイブ・ファイルの最大数に達し、アクティブ・ファイルのサイズが構成された最大サイズに達すると、最後のアーカイブ・ファイルの内容は現在のアクティブ・ファイルによって上書きされます。デフォルトでロギング ユーティリティを使用すると、ログ ファイルを読み取れるユーザーと Junos OS maintenance
権限をroot
持つユーザーも制限されます。
Junos OS は、ログ ファイル サイズを確認するための時間間隔を設定することで、システム ログ ファイルの回転頻度を設定する設定ステートメント log-rotate-frequency
を提供します。周波数は、1 分~59 分の値に設定できます。デフォルトの周波数は 15 分です。
ログの回転頻度を設定するには、ステートメントを log-rotate-frequency
階層レベルに [edit system syslog]
含めます。
各ファイルの archive
最大サイズ、作成されるアーカイブ・ファイルの数、およびログ・ファイルを読み取れるユーザーを変更するステートメントを組み込むことができます。
すべてのログ ファイルに適用される値を設定するには、階層レベルで archive
ステートメントを [edit system syslog]
含めます。
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
単位文字の間にはm
k
スペースがありません。
start-time "YYYY-MM-DD.hh:mm"
は、アクティブ・ログ・ファイルをステートメントで指定されたサイト・リスト内の最初の到達可能サイトに 1 回だけ転送するための、ローカル・タイム・ゾーン内の日付と時刻を 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;
構造化データ形式でログに記録されるメッセージには、デフォルトで優先度情報が含まれます。ステートメント[edit system syslog file filename]
をstructured-data
階層レベルに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 メッセージ |
|
|
実行されたアクションまたはcronプロセスで発生したエラー |
|
|
実行されたアクションまたはシステム プロセスで発生したエラー |
|
|
動的フロー キャプチャ プロセスで実行されたアクションまたはエラー |
|
|
ファイアウォール フィルターによって実行されるパケット フィルタリング アクション |
|
|
FTP プロセスで実行されたアクションまたはエラー |
|
|
Junos OS CLI プロンプトで発行されるコマンド、または Junos XML プロトコルや NETCONF クライアントなどのクライアント アプリケーションによって呼び出されたコマンド |
|
|
Junos カーネルが実行したアクションまたはエラー |
|
|
実行されたアクションまたは NTP(Network Time Protocol)で発生したエラー |
|
|
パケット転送エンジンが実行したアクションまたはエラー |
|
|
Junos システム ロギング ユーティリティによって実行されたアクションまたはエラー |
|
|
ユーザー空間プロセスによって実行されたアクションまたはエラー |
表 3 は、システム ログ メッセージに表示できる数値重大度コードをリストし、重大度レベルにマッピングします。
数値コード |
重大度レベル |
説明 |
---|---|---|
|
|
ルーターの動作停止を引き起こすシステムの動作を停止させるシステムの動作状況 |
|
|
システム データベースの破損など、即時修正が必要な条件 |
|
|
重大な条件(ハード エラーなど) |
|
|
一般的に、緊急時、アラート、重大レベルのエラーよりも深刻な結果が少ないエラー状態 |
|
|
監視が必要な条件 |
|
|
エラーではないが、特別な処理が必要な条件 |
|
|
イベントまたは関心のある非テロ状態 |
|
|
ソフトウェア デバッグ メッセージ(技術サポート担当者がこの重大度レベルの設定を指示した場合にのみ表示されます) |
タイムスタンプの年またはミリ秒を含む
デフォルトでは、標準フォーマットのシステム・ログ・メッセージに記録されたタイムスタンプは、次の例のように、メッセージがログに記録された月、日付、時、分、および秒を指定します。
Aug 21 12:36:30
年、ミリ秒、またはその両方をタイムスタンプに含めるには、ステートメントをtime-format
階層レベルまたは[edit security log]
階層レベルに[edit system syslog]
含めます。
[edit system syslog] time-format (year | millisecond | year millisecond);
ただし、traceoption メッセージのタイムスタンプはデフォルトでミリ秒で指定されており、ステートメントとは無関係 [edit system syslog time-format]
です。
変更されたタイムスタンプは、階層レベルで 、または user
ステートメントによってfile
console
設定された各宛先に送信されるメッセージで[edit system syslog]
使用されますが、ステートメントによってhost
設定された宛先には使用されません。
既定では、FreeBSD コンソールでは、ステートメントによって設定された各宛先に送信されるシステム ログ メッセージでは、追加の時間情報は host
使用できません。ただし、FreeBSD コンソールを使用した Junos OS 固有の実装では、各宛先に送られたシステム ログ メッセージに追加の時間情報が含まれます。
次の例は、ミリ秒(401)と年(2006)の両方を含むタイムスタンプの形式を示しています。
Aug 21 12:36:30.401 2006
構造化データ形式でログに記録されるメッセージには、デフォルトで年とミリ秒が含まれます。構造化データ・ステートメントをステートメントとtime-format
共に[edit system syslog file filename]
階層レベルに含める場合、ステートメントは無視され、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];
and match
ステートメントはmatch-strings
、指定されたストリングまたは正規表現に一致する構成済みファシリティと重大度を持つメッセージを選択します。ステートメントは match-strings
単純な文字列比較を実行します。その結果、ステートメントを使用して複雑な正規表現と一致させるよりも、CPU を集中的に使用 match
することが少なくなります。同じ宛先に対して and ステートメントのmatch
両方を設定した場合、Junos OS はまず条件をmatch-strings
評価します。メッセージに設定済みの部分文字列が含まれている場合、メッセージはログに記録されmatch
、条件は評価match-strings
されません。条件が match-strings
満たされない場合、システムは設定ステートメントの正規表現に対してメッセージを match
評価します。
ステートメントに正規表現 match
を指定する場合は、拡張 (最新) UNIX 正規表現に POSIX 標準 1003.2 で定義されている表記を使用します。正規表現の構文については本書の範囲を超えていますが、POSIX 規格は IEEE( http://www.ieee.org)から入手できます。
表 4 match ステートメントで使用できる一部の正規表現演算子によって照合される文字または文字を指定します。説明では、用語とは、単一の英数字、または角括弧、括弧、または中括弧で囲まれた一連の文字のいずれかを指します。
ステートメントでは match
、大文字と小文字は区別されません。
オペレーター | 一致 |
---|---|
.(期間) |
スペースを除く任意の文字の 1 つのインスタンス。 |
* (アスタリスク) |
直前の項の 0 個以上のインスタンス。 |
+(プラス記号) |
直前の用語の 1 つ以上のインスタンス。 |
?(疑問符) |
直前の項の 0 または 1 つのインスタンス。 |
|(パイプ) |
パイプ オペレータの両側に表示される用語の 1 つ。 |
!(感嘆符) |
感嘆符が式の開始時に表示される場合、式で指定された文字列を除く任意の文字列。感嘆符の使用は、Junos OS 固有です。 |
^ (キャレット) |
キャレットが角括弧の外側に現れる場合、行の始まり。 キャレットが角括弧内の最初の文字である場合、角括弧内の後に続かない任意の文字の1つのインスタンス。 |
$ (ドル記号) |
ラインの終わり。 |
[ ] (ペア角括弧) |
囲まれた英数字のいずれか 1 つのインスタンス。文字の範囲を指定するには、ハイフン ( - ) を使用して範囲の先頭文字と終了文字を分離します。たとえば、[a-z0-9] は任意の文字または数字と一致します。 |
( )(ペア括弧) |
囲まれた条件の評価値の 1 つのインスタンス。括弧は、正規表現における評価の順序を示すために使用されます。 |
文字列と正規表現の使用
ストリングconfigure
を含むメッセージを root ユーザーのinteractive-commands
端末に誘導する、ファシリティに属するメッセージをフィルターします。
[edit system syslog] user root { interactive-commands any; match-strings configure; }
ユーザーが設定モードに入るためにコマンドを root
発行 configure
すると、ユーザーの端末に次のようなメッセージが表示されます。
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; }
match ステートメントの Junos システム ログ正規表現演算子
オペレーター |
一致 |
---|---|
|
スペースを除く任意の文字の 1 つのインスタンス。 |
|
直前の項の 0 個以上のインスタンス。 |
|
直前の用語の 1 つ以上のインスタンス。 |
|
直前の項の 0 または 1 つのインスタンス。 |
|
パイプ オペレータの両側に表示される用語の 1 つ。 |
|
感嘆符が式の開始時に表示される場合、式で指定された文字列を除く任意の文字列。感嘆符の使用は Junos OS 固有です。 |
|
キャレットが角括弧の外側に現れる場合の行の始まり。 キャレットが角括弧内の最初の文字である場合、角括弧内の後に続かない任意の文字の1つのインスタンス。 |
|
ラインの終わり。 |
|
囲まれた英数字のいずれか 1 つのインスタンス。文字の範囲を示すためには、ハイフン( |
|
囲まれた条件の評価値の 1 つのインスタンス。括弧は、正規表現における評価の順序を示すために使用されます。 |
ファシリティのシステム ロギングの無効化
特定のファシリティに属するメッセージのロギングを無効にするには、ステートメントを facility none
設定に含めます。このステートメントは、たとえば、重大度レベルが同じで、少数の機能を含むすべてに属するメッセージをログに記録する場合に役立ちます。ログに記録する各ファシリティのステートメントを含める代わりに、そのステートメントとfacility none
、ログにany severity
記録しない各ファシリティのステートメントを含めることができます。例えば、以下の例では、および機能からのメッセージをerror
除き、レベル以上のすべてのメッセージをコンソールにkernel
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
— ユーザーが設定モード コマンドrollback
を発行したときにメッセージをログに記録しますcommit
。この例では、ユーザーphilip
の端末にメッセージを書き込みます。warning
— ユーザーがソフトウェア プロセスを再起動するコマンドを発行したときにメッセージをログに記録します。この例では、メッセージをコンソールに書き込みます。[edit system] syslog { file user-actions { interactive-commands info; } user philip { interactive-commands notice; } console { interactive-commands warning; } }
例:代替ファシリティの割り当て
ローカル ルーティング プラットフォームで生成されたすべてのメッセージをエラー レベル以上でリモート マシンmonitor.mycompany.com
上のlocal0
ファシリティにログ記録します。
[edit system syslog] host monitor.mycompany.com { any error; facility-override local0; }
カリフォルニア州にあるルーティング プラットフォームとニューヨークにあるルーティング プラットフォームを設定して、メッセージを 1 台のリモート マシンに送信します 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
new-york-config
にメッセージをlocal2
書き込むことができます。