목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

구성

다음을 확인합니다.

스크립트 예약

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 <스크립트 파일> <프로세스 이름>

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

메모리가 지정된 임계값을 넘는 즉시 스크립트를 사용하여 프로세스를 종료하는 방법을 보여 주는 또 다른 예가 있습니다.

스크립트는 프로세스 이름 및 메모리 크기 두 개의 입력을 거쳐 프로세스가 종료됩니다.

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%

문제 해결

현재 이 컨피그레이션에 사용할 수 있는 특정 문제 해결 정보가 없습니다.