목차

소개

EEM이란 무엇입니까?

EEM은 언제 사용해야 합니까?

샘플 EEM 스크립트

30초마다 명령을 실행하여 Flash에서 파일 생성

Watchdog를 사용하여 FTP 서버 또는 플래시에 X초마다 라우터 로그 덤프

라우터 부팅 시 디버깅 활성화

특정 메시지 후 디버깅 사용 안 함

문제 해결

VPN 문제 해결

높은 CPU 사용률 문제 해결

관련 정보

소개

이 문서에서는 EEM(Embedded Event Manager) 툴을 사용하여 포인트를 고정하기 어렵거나 일반적인 문제 해결을 허용하는 정기적인 빈도가 없는 네트워크의 문제를 해결하는 방법에 대해 설명합니다.

EEM이란 무엇입니까?

EEM은 Cisco IOS®, XR 및 NX-OS를 사용자 지정할 수 있도록 설계된 유연한 시스템입니다.EEM을 사용하면 작업을 자동화하고, 간단한 개선 사항을 수행하고, 해결 방법을 만들 수 있습니다.

EEM은 언제 사용해야 합니까?

EEM 스크립트에는 두 가지 목적이 있습니다.

- 문제 해결 지원 - 간헐적인 특성의 문제를 해결해야 하는 경우 EEM 스크립트가 특히 유용할 수 있습니다.이를 통해 show 명령 출력 및 debug 명령의 수집 프로세스를 자동화할 수 있습니다. 그러면 수집하기 매우 어려운 데이터를 캡처할 수 있습니다.

- 솔루션 제공 - 일시적인 해결 방법이 필요한 경우 TAC(Technical Assistance Center)에서 근본 원인 분석을 수행합니다.예를 들어 문제가 간헐적으로 발생하지만 인터페이스를 재설정하면 문제가 해결됩니다.EEM 스크립트를 사용하여 문제가 시작되는 즉시 이 작업을 트리거할 수 있습니다.

두 경우 모두 EEM 스크립트를 사용하려면 스크립트를 트리거하는 데 사용할 수 있는 트리거 이벤트를 식별해야 합니다.

샘플 EEM 스크립트

이 섹션에서는 문제 해결을 지원하는 샘플 EEM 스크립트를 제공합니다.

30초마다 명령을 실행하여 Flash에서 파일 생성

플래시의 파일에 대해 30초마다 명령을 실행합니다.show 명령은 실행할 명령에 따라 조정할 수 있습니다.

event manager applet show-rtp-streams

event timer watchdog name timer time 30

action 0.5 cli command "enable"

action 1.0 cli command "show clock | append flash:filename.txt"

action 2.0 cli command "show ip cache flow | append flash:filename.txt"

action 3.0 cli command "show voip rtp conn" | append flash:filename.txt"

action 4.0 cli command "show call active voice br" | append flash:filename.txt"

참고:일부 플래시 파일 시스템(예: bootflash 또는 slotX)은 추가 작업을 지원하지 않습니다.이는 EEM 제한이 아니라 선형 플래시 파일 시스템의 제한입니다.데스크톱 스위치(3560, 3750 등)의 diskX 또는 플래시와 같은 임의 액세스 파일 시스템은 파일에 추가하는 것을 지원합니다.

참고:디바이스가 AAA(Authentication, Authorization, and Accounting) 명령 권한 부여를 위해 구성된 경우 구성된 모든 EEM 정책에서 모든 CLI 명령을 실행할 권한이 있는 사용자 이름으로 EEM을 구성해야 합니다.  이렇게 하려면 이벤트 관리자 세션 cli 사용자 이름 USER를 입력합니다. 여기서 USER는 적절한 AAA 사용자입니다.

Watchdog를 사용하여 FTP 서버 또는 플래시에 X초마다 라우터 로그 덤프

마찬가지로 X초마다 FTP 서버 또는 플래시에 라우터 로그를 덤프하기 위해 watchdog를 사용할 수 있습니다.

event manager applet dump-log

event timer watchdog name timer time 1800

action 0.5 cli command "enable"

action 1.0 cli command "show log | append ftp://user:pass@10.1.1.1/debugs.txt"

Cronjob 내의 UNIX 디바이스에서 Expect 스크립트를 사용하여 X분마다 로그를 가져올 수도 있습니다.EEM을 사용하는 대신사용자 이름과 비밀번호를 로그인 자격 증명에 적합한 문자열로 바꿉니다.

> dhcp-64-102-154-159:Desktop sholl$ cat login-script

> #!/usr/bin/expect

>

> set timeout 60

> spawn telnet -N 10.1.1.1

>

> # Uncomment these if you are prompted for a username by the router

> # expect "login:"

> # send "username\n"

> expect "Password: "

> send "password\n"

> expect ">"

> send "en\n"

> expect "Password:"

> send "password\n"

> expect "#"

> send "term len 0\n"

> expect "#"

> send "sh log\n"

> expect "#"

> send "exit\n"

> send "exit\n"

>

> dhcp-64-102-154-159:Desktop sholl$ crontab -e

>

> # min   hour    mday    month   wday    command

>    0     4       0        0       0     Desktop/login-script >> outputlog.txt

라우터 부팅 시 디버깅 활성화

라우터 부팅 시 디버깅을 활성화합니다.디버깅을 활성화할 것으로 변경합니다.

event manager applet en-debugs-at-boot

event timer cron cron-entry "@reboot"

action 1.0 cli command "enable"

action 2.0 cli command "debug isdn q931"

action 2.2 cli command "debug isdn q921"

action 2.4 cli command "debug isdn standard"

특정 메시지 후 디버깅 사용 안 함

특정 디버그 메시지가 감지된 후 디버깅을 비활성화하여 로그가 가득 차는 것을 방지합니다.나중에 EEM 스크립트(자체)를 비활성화합니다.패턴을 상황에 맞는 것으로 변경합니다.

event manager applet disableDebugsOnError

event syslog occurs 1 pattern "Endpt not available"

action 3.0 cli command "enable"

action 3.2 cli command "un all"

action 3.3 cli command "config t"

action 3.4 cli command "no event manager applet disableDebugsOnError"

action 3.5 cli command "end"

문제 해결

VPN 문제 해결

대부분의 VPN 문제는 일반적으로 문제를 해결하기 위해 EEM이 필요하지 않지만, 경우에 따라 일시적인 문제로 인해 필요한 정보를 얻기 어려울 수 있습니다.관련 사례:

- VPN을 통한 IGP 플랩/중단 문제 해결을 위해 EEM 활용

- 유효하지 않은 보안 매개변수 인덱스로 인한 터널 플랩 트러블슈팅에 사용되는 EEM 스크립트

- Syslog "%CRYPTO-4-RECVD_PKT_MAC_ERR:" IPsec 터널을 통한 Ping 손실과 관련된 오류 메시지 문제 해결

높은 CPU 사용률 문제 해결

일반적으로 CPU 사용률이 매우 짧은 시간 동안 그리고 확실하지 않은 시간 동안 급증하는 것으로 나타났습니다.따라서 CPU 사용률이 높을 때 실행해야 하는 명령을 실행하는 것이 매우 어려워집니다. 이 경우 EEM 스크립트가 매우 유용할 수 있습니다.트리거될 CPU 값을 설정하고 명령 출력을 가져옵니다.

다음은 예제 스크립트이며 요구 사항에 맞게 사용자 정의되어야 합니다.

event manager applet capture_cpu_spike

event snmp oid 1.3.6.1.4.1.9.2.1.56 get-type next entry-op ge entry-val 60

exit-time 10 poll-interval 1

action 001 syslog msg "CPU Utilization is high"

action 002 cli command "en"

action 003 cli command "show proc cpu sort | append flash:cpuinfo"

action 004 cli command "show proc cpu sort | append flash:cpuinfo"

action 005 cli command "show stack 236 | append flash:cpuinfo"

action 006 cli command "show call active voice brief | append flash:cpuinfo"

action 007 cli command "show voip rtp connection | append flash:cpuinfo"

action 008 cli command "show isdn call-rate | append flash:cpuinfo"

action 009 cli command "show log | append flash:cpuinfo"

action 010 cli command "show mem stat his | append flash:cpuinfo"

action 011 cli command "show proc cpu his | append flash:cpuinfo"

action 012 cli command "show align | append flash:cpuinfo"

위 스크립트는 CPU 사용률을 탐지하고 명령을 실행할 뿐만 아니라 출력을 플래시에 추가합니다.원하는 위치에 상관없이 사용할 수 있습니다.CPU 사용률이 60%를 초과할 때 트리거됩니다.이는 요구 사항에 따라 맞춤화되어야 합니다.그러나 스크립트를 배포하기 전에 파일 시스템 여유 공간을 고려하려면 주의해야 합니다.

관련 정보

- Cisco IOS Network Management 명령 참조

- Cisco Support Community - EEM 스크립팅

- 기술 지원 및 문서 − Cisco Systems