С появлением Windows
2008 у системных администраторов появилась более удобная возможность
использовать штатный функционал операционной системы для выполнения задач по
мониторингу за работой системы. И пусть это не отменяет потребности крупных
инфраструктур в полноценных системах мониторинга, но для небольших компаний
может стать неплохим подспорьем для системных администраторов. Об одной из
таких функций, отправкой электронного сообщения на указанный e-mail, поговорим ниже.
Функция отправки сообщения по событию безусловно удобна, но
параметрах настройки данного типа уведомлений в явном виде нет возможности
отправить сам текст события, и за подробностями необходимо обращаться
непосредственно к самому журналу событий. В зависимости от того, в какой
консоли выполняется настройка окно с параметрами отправки электронного
сообщения может выглядеть так:
Или так:
Как видно выбор параметров не очень велик.
И все-таки, как быть, если хочется получить как можно больше
информации вместе с оповещением?
Для это можно воспользоваться двумя способами.
Способ №1
Для начала создаем нужное нам задание, которое привязываем к
событию, появлением которого нам нужно отслеживать.
После этого Экспортируем данное задание в xml. После чего само задание удаляем из
консоли заданий по расписанию.
После этого переходим в папку, куда было сохранено задание в
формате .xml и
открываем полученный файл для редактирования любым удобным редактором.
Нам необходимо найти тег <EventTrigger>, после
которого нужно вставить блок <ValueQueries> с параметрами из нужного нам события. Параметры эти
можно увидеть открыв событие в режиме XML
Это блок выглядит примерно так:
<ValueQueries><Value name ="EventComp">Event/System/Computer</Value></ValueQueries>
Или, например
<ValueQueries><Value name ="EventObject">Event/EventData/Data[@Name='ObjectName']</Value></ValueQueries>
Можно добавить несколько переменных сразу:
<ValueQueries>
<Value name ="EventComp">Event/System/Computer</Value><Value name ="EventObject">Event/EventData/Data[@Name='ObjectName']</Value></ValueQueries>
Затем в тело письма нужно добавить вывод переменных,
указанных в блоке <ValueQueries>.
Сделать это можно через GUI консоли заданий по расписанию, или же отредактировав соответствующий
блок того же xml-файла
(Task /Actions/SendEmail/Body).
Переменные вставляются в формате $(ValueName), в нашем случае это будет $(EventComp) и $(EventObject)
<Body>$(EventComp), $(EventObject)</Body>или
После этого сохраняем полученный файл XML и импортируем его в консоли заданий
по расписанию.
Способ №2
Попробуем прикрепить к письму данные из журнала событий. В этом нам поможет утилита wevtutil, позволяющая выгрузить из журналов Windows информацию о любом событии. Так, чтобы получить данные о последнем событии с кодом 4659 из журнала Security, нужно выполнить:
wevtutil qe Security /q:"*[System[(EventID=4659)]]" /f:text /rd:true /c:1
Создадим скрипт (GetEventTxt.cmd) из двух строчек: первая удаляет старый файл с логом, вторая – выгружает из журнала последнее событие и сохраняет его в файл лога:
del "C:\Temp\Event.txt"
wevtutil qe Security /q:"*[System[(EventID=4659)]]" /f:text /rd:true /c:1 > "C:\Temp\Event.txt"
Осталось еще раз открыть настройки созданного ранее триггера в журнале планировщика задач. На вкладке Actions добавим новое действие – запуск скрипта GetEventTxt.cmd. Затем нужно изменить порядок выполнения действий, перенесем его вверх списка с помощью стрелок справа (скрипт должен выполняться первым).
Далее отредактируем второе действие – отправку электронного письма, выбрав в качестве вложения к письму файл C:\Temp\Event.txt
Теперь на почту администратора будет приходить уведомление со вложением, в котором указан данные об отслеживаемом событии
Использованные материалы:
https://vijredblog.wordpress.com/2014/03/21/task-scheduler-event-log-trigger-include-event-data-in-mail/
https://blogs.technet.microsoft.com/jhoward/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger/
https://blogs.technet.microsoft.com/jhoward/2010/06/16/getting-event-log-contents-by-email-on-an-event-log-trigger/
Комментариев нет:
Отправить комментарий