понедельник, 23 июня 2008 г.

Как отреагировать на событие?

Введение

Часто возникает необходимость узнавать о том, что происходит какое-то событие в нашей операционной системе. Конечно, в нашем распоряжении есть журнал событий, и в нем регистрируется масса событий, таких как вход/выход пользователя в систему, старт или перезапуск системы и много, МНОГО, других событий. Часто эти события носят чисто информативный характер, но иногда они предупреждают нас о возможных проблемах, а в некоторых случаях явно указывают на ошибку.
Хорошей практикой является, по крайней мере, раз в день просматривать журнал событий, но не все это делают, да и не всегда есть возможность. Конечно есть такие утилиты как Microsoft Operations Manager, но они требуют вложений и обучения персонала, что не всегда подходят для малого бизнеса.
Как показала практика, многим администраторам хочется узнавать о возникновении какого либо события по факту его возникновения и желательно методом оповещения, например, по средствам электронной почты. И как, опять же, показывает практика, не все знают, как это реализовать, а видь Windows содержит встроенное средство.
В данной статье речь пойдет о утилите командной строки eventtriggers.exe. Данная утилита находится в C:\WINDOWS\system32 и идет в стандартной поставке операционной системы Windows XP/2003.

Как работает Eventtriggers.exe?

Утилита создает триггер, который будет отслеживать появления события в журнале и выполнять указанное действие. Например, при появлении события с номер 528, в журнале событий безопасности, выполнять скрипт, который отправит письмо на почтовый ящик администратора.

Приступая к работе...
Что бы начать работать с утилитой eventtriggers.exe откройте консоль командной строки и наберите eventtriggers. Вы увидите надпись «INFO: No event triggers found» если в вашей системе не создано триггеров или вы увидите список уже созданных триггеров, как показано на рисунке ниже.
Тоже самое можно увидеть если набрать «eventtriggers /query». Помимо этого существует еще два ключа так называемого «верхнего уровня». Это /Create и /Delete которые создают и удаляют тригера.

Дополнительную информацию по ключам утилиты можно получить набрав «eventtriggers /?» или пройдя по следующей ссылке http://technet.microsoft.com/en-us/library/bb490901(TechNet.10).aspx

Узнать больше о событиях Windows вам поможет следующий раздел сайта Microsoft:
http://www.microsoft.com/technet/support/ee/ee_advanced.aspx

В ближайшее время я более подробно опишу утилиту eventtriggers.exe и приведу несколько практических примеров использования.

4 комментария:

  1. а в windows 7 есть аналог этой утилиты?

    ОтветитьУдалить
  2. где примеры?

    ОтветитьУдалить
  3. Например создаете такой файл reboot.bat:
    ---------------------
    @echo off
    php -r "mail('your@mail', 'Server reboot', 'Server was going to the reboot by EventID %1');"
    :reboot
    echo trying reboot
    shutdown -r -c "Reboot by EventID %1" -f
    ping localhost -n 10 >nul
    goto reboot
    --------------
    А потом добавляете триггер:
    eventtriggers /create /tr "Reboot by EventID 2019" /l "System" /eid 2019 /t "ERROR" /d "some descriptions for you" /tk "c:\reboot.bat 2019"
    Осталось только заметить, что EventID 2019 имеет следующее описание:
    The server was unable to allocate from the system nonpaged pool because the pool was empty.
    И если не произвести перезагрузку, то сервер после десятка подобных сообщений попросту уйдет в коллапс, пока на нем не нажмут кнопку Reset.

    ОтветитьУдалить