Автоматический сбор статистики утилизации CPU с помощью Cisco EEM

В работе сетевого инженера возникают ситуации, когда требуется собрать статистику по событию, которое происходит не систематически и непрогнозируемо. Например неожиданно подскакивает загрузка процессора устройства, произойти это может когда угодно, например ночью, когда вас нет на работе. Потребуется сбор статистики, для того, что бы установить причину возникновения этого события. У Cisco есть для этого штатное средство Embedded Event Manager.

Сразу оговорюсь, данный пример мной на практике не использовался. Механизм показался мне полезным, пример, приведенный ниже взят из презентации инженера TAC Cisco.

Так же стоит отметить, что функционал EEM зависит от версии как самого мэнеджера так и версии IOS и лицензии ПО, на некоторых версиях он вовсе не доступен. Подробнее об этом на сайте Cisco:

Доступность функционала по обнаружению событий (event detectors) в различных версиях IOS

Доступность действий EEM в различных версиях IOS

Посмотреть версию EEM и его компонентов можно с помощью команды show event manager version:

switch#show event manager version
Embedded Event Manager Version 4.00
Component Versions:
eem: (rel8)1.1.3
eem-gold: (rel1)1.0.2
eem-call-home: (rel2)1.0.4
Event Detectors:
Name Version Node Type
application 01.00 node0/0 RP
identity 01.00 node0/0 RP
mat 01.00 node0/0 RP
neighbor-discovery 01.00 node0/0 RP
rf 01.00 node0/0 RP
msp 03.00 node0/0 RP
routing 03.00 node0/0 RP
generic 01.00 node0/0 RP
syslog 01.00 node0/0 RP
cli 01.00 node0/0 RP
counter 01.00 node0/0 RP
interface 01.00 node0/0 RP
ioswdsysmon 01.00 node0/0 RP
none 01.00 node0/0 RP
oir 01.00 node0/0 RP
snmp 01.00 node0/0 RP
timer 01.00 node0/0 RP
snmp-object 01.00 node0/0 RP
snmp-notification 01.00 node0/0 RP
ipsla 01.00 node0/0 RP
nf 01.00 node0/0 RP
test 01.00 node0/0 RP
config 01.00 node0/0 RP
env 01.00 node0/0 RP
ds 01.00 node0/0 RP
crash 01.00 node0/0 RP
gold 01.00 node0/0 RP
rpc 01.00 node0/0 RP

EEM (Embedded Event Manager) — встроенный компонент Cisco IOS, XE, XR и NX-OS, который позволяет отслеживать и классифицировать события, которые происходят на устройствах, а так же обеспечивать уведомления для этих событий.



Детекторы событий EEM:

  • SNMP — мониторинг событий SNMP
  • Syslog — реагирует на появление различных сообщений syslog, при этом можно использовать регулярные выражения для поиска совпадений.
  • Counter — мониторит и реагирует на превышение значений счетчиков на интерфейсах.
  • События CLI — отслеживается CLI ввод с помощью регулярных выражений.
  • None — этот детектор событий используется для тестирования скриптов EEM с помощью команды «event manager run«.
  • Timers (таймеры) — (Countdown, watchdog и CRON)
  • События IP SLA и Netflow

Действия EEM:

  • Отсылает сообщения email
  • Выполняет команды Cisco
  • Генерирует SNMP trap
  • Перезагружает устройство
  • Генерирует приоритетные сообщения syslog
  • Переключается на резервный модуль в системах с избыточностью и отказоустойчивостью
  • При наступлении события запрашивает системную информацию (show tech, show proccess cpu history и т.д.)

Ну и наконец привожу пример использования Embedded Event Manager для автоматического сбора статистики:

  1. создаем событие EEM:
    switch(config)#event manager applet capture_cpu
  2. Указываем чем определяется событие.
    switch(config-applet)#event snmp oid 1.3.6.1.4.1.9.2.1.56 get-type next entry-op ge entry-val 80 exit-time 180 poll-interval 30

    в данном случае условие выполняется, если значение указанного OID snmp больше или равно 80 в течении 180 секунд (интервал опроса 30 секунд)

  3. Действия которые будут выполняться если событие произойдет, по порядку
    switch(config-applet)#action 1.01 cli command "enable"
    switch(config-applet)#action 1.02 syslog msg "TEST IN PROGRESS FOR CPU 80%"
    switch(config-applet)#action 1.03 cli command "show clock | append bootflash:cpuinfo.log"
    switch(config-applet)#action 1.04 cli command "show platform software status control-pocessor br | append bootflash:cpuinfo.log"
    switch(config-applet)#action 1.05 cli command "show process cpu sorted | append bootflash:cpuinfo.log"
    

Для удаления события требуется выполнить команду no event manager applet [имя события]

switch(config)#no event manager applet capture_cpu

Полезные ссылки:

Статья на Cisco про использование сценариев EEM для мониторинга высокой загрузки ЦП на коммутаторах серии Cisco Catalyst

Статья на Cisco про сбор данных о утилизации ЦП по SNMP на устройствах под управлением IOS

Статья на Cisco про траблшутинг высокой утилизации ЦП

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *