LogWatch: теория и практика использования

Started by Anth0ny, December 16, 2008, 04:53:29 PM

Previous topic - Next topic

Anth0ny

OS: Windows 2008 x64

Всё сделал как написано тут: https://www.netxms.org/forum/index.php/topic,483.0.html

После всех преготовлений перезапускаю Агента, и....
Получаю в System-логе вот такое сообщение:

LogWatch: Cannot create parser from configuration file C:\Program Files\NetXMS\etc\log_2.xml (Compiled without XML support)

Victor Kirhenshtein

Это баг :( Как оказалось, 64-bit агенты собраны без поддержки XML. Исправлю и выложу обновленный инсталлер.

Anth0ny

Благодарю =)

Ещё один вопрос по теме настроек: https://www.netxms.org/forum/index.php/topic,483.0.html

я, если честно, не понял, как именно настраивается обработка поступающих от Агентов эвентов?

я понял, что нужно стандартно создать События и обработчик для них. А вот как связать события с поступающими данными? в обычном случае для этого использовался DCI (Origin) и его трешолды.

а в данном случае с логами - как?

прошу разъяснить...

Victor Kirhenshtein

Не очень понял суть вопроса :( События обрабатываются как любые другие, через event processing policy. Может быть опишешь одну конкретную задачу, а я напишу как все сконфигурить?

Anth0ny

Ну... Скажем так:

есть сервер, на котором желательно мониторить логи (*System и *Application).
нужно в теле описания эвентов искать фразы типа "can not browse" (для Application) и "port browser stopped" (для System). жаль что пока нельзя искать по остальным атрибутам эвентов... очень ждём эту возможность.

что я сделал:

на Агенте

1. подключил в конфиге Агента субагента Logwatch


...
SubAgent = logwatch.nsm
...


2. создал 2 тестовых xml-конфига для субагента (s-watch.xml и a-watch.xml)

s-watch.xml


<parser>
   <file>*System</file>
   <rules>
      <rule>
         <match>port browser stopped</match>
         <event>100</event>
      </rule>
   </rules>
</parser>


a-watch.xml


<parser>
   <file>*Application</file>
   <rules>
      <rule>
         <match>can not browse</match>
         <event>101</event>
      </rule>
   </rules>
</parser>


3. Подключил оба конфига к Субагенту.


*LogWatch
Parser = C:\Program Files\NetXMS\etc\a-watch.xml
Parser = C:\Program Files\NetXMS\etc\s-watch.xml


на Сервере

4. Создал Event'ы (всего 4: активирующий и реактивирующий для каждого из 2 логов)
5. Создал Обработчики для всех 4ёх Event'ов.

6. Перезапустил Агента.

Дальше произошла ошибка о которой я сообщил в этом посте...
LogWatch: Cannot create parser from configuration file C:\Program Files\NetXMS\etc\a-watch.xml (Compiled without XML support)

И вот какая незадача: если честно, то я не совсем понимаю, а что же и где настраивать дальше?

Собственно это и есть проблема...

Victor Kirhenshtein

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

Anth0ny

=))) Виктор, да я не про то...

Я уже понял что всё что я написал- правильно.
Одного не могу понять: а КАК этим всем пользоваться?????

ГДЕ ОНО, то самое волшебное место, где связываются События <event></event> от logwatch и события (Eventы) сервера?
Я вот чего пытаюсь добиться.

На текущий момент я вроде всё сконфигурил (и жду патча), но вот тупо не могу понять ГДЕ же это место в консоли?

Привожу полную цитату из https://www.netxms.org/forum/index.php/topic,483.0.html:

Quote
1. проверять сообщения, принимаемые встроенным syslog сервером на соответствия шаблонам и создавать события при соответствии;
2. через агента проверять записи в текстовых логах на соответствия шаблонам и создавать события при соответствии;
3. на Windows - то-же самое для Windows Event Log.

Для 1. надо обновить сервер, для 2 и 3 достаточно поставить новых агентов.

Как настраивать монтторинг логов через агента:

1. Создать необходимые события (через Control Panel -> Events);
2. В конфиге агента добавить загрузку субагента logwatch.nsm (libnsm_logwatch.so на UNIX);
3. Для каждого лога добавить запись вида Parser = config_file в секции LogWatch. Например так:

Code:

*LogWatch
Parser = /opt/netxms/etc/log_1.xml
Parser = /opt/netxms/etc/log_2.xml


4. Создать конфиги парсеров. Каждый конфиг - это отдельный XML файл следующего формата:

<parser>
   <file>file_name</file>
   <rules>
      <rule>
         <match>regexp</match>
         <event params="n">event_code</event>
      </rule>
      ...
   </rules>
</parser>

Таг <rule> можно повторять сколько необходимо. Аттрибут params в таге event указывает, сколько подстрок (обозначенных в regexp'e скобками) надо передать как параметры события (их потом можно использовать через макросы %1, %2, ...). Если параметров нет, то фттрибут events можно не указывать.
Для мониторинга Windows event logs вместо имени файла надо указывать *log_name, например *System

Я что-то не так понял или и для работы с логами Windows тоже нужно использовать встроенный syslog сервер?

А иначе я тупо не могу понять КАК работать с logwatch'ем.
Вроде всё почти сконфигурил а увидеть результаты где я смогу???? Я же не могу создать DCI для запроса к logwatch, потому что именно Агент генерирует транзакцию. Так где в консоли искать это??

Victor Kirhenshtein

В теге event надо указывать код NetXMS события - это и есть та самая связь. Код события виден в конфигураторе событий (см. скриншот).

Anth0ny

Оооооо...
Вон оно что...

Спасибо за подсказку.
В голове начинает проясняться.

Т.е. это система, которая не требует наличия DCI?

И работает такая логическая цепочка:

1) на агентской машине в логе появляется событие

нас это событие интересует и наш фильтр настроен на его отлов (пока по содержимому поля описания)

2) наш фильтр ловит это Событие и переправляет его КОД (который <event></event>) на сервер мониторинга, который постоянно ждёт прихода такого рода данных от агентов

у нас есть несколько Событий (Event'ов) на сервере мониторинга, номера которых совпадают с номерами из <event></event> в конфигах logwatch на Агентах

3) по приходу событий на сервер их номера сравниваются с номерами событий на сервере и если находится совпадение, то запускается процессинг

я правильно понял?
=)


Anth0ny

OMG спасибо за разъяснение! =)
Весьма элегантное решение! =)

А что слышно про патч для х64?

Anth0ny


Anth0ny

прошу простить за назойливость (вызвано производственной необходимостью), но ...

UP-UP

=)

Victor Kirhenshtein