内容

概要

前提条件

要件

使用するコンポーネント

設定

確認

スクリプトのスケジュール

EEMの使用

スケジューラの使用

トラブルシュート

概要

このドキュメントでは、組み込みのPython CLIモジュールを使用してCPUとメモリを監視し、syslog通知をスケジュールする方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- 組み込みイベント マネージャ

- Nexusスケジューラ

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- 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%

トラブルシュート

現在、この設定に関する特定のトラブルシューティング情報はありません。