Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:カスタムシステムログメッセージの生成

Junos OS コミットスクリプトは、コミット操作中にカスタムシステムログメッセージを生成し、設定がカスタム設定ルールに準拠していない場合に警告することができます。コミットプロセスは、システムログメッセージの生成による影響を受けません。この例では、特定のステートメントがデバイスコンフィギュレーションに含まれていない場合に、カスタムシステムログメッセージを生成するコミットスクリプトを作成します。

必要条件

Junos OS リリース 16.1R3 以降(Python スクリプトを使用する場合)

概要とコミット スクリプト

コミットスクリプトを使用して、 read-write ステートメントが [edit snmp community community-name authorization] 階層レベルに含まれていない場合に表示されるカスタムシステムログメッセージを書き込みます。

スクリプトは、XSLT、SLAX、および Python で表示されます。

XSLT 構文

SLAX 構文

Python 構文

構成

プロシージャ

手順

スクリプトをダウンロードして有効にし、テストします。コミットスクリプトがシステムログメッセージを正しく生成することをテストするには、システムログメッセージを出力する条件が候補コンフィギュレーションに含まれていることを確認します。この例では、 read-write ステートメントが [edit snmp community community-name authorization] 階層レベルに含まれていないことを確認します。

このトピックの例をテストするには、次のようにします。

  1. スクリプトをテキストファイルにコピーし、必要に応じて read-write.xslread-write.slax、または read-write.py という名前を付けて、デバイスの /var/db/scripts/commit/ ディレクトリにコピーします。

    手記:

    署名されていないPythonスクリプトは、rootまたはJunos OS super-user ログインクラスのユーザーによって所有されている必要があり、ファイル所有者のみがファイルへの書き込み権限を持つことができます。

  2. 設定モードで、[edit system scripts commit]階層レベルでfileステートメントとスクリプトファイル名を設定します。

  3. スクリプトが Python で記述されている場合は、署名されていない Python スクリプトの実行を有効にします。

    手記:

    Python 3 を使用して Python スクリプトを実行するように language python3 ステートメントを設定するか、Python 2.7 を使用して Python スクリプトを実行するように language python ステートメントを設定します。詳細については、「 言語」を参照してください。

  4. (オプション)条件をテストするために、 read-write ステートメントがすべてのコミュニティの [edit snmp community community-name authorization] 階層レベルに含まれている場合、既存のSNMPコミュニティの認証を一時的に削除します。

  5. 次のコマンドを発行して、システム ロギングがファイルに書き込むように構成されていることを確認します(一般的に使用されるファイル名は messages です)。

    システムログ設定の詳細については、 システムログエクスプローラを参照してください。

  6. commit コマンドを発行して、設定をコミットします。

検証

スクリプトの実行の検証

目的

コミットスクリプトによって生成されたシステムログメッセージを確認します。

手記:

システムログメッセージは、Python、SLAX、および XSLT スクリプトのコミット操作中に生成されますが、Python スクリプトのコミットチェック操作中にのみ生成されます。つまり、 commit check | display xml または commit check | display detail 設定モードコマンドを使用して、SLAX および XSLT スクリプトのシステム ログ メッセージの出力を確認することはできません。

アクション

コミット操作が完了したら、システムログファイルを調べます。ログファイルのデフォルトディレクトリは /var/log/ です。 show log filename 運用モードコマンドを発行して、ログファイルを表示します。例えば、メッセージが メッセージ ・ファイルに記録されている場合は、次のコマンドを発行します。

コミットスクリプトによって生成されるシステムログエントリーの形式は、次のとおりです。

read-write ステートメントは [edit snmp community community-name authorization] 階層レベルに含まれていないため、コミット スクリプトはシステム ログ ファイルに「SNMP community does not have read-write access」メッセージを生成するはずです。