概要
このドキュメントでは、組み込みのPython CLIモジュールを使用してCPUとメモリを監視し、syslog通知をスケジュールする方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Nexus 3000 - 7.0(3)I4(7)
- Nexus 9000 - 7.0(3)I7(1)
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
設定
この例では、CPUとメモリのプロセスPTPを監視します。
設定を確認します。
feature ptp
feature scheduler
Pythonスクリプトは、デバイスで実行されている特定のプロセスのCPUとメモリを監視するために使用されます。
import cisco
import sys
from cli import *
def main(process):
mem = ""
cpu = ""
ptp_cpu = cli('sh proc cpu | i '+process)
ptp_mem = cli('sh proc mem | i '+process)
if ptp_cpu:
csplit = ptp_cpu.split()
cpu = csplit[4]
if ptp_mem:
msplit = ptp_mem.split()
mem = msplit[3]
cli('syslog priority notifications msg for '+process+' mem: '+mem +' and cpu ' + cpu)
return
if __name__ == "__main__":
main(sys.argv[1])
ファイルにptp_alert_mem_cpu.pyと名前を付けて保存します。
確認
ここでは、設定が正常に機能しているかどうかを確認します。
CLIからファイルを実行します。
スクリプトを実行する構文:
python <script file> <process name>
Nexus# python bootflash:ptp_alert_mem_cpu.py ptp
Nexus# show logg last 5
2018 Dec 13 10:59:30 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.28744
2018 Dec 13 11:02:30 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.28867
2018 Dec 13 11:03:37 Nexus %EEM_ACTION-5-NOTIF: for ptp mem: 649089024 and cpu 0.00%
次に示すように、このsyslogアラートはPTPプロセスでトリガーされ、CPUとメモリの使用率が含まれます。
Nexus CLIから同じ出力が表示されます。
Nexus(config-schedule)# show proc cpu | i ptp
21037 233 4586 50 0.00% ptp
Nexus(config-schedule)# show proc mem | i ptp
21037 4669440 1018201484649089024 fff201d0/fff1e65c ptp
次に、メモリが指定されたしきい値を超えるとすぐにプロセスを強制終了するためにスクリプトが使用される例を示します。
このスクリプトは、プロセス名とメモリ・サイズの2つの入力を受け取り、その後にプロセスが強制終了されます。
Nexus# python bootflash:Check_mem_kill_process.py ptp 23423
Nexus# show logg last 5
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %EEM_ACTION-5-NOTIF: Killing ptp mem: 691027968
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %VSHD-5-VSHD_SYSLOG_CMD_EXEC: User:admin executed the command:run bash
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %SYSMGR-2-SERVICE_CRASHED: Service "ptp" (PID 29107) hasn't caught signal 6 (core will be saved).
スクリプトのスケジュール
EEMの使用
このEEMスクリプトは1分ごとにトリガーされ、syslogメッセージが生成されます。
Nexus(config)# event manager applet mem_cpu
Nexus(config-applet)# event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6.1 get-type exact entry-op le entry-val 12345 poll-interval 60
Nexus(config-applet)# action 1.0 syslog priority notifications msg Running_mem_cpu_script
Nexus(config-applet)# action 2.0 cli command python bootflash:ptp_alert_mem_cpu.py ptp
Nexus(config-schedule)# show event manager policy internal mem_cpu
Name : mem_cpu
Policy Type : applet
Event Specification : event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6.1 get-type exact entry-op le entry-val 12345 poll-interval 60
Action : 1.0,sup:syslog priority notifications msg Running_mem_cpu_script;2.0,vsh,sup:command python bootflash:ptp_alert_mem_cpu.py
Event Specification active on : Active
スケジューラの使用
このスケジューラジョブは1分ごとにトリガーされ、syslogメッセージが生成されます。
Nexus(config)# feature scheduler
Nexus(config)# scheduler job name ptp
Nexus(config-job)# python bootflash:ptp_alert_mem_cpu.py ptp
Nexus(config-job)# exit
Nexus(config)# scheduler schedule name ptp
Nexus(config-schedule)# job name ptp
Nexus(config-schedule)# time start now repeat 0:0:1
Schedule starts from Thu Dec 13 11:21:13 2018
Nexus(config-schedule)# show scheduler schedule
Schedule Name : ptp
-------------------------
User Name : admin
Schedule Type : Run every 0 Days 0 Hrs 1 Mins
Start Time : Thu Dec 13 11:21:13 2018
Last Execution Time : Thu Dec 13 11:21:13 2018
Last Completion Time: Thu Dec 13 11:21:17 2018
Execution count : 1
-----------------------------------------------
Job Name Last Execution Status
-----------------------------------------------
ptp Success (0)
Nexus(config-schedule)# sh logg last 5
2018 Dec 13 11:20:19 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.29770
2018 Dec 13 11:20:31 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.29777
2018 Dec 13 11:21:17 Nexus %EEM_ACTION-5-NOTIF: for ptp mem: 649089024 and cpu 0.00%
トラブルシュート
現在、この設定に関する特定のトラブルシューティング情報はありません。