Junos OS Evolvedを実行しているデバイスでのスクリプト処理のトレース
インタラクティブ・スクリプトを実行すると、CLIまたはRPCの返信で、警告やエラーなどの出力を生成できます。イベント ポリシーがイベント スクリプトをトリガーする場合など、システムがインタラクティブでないスクリプトをトリガーする場合、スクリプトはターミナルに出力を指示しません。いずれの場合も、スクリプトの実行に関する詳細な情報が必要になる場合があります。Junos OS Evolvedは、デフォルトですべてのアプリケーションのトレース データをキャプチャします。メモリと CPU の使用率、スクリプトの引数、スクリプトの実行、警告やエラーなど、追加のスクリプト処理情報の収集されたトレースを表示できます。
Junos OS Evolvedは、ルーティング エンジン上のすべてのノード上のすべてのアプリケーションからトレース データを収集します。Junos OS はスクリプトの種類ごとにトレース データを別々のログ ファイルに記録しますが、Junos OS Evolvedすべてのスクリプトのトレース データは同じ場所に保存されます。トレース ログには、コミット、イベント、op、SNMP スクリプトのデータが含まれています。YANGアクションと翻訳スクリプト。Juniper Extension Toolkit スクリプトをダウンロードできます。
スクリプトのトレース データを表示する方法
Junos OS Evolvedは、プライマリ ルーティング エンジンで収集されたすべてのノードから /var/log/trace ディレクトリにトレース データを保存します。アプリケーションはcscript
スクリプトを処理し、スクリプトのトレース データは .cscript.sequence-number サブディレクトリにnode格納されます。
スクリプトのトレース データを表示するには、 動作モード コマンドを show trace application cscript
発行します。
user@host> show trace application cscript 2021-05-20 09:11:42.239695672 re0:cscript:4176:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-20 09:11:42.239773157 re0:cscript:4176:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's limits are already set by parent process" 2021-05-20 09:11:42.239812430 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "op script processing begins" 2021-05-20 09:11:42.239855140 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /usr/libexec/ui/cscript" 2021-05-20 09:11:42.239865140 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -mop" 2021-05-20 09:11:42.239866196 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -p" 2021-05-20 09:11:42.239867156 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /" 2021-05-20 09:11:42.239868116 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -Q2" 2021-05-20 09:11:42.239869131 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -f" 2021-05-20 09:11:42.239882048 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: hello.py" 2021-05-20 09:11:42.239883202 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -d134217728" 2021-05-20 09:11:42.239884135 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -E" 2021-05-20 09:11:42.239885131 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: user admin logname admin host host tty /dev/pts/0 agent op-script current-directory /var/home/admin pid 32212 ppid 32206" 2021-05-20 09:11:42.239886175 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -u" 2021-05-20 09:11:42.239887176 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: admin" 2021-05-20 09:11:42.239888251 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -U" 2021-05-20 09:11:42.239889287 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -i9" 2021-05-20 09:11:42.245988806 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "running op script 'hello.py'" 2021-05-20 09:11:42.246006519 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "opening op script '/var/db/scripts/op/hello.py'" ...
タイムスタンプとメッセージのみを表示する オプションを含 terse
めることができます。
user@host> show trace application cscript terse 2021-05-20 09:11:42.239695672 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-20 09:11:42.239773157 msg = "Process's limits are already set by parent process" 2021-05-20 09:11:42.239812430 msg = "op script processing begins" ...
また、トレース時間の経過、プロセス ID、およびノードを指定することで、トレースを表示するように改良することもできます。例えば、以下のコマンドは、特定のプロセス ID のトレース・データを示しています。
user@host> show trace application cscript pid 10683 2021-05-24 09:42:09.552687492 re0:cscript:10683:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-24 09:42:09.552819712 re0:cscript:10683:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's limits are already set by parent process" 2021-05-24 09:42:09.552897412 re0:cscript:10683:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "action script processing begins" 2021-05-24 09:42:09.553025992 re0:cscript:10683:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /usr/libexec/ui/cscript" 2021-05-24 09:42:09.553095062 re0:cscript:10683:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -maction" ...
スクリプトのトレース設定を変更する方法
Junos OS Evolvedデフォルトでスクリプト処理をトレースし、すべてのアプリケーションを情報レベルで追跡して情報メッセージを受信します。階層レベルで特定のアプリケーションのトレース設定を [edit system application]
構成できます。例えば、特定のノード上のアプリケーションのトレース・レベルを指定することができます。
スクリプトのトレース操作を変更するには、 階層レベルで設定を [edit system trace application cscript]
構成します。次の例では、 cscript
デバッグ レベルのノード re0 でスクリプト処理をトレースするようにアプリケーションを構成します。
[edit] user@host# set system trace application cscript node re0 level debug user@host# commit
トレース設定の詳細については、 トレースを参照してください。