Разрабатываем пакет управления для МОМ::Журнал СА 11.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

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

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Разрабатываем пакет управления для МОМ

Архив номеров / 2006 / Выпуск №11 (48) / Разрабатываем пакет управления для МОМ

Рубрика: Администрирование /  Администрирование

Андрей Бирюков

Разрабатываем пакет управления для МОМ

В вашей сети есть множество приложений, работу которых вам необходимо постоянно контролировать. Как написать свой пакет управления МОМ для одной из наиболее важных служб вашей сети?

Определяем задачу

В предыдущей статье [1] вы узнали об архитектуре продукта Microsoft Operations Manager 2005, его функциональных возможностях, а также способах установки компонентов MOM, в том числе и пакетов управления Management Packs. Пакеты представляют собой контейнеры, содержащие наборы правил, которые позволяют осуществлять сбор информации. Однако мы рассмотрели вариант использования уже готовых пакетов, которые необходимо было лишь импортировать в МОМ. Удобство такого подхода очевидно, не нужно самостоятельно разработывать пакет, соответственно нет необходимости разбираться в структуре взаимодействия Management Pack с МОМ. Но все это удобно лишь в том случае, если для интересующего вас программного продукта уже разработан пакет управления. Как упоминалось в предыдущей статье, Management Pack разработаны для всех продуктов Microsoft. Также пакеты управления есть для Lotus Domino и для систем резервного копирования Veritas (Symantec) Backup Exec. Но наверняка в вашей сети найдутся жизненно важные сервисы, состояние которых хотелось бы отслеживать с помощью МОМ, а готового пакета управления на сайте производителя найти не удалось. Проблему можно решить написав собственный пакет управления. Дабы не быть голословным, в этой статье я опишу, как на практике создать Management Pack для одного из критичных ресурсов любой сети.

В качестве примера такого сервиса предлагаю вам рассмотреть систему антивирусной защиты серверов. Данный компонент – неотъемлемая часть системы безопасности любой сети, но не для всех корпоративных антивирусов производители разработали пакеты управления для взаимодействия с МОМ.

Примером антивируса будет ClamAV. В данном случае неважно какой именно антивирус вы используете, так как архитектура взаимодействия схожа.

Стандартная антивирусная система для защиты рабочих станций и файловых серверов представляет собой процесс или несколько процессов, которые постоянно запущены в памяти и выполняют действия по сканированию и удалению вредоносного кода из системы. Результаты всех этих действий всегда должны сохраняться в соответствующих журналах (логах). В нашем случае результаты антивирусной проверки сохраняются в текстовом файле.

Архитектура Management Pack

Пакет управления МОМ состоит из следующих основных взаимосвязанных компонентов (см. рис. 1):

  • Computer Attributes – в разделе определяется набор атрибутов, по которым будет осуществляться поиск нужных хостов.
  • Computer Groups – группа компьютеров, объединенная по определенному признаку, например серверы, на которых установлен Microsoft SQL.
  • Rule Groups – группы правил, которые являются неотъемлемой частью любого пакета управления.
  • Providers – провайдеры являются ключевыми элементами правил. Они определяют, где правило должно получать требуемые данные. Основным источником данных для правил является журнал Event Log.
  • Rules – правила, которые определяют, какие данные должны анализироваться пакетом управления, критерии, по которым ведется отбор, и какой ответ должен быть в случае получения интересующей информации.
  • Automated Responses – в этом разделе определяются ответы, возвращаемые МОМ.
  • Views – это ключевая возможность Management Pack, так как Views позволяют создавать сообщения о различных событиях, а также собирать информацию о производительности управляемой системы.

Рисунок 1. Компоненты Management Pack

Рисунок 1. Компоненты Management Pack

Предназначение каждого компонента станет более понятным непосредственно в процессе написания пакета управления, к которому мы собственно и приступаем.

Области действия и атрибуты

Начнем составление нового пакета управления. Сначала необходимо определиться с атрибутами, по которым будет выполняться выборка. В консоли «Administrator Console» выбираем «Management Packs», далее «Computer Attributes» и затем в меню «Action» указываем «Create Computer Attribute».

Далее предлагается выбрать, по какому именно атрибуту выбирать: по ветке реестра или по значению. Для рассматриваемого в статье антивируса ClamAV нас будет интересовать ветка: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ClamAV. Далее указываем имя, и атрибут готов.

При необходимости таких атрибутов может быть несколько. Например, определенная операционная система или наличие специфического приложения на хосте (см. рис. 2).

Рисунок 2. Ветка реестра в разделе «Attributes»

Рисунок 2. Ветка реестра в разделе «Attributes»

Теперь определимся с группой серверов, на которых нужно осуществлять мониторинг. В общем случае можно воспользоваться уже готовыми группами. Если же в вашей сети серверов очень много и вам необходимо указать лишь несколько из них, то тогда создайте новую группу, выбрав в меню «Actions» опцию «Create Computer Group». Однако антивирус должен быть установлен на каждой рабочей станции и уж тем более на каждом сервере, так что лучше, чтобы в используемой группе были все сервера.

Следующим этапом в разработке Management Pack будет создание правил. Для этого прежде всего необходимо создать группу правил Rule Group («Action –> New Rule Groups»). При создании новой группы можно сразу указать те хосты, к которым будут эти правила применяться.

В созданной группе правил есть три раздела: Event Rules, Alert Rules и Performance Rules. Подробно содержимое этих разделов уже рассматривалось в предыдущей статье [1]. Поэтому сейчас я опишу только те компоненты, которые необходимы для создания своего пакета управления.

Во-первых, нас интересует бесперебойная работа антивирусного сервиса. Информация обо всех остановках сервиса должна немедленно сообщаться оператору МОМ. Для этого необходимо создать Alert Rule, которое будет отслеживать состояние сервиса и в случае получения от системы сообщения «Service Unavaliable» отправлять письмо определенной группе пользователей. Реализовать все это можно следующим образом:

В созданной группе правил открываем раздел «Alert Rules», далее в меню «Action» выбираем «Create Alert Rule», отмечаем опцию of severity, а в соответствующем списке – пункт «Service Unavailable». Таким образом, будут отслеживаться системные сообщения о недоступности сервиса.

На следующем шаге указываем время, когда это правило будет выполняться – «Always process data».

Наконец необходимо указать ответные действия «Responses». Как уже упоминалось ранее, нам требуется отправить уведомление соответственно «Send a notification to a Notification group». В разделе «Notification» выбираем группу получателей «Notification group – Network Administrators». В соседней закладке «E-Mail format» можно внести изменения в формат почтового сообщения, которое будет отправлено операторам.

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

Net start [Имя_сервиса]

Однако зачастую внезапное «падение» сервиса носит неслучайный характер и простого рестарта служб может оказаться недостаточно, так как необходимо выяснить причину данного сбоя, поэтому непременно должно быть отправлено уведомление оператору.

Теперь рассмотрим вопрос, касающийся создания операторов. В административной консоли МОМ для этого предусмотрен раздел «Notifications» (Уведомления), в котором определены «Notification Group» (Группы уведомлений). Здесь необходимо добавить нужного оператора в группу «Network Administrators», указав при этом контактный e-mail, на который требуется отправлять уведомления.

Сценарии и запросы

Итак, мы определились с атрибутами, по которым будет проходить выборка, также составили список тех машин, на которых необходимо осуществлять мониторинг. Теперь определимся с провайдером (Provider), то есть с источником информации об интересующих нас событий. Таким событием прежде всего является остановка сервиса ClamAV, то есть необходимо обнаруживать состояние Stopped. В решении этой проблемы нам поможет запрос WMI. Подробнее об этом мощном средстве Windows уже рассказывалось в предыдущих выпусках журнала [2, 3]. Для контроля состояния сервиса ClamAV необходимо построить запрос следующего содержания:

select * from __InstanceModificationEvent WITHIN 89 Where TargetInstance ClamAV'Win32_Service' AND TargetInstance.State = 'Stopped'

Для этого в меню «Management Pack» выбираем опцию «Providers», далее «Create Provider». В качестве типа провайдера выбираем «WMI Events» и в следующем окне, в поле запрос, указываем вышеприведенную строку. Таким образом, был создан источник информации по интересующему событию.

Думаю, очевидным требованием для антивирусного комплекса будет возможность создавать уведомления об обнаружении зараженных файлов. Для того чтобы создавать такие уведомления, лучше всего воспользоваться сценарием на VBScript, который будет производить анализ файла журнала антивирусной системы, осуществляя поиск вхождений строк, сообщающих об обнаруженных зараженных файлах, а также о результатах лечения или удаления из них вредоносного кода. Файл такого журнала может иметь следующий вид:

c:/windows/DtcInstall.log: OK

c:/windows/eicar_com.zip: Eicar-Test-Signature FOUND

c:/windows/EventSystem.log: OK

c:/windows/explorer.exe: OK

c:/windows/Zapotec.bmp: OK

c:/windows/_default.pif: OK

----------- SCAN SUMMARY -----------

Known viruses: 53081

Engine version: devel-20060426

Scanned directories: 1

Scanned files: 84

Infected files: 1

Data scanned: 5.66 MB

Time: 17.856 sec (0 m 17 s)

В примере продемонстрировано обнаружение тестового вируса Eicar, который используется для тестирования антивирусных продуктов.

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

Листинг 1. Поиск вхождений в файле журнала

‘ путь к файлу журнала

strFile="c:\clamav-devel\log\clamd.log"

Set objFSO = CreateObject("Scripting.FileSystemObject")

‘ открываем файл на чтение

Set readPCFile = objFSO.OpenTextFile(strFile, ForReading)

search="FOUND"  искомая подстрока

‘ цикл по всему файлу журнала

Do Until readPCFile.AtEndOfStream

 strNextLine = readPCFile.Readline ‘ считываем построчно

 ‘ вхождение найдено

 If Instr(InStr(1,strNextLine,search)) then

  ‘ присваиваем соответствующее значение переменной

  result= strNextLine

 … ‘ далее действия с этой переменной

 End If

Loop ‘ завершение цикла

readPCFile.Close ‘ закрываем файл

Использовать сценарий в таком виде непосредственно в МОМ нельзя, так как для пакетов Management Pack существует определенный формат сценариев, которого необходимо придерживаться. Прежде всего нужно определить ряд констант и переменных. Обычно эта инициализация производится вначале сценария и имеет вид:

Листинг 2. Общий вид сценария

‘ блок инициализации

Option Explicit

Const PROBLEMSTATE_NOTSET = 0

Const PROBLEMSTATE_GREEN = 1

Const PROBLEMSTATE_YELLOW = 3 ' Yellow = Red+(Warning|Error)

Const PROBLEMSTATE_RED = 3

Const ALERT_SUCCESS = 10

Const ALERT_INFORMATION = 20

Const ALERT_WARNING = 30

Const ALERT_ERROR = 40

Const ALERT_CRITICAL_ERROR = 50

Const ALERT_SECURITY_BREACH = 60

Const ALERT_SERVICE_UNAVAILABLE = 70

Dim oEvent

Set oEvent = ScriptContext.CreateEvent()

‘ основной блок

Sub Main()

‘ здесь производится вызов процедур, используемых для сбора и обработки необходимой информации

End Sub

Function ThrowScriptError(sMessage, oErr)

'

' ThrowScriptError :: Creates an event and sends it back to the mom server

'

' процедура возвращает сообщение об ошибке, в случае некорректного завершения сценария

    ScriptContext.Quit()

End Function

' VBScript source code

ScriptContext.Submit oEvent

Напишем сценарий, который будет отслеживать появление в журналах событий антивирусной системы сообщения о зараженных файлах (напротив имен таких файлов должно быть написано FOUND). Далее сценарий будет передавать МОМ сообщение в специальном формате, на основании которого будет создан Alert, сообщающий оператору системы о заражении файла.

Листинг 3. Сценарий, сообщающий об обнаружении зараженного файла

Option Explicit

Const PROBLEMSTATE_NOTSET = 0  ‘ состояние проблемы

Const PROBLEMSTATE_GREEN = 1   ‘ цветовая маркировка

Const PROBLEMSTATE_YELLOW = 3  ‘ Yellow = Red+(Warning|Error)

Const PROBLEMSTATE_RED = 3 Const ALERT_SUCCESS = 10

Const ALERT_INFORMATION = 20   ‘ различные виды уведомлений Alert

Const ALERT_WARNING = 30

Const ALERT_ERROR = 40

Const ALERT_CRITICAL_ERROR = 50

Const ALERT_SECURITY_BREACH = 60

Const ALERT_SERVICE_UNAVAILABLE = 70

Dim oAlertHandle

‘ Объект для создаваемого события

Set oAlertHandle = ScriptContext.CreateAlert()

‘ основной блок

Sub Main()

‘ здесь производится вызов процедур, используемых для сбора и обработки необходимой информации

 virusfind()

End Sub

    Sub virusfind()

‘ путь к файлу журнала

strFile=”c:\clamav-devel\log\clamd.log”

Set objFSO = CreateObject(“Scripting.FileSystemObject”)

‘ открываем файл на чтение

Set readPCFile = objFSO.OpenTextFile(strFile, ForReading)

search=”FOUND”  искомая подстрока

‘ цикл по всему файлу журнала

Do Until readPCFile.AtEndOfStream

    ‘ считываем построчно

    strNextLine = readPCFile.Readline

    ‘ вхождение найдено

    If Instr(InStr(1,strNextLine,search)) then

    ‘ присваиваем соответствующее значение переменной

    result= strNextLine

‘ далее приводятся свойства уведомления

oAlertHandle.Name = “ Virus found!!!”

‘ описание события

oAlertHandle.Description = “Virus found in file” & result

‘ Какая роль (диск так как вирус найден на файловом уровне, а например, не в памяти)

oAlertHandle.ServerRole = “Disk”

‘ компонента – файловая система

oAlertHandle.Component = “File System”

‘ цвет уведомления желтый

oAlertHandle.ProblemState = PROBLEMSTATE_YELLOW

‘ вид уведомления – предупреждение

oAlertHandle.AlertLevel = ALERT_WARNING

End If

Loop ‘ завершение цикла

readPCFile.Close ‘ закрываем файл

    End sub

Function ThrowScriptError(sMessage, oErr)

‘ ThrowScriptError :: Creates an event and sends it back to the mom server

'

' процедура возвращает сообщение об ошибке, в случае некорректного завершения сценария

    On Error Resume Next

    Dim oScriptErrorEvent

    Set oScriptErrorEvent = ScriptContext.CreateEvent()

    With oScriptErrorEvent

           .EventNumber = 40000

           ‘EventLogEntryType Enumeration

           .EventType = 1

           .Message = sMessage

           .SetEventParameter “Microsoft Windows Servers Base Operating System”

           .SetEventParameter sMessage

           .SetEventParameter oErr.Description

           .SetEventParameter oErr.Number

    End With

    ScriptContext.Submit oScriptErrorEvent

    ScriptContext.Echo ?

           “ThrowScriptError(‘” & sMessage & “’)”

    ScriptContext.Quit()

End Function

‘ VBScript source code

ScriptContext.Submit oEvent

Итак, как видно из Листинга 3, для создания уведомления необходимо прописать объект соответствующего типа и затем передать ему найденные в результате работы процедуры поиска данные.

Теперь для завершения создания пакета нужно прописать данный сценарий в МОМ. Сделать это можно следующим образом. В консоли администрирования выбираем «Management Packs», далее «Scripts», в меню «Action» указываем «Create Script». В открывшемся окне пишем имя, в качестве языка сценариев указываем VBScript, далее просто копируем через буфер обмена исходный текст, в следующем окне Parameters ничего указывать не надо, так как все необходимые данные извлекаются в процессе работы программы.

Наконец завершающим этапом в составлении пакета управления для антивирусной системы является подключение написанного сценария к Management Pack. Для этого нужно создать задачу «Task». Для этого выбираем «Create Task», в окне, запрашивающем, где должен выполняться сценарий (Task Run Location And Type), выбираем «Agent Managed Computer» и тип задачи – «Script». В следующем окне «Target Role – Computer и Script» – указываем имя того сценария, который был создан ранее. Далее указываем имя задачи и нажимаем «Finish».

Получаем результат

Итак, пакет управления создан. Что же было получено в результате? Теперь при обнаружении антивирусной системой зараженного файла в консоли оператора можно наблюдать следующие сообщения (см. рис. 3).

Рисунок 3. Сообщение о зараженном файле

Рисунок 3. Сообщение о зараженном файле

Аналогичное сообщение придет на почтовый адрес оператора, что может оказаться весьма полезным в случае массовой вирусной эпидемии. Также уведомление будет отправлено в случае, если по какой-либо причине на одном или нескольких хостах будет остановлена служба антивируса. Не секрет, что многие вирусы, прежде чем начать заражение сети, пытаются остановить службу антивируса для того, чтобы сделать атакуемый узел беззащитным и полностью захватить его ресурсы.

Выводы

Подводя итог всех выполненных действий, хотелось бы сделать ряд пояснений. Конечно, большинство коммерческих корпоративных антивирусов умеют выполнять описанные в статье задачи. Так, для контроля за работой службы антивируса используются различные механизмы, которые в случае остановки сервиса немедленно его перезапускают. Также и уведомления о вирусах они могут рассылать не только с помощью электронной почты, но и, к примеру, с помощью служб мгновенных сообщений (ICQ, MSN и других). Так что целью статьи не являлось изобретение велосипеда в управлении корпоративными антивирусными системами. Главное, на примере бесплатного антивируса ClamAV показан механизм создания собственного пакета управления для Microsoft Operations Manager. Теперь на основе приведенных рекомендаций вы сможете построить уже собственный пакет управления для тех сервисов, которые критичны именно для вашей сети, будь то система антиспама, сервер бухгалтерии или служба резервного копирования. Думаю, в ваших интересах получать своевременные сообщения обо всех жизненно важных системах сети.

  1. Бирюков А. Microsoft Operations Manager 2005 – управляем сетью. //Системный администратор, №10, 2006 г. – С. .
  2. Леонтьев К. Вы все еще не используете WMI? Часть 1. //Системный администратор, №1, 2006 г. – С. 4-11;
  3. Леонтьев К. Вы все еще не используете WMI? Часть 2: пишем сценарии//Системный администратор, №2, 2006 г. – С. 6-14.

  4. Леонтьев К. Узнай секреты WMI: события и провайдеры. Часть 1: дополнительные возможности. //Системный администратор, №3, 2006 г. – С. 6-13;
  5. Леонтьев К. Узнай секреты WMI: события и провайдеры. Часть 2: ключ к управлению системой и приложениями. //Системный администратор, №5, 2006 г. – С. 28-34.

  6. Microsoft Operations Manager Software Development Kit.
  7. Microsoft Management Pack Developer Guide.

Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru