NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Anth0ny on December 16, 2008, 04:53:29 PM

Title: LogWatch: теория и практика использования
Post by: Anth0ny on December 16, 2008, 04:53:29 PM
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)
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 16, 2008, 05:10:29 PM
Это баг :( Как оказалось, 64-bit агенты собраны без поддержки XML. Исправлю и выложу обновленный инсталлер.
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on December 16, 2008, 05:18:48 PM
Благодарю =)

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

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

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

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

прошу разъяснить...
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 16, 2008, 07:17:28 PM
Не очень понял суть вопроса :( События обрабатываются как любые другие, через event processing policy. Может быть опишешь одну конкретную задачу, а я напишу как все сконфигурить?
Title: Re: LogWatch: это мой косяк или что-то в программе не та&
Post by: Anth0ny on December 17, 2008, 09:29:11 AM
Ну... Скажем так:

есть сервер, на котором желательно мониторить логи (*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)

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

Собственно это и есть проблема...
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 17, 2008, 03:49:52 PM
Ну, собственно я уже писал, что это баг в 64 битном агенте. Надо ждать патч. А так конфиг выглядит правильно, единственно у меня вызывают подозрение коды событий 100 и 101 - из консоли события с такими кодами создать нельзя.
Title: Re: LogWatch: это мой косяк или что-то в программе не та&
Post by: Anth0ny on December 17, 2008, 04:35:55 PM
=))) Виктор, да я не про то...

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

ГДЕ ОНО, то самое волшебное место, где связываются События <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, потому что именно Агент генерирует транзакцию. Так где в консоли искать это??
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 17, 2008, 04:43:28 PM
В теге event надо указывать код NetXMS события - это и есть та самая связь. Код события виден в конфигураторе событий (см. скриншот).
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on December 17, 2008, 05:07:17 PM
Оооооо...
Вон оно что...

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

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

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

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

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

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

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

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

я правильно понял?
=)
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 17, 2008, 05:19:10 PM
да, правильно :)
Title: Re: LogWatch: это мой косяк или что-то в программе не та&
Post by: Anth0ny on December 17, 2008, 05:23:56 PM
OMG спасибо за разъяснение! =)
Весьма элегантное решение! =)

А что слышно про патч для х64?
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on December 19, 2008, 02:49:30 PM
UP

очень жду патча.
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on December 23, 2008, 09:18:44 AM
прошу простить за назойливость (вызвано производственной необходимостью), но ...

UP-UP

=)
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 23, 2008, 03:22:49 PM
Выложил патч для x64: https://www.netxms.org/rc/nxagent-0.9.0-rc1-x64.exe (https://www.netxms.org/rc/nxagent-0.9.0-rc1-x64.exe).
Должен работать :)
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on December 24, 2008, 09:20:37 AM
Not found =(
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Victor Kirhenshtein on December 24, 2008, 10:42:00 PM
Sorry, https://www.netxms.org/download/rc/nxagent-0.9.0-rc1-x64.exe (https://www.netxms.org/download/rc/nxagent-0.9.0-rc1-x64.exe)
Title: Re: LogWatch: это мой косяк или что-то в программе не так?
Post by: Anth0ny on January 27, 2009, 10:20:57 AM
сегодня наконец поставил, буду посмотреть как оно себя поведёт...
Title: Re: LogWatch: это мой косяк или что-то в программе не та&
Post by: Anth0ny on May 07, 2009, 06:01:39 PM
Виктор, поскольку всё что мы тут понаписали сожрал проклятый кризис катаклизм, прошу повториться и написать подробнее о нововведениях в мониторинге логов Windows...

я про

- Added support for matching Windows event log records by event source,
  severity, and event code

если Вас не затруднит, не могли бы Вы дать несколько примеров по использованию этой новой возможности?
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on May 08, 2009, 08:10:26 PM
Для фильтрации по этим полям в тэге <rule> можно указывать следующие тэги:

<id>event code range</id> - код события или диапазон, например <id>10</id> или <id>21-28</id>

<level>severity level</level> - уровень серьезности (тип) события. Здесь надо указывать маскуб составляемую из следующих значений:

1 error
2 warning
4 information
8 audit success
16 audit failure

если требуется несколько уровней, то эти значения суммируются - например для соответствия уровням error и information надо использовать значение 5 (1 + 4).

<source>event source pattern</source> - шаблон для имени источника события. Это не регулярное выражение, а именно шаблон, где можно использовать символы * и ?. Например, для всех имен, начинающихся на VNC, надо использовать VNC*.

Вот вроде и все.
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on May 18, 2009, 06:03:53 PM
Расскажите, плиз, подробнее про <event param="1"> в парсере.
Для начала хочу передавать в NetXMS текст эвента ошибки из виндового System Log.
Сделал простейший парсер:

<parser>
<file>*System</file>
<rules>
<rule>
<level>1</level>
<match>*</match>
<event params="1">100012</event>
</rule>
</rules>
</parser>

Теперь при появлении ошибки в System Log, в NetXMS Event Browser'е появляется эвент, но без текста ошибки, хотя Message Template у него стоит %1. Что-то недокрутил?

P.S. И ещё вопросик вдогонку: не планируется ли доработать в будущем модуль для update/deploy клиентов, чтобы заодно распространять на них файлики с парсерами? Чтобы не копировать ручками .xml-файлик на 20 серверов.
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on May 19, 2009, 12:49:22 PM
Quote from: Ethril on May 18, 2009, 06:03:53 PM
Расскажите, плиз, подробнее про <event param="1"> в парсере.
Для начала хочу передавать в NetXMS текст эвента ошибки из виндового System Log.
Сделал простейший парсер:

<parser>
<file>*System</file>
<rules>
<rule>
<level>1</level>
<match>*</match>
<event params="1">100012</event>
</rule>
</rules>
</parser>

Теперь при появлении ошибки в System Log, в NetXMS Event Browser'е появляется эвент, но без текста ошибки, хотя Message Template у него стоит %1. Что-то недокрутил?

Ту часть текста, которую надо передать как параметр события, надо брать в скобки, например:

(.*) - весь текст будет взят как параметр
^Error (.*) - текст после слова Error будет взят как параметр
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on May 19, 2009, 12:50:53 PM
Quote from: Ethril on May 18, 2009, 06:03:53 PM
P.S. И ещё вопросик вдогонку: не планируется ли доработать в будущем модуль для update/deploy клиентов, чтобы заодно распространять на них файлики с парсерами? Чтобы не копировать ручками .xml-файлик на 20 серверов.

Планируется - будет возможность централизованно распространять конфиги, скрипты, и т.д.
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on May 19, 2009, 02:56:20 PM
Поменял * на (.*) - всё работает. Спасибо.
Title: Re: LogWatch: теория и практика использования
Post by: nikos on May 20, 2009, 10:58:25 AM
Hi There

It would be great, if the information regarding LogWatch and Windows Event Log monitoring would be available in english too!

Any chance?

Thanks a lot!
Title: Re: LogWatch: теория и практика использования
Post by: Anth0ny on June 18, 2009, 11:48:47 AM
Проблема, не проблема...
Решил написать:

Win2008 - x86, NXMS 0.2.26.1

Подключил в Агенте LogWatch. И теперь лог буквально усыпан сообщениями:

LogWatch: Unable to read event log "Application": The event log file has changed between read operations.

Как с этим бороться?

Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on June 28, 2009, 01:04:34 AM
Ja vilozil obnovlennij logwatch dlja testov - https://www.netxms.org/forum/index.php/topic,670.0.html (https://www.netxms.org/forum/index.php/topic,670.0.html). Teper' dolzen korrektno rabotat' na 2008.
Title: Re: LogWatch: теория и практика использования
Post by: Anth0ny on July 06, 2009, 11:13:17 AM
премного благодарен, буду посмотреть ASAP... =)
Title: Re: LogWatch: теория и практика использования
Post by: oleg on August 10, 2009, 07:09:55 PM
Добрый день!
Такой вопрос.
А как можно парсить логи имя которых не постоянно, а типа log090810.log? На следующий день соответственно log090811.log.
Title: Re: LogWatch: теория и практика использования
Post by: Anth0ny on August 11, 2009, 02:57:24 PM
мм.... может быть использовать шаблон типа log%date%.log ?
правда указанный тобой формат потребует предварительной обработки...
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on August 12, 2009, 09:49:14 AM
Quote from: oleg on August 10, 2009, 07:09:55 PM
Добрый день!
Такой вопрос.
А как можно парсить логи имя которых не постоянно, а типа log090810.log? На следующий день соответственно log090811.log.

В имени файла можно использовать макросы:

%a   Abbreviated weekday name
%A   Full weekday name
%b   Abbreviated month name
%B   Full month name
%c   Date and time representation
%d   Day of the month (01-31)
%H   Hour in 24h format (00-23)
%I   Hour in 12h format (01-12)
%j   Day of the year (001-366)
%m   Month as a decimal number (01-12)
%M   Minute (00-59)
%p   AM or PM designation
%S   Second (00-61)
%U   Week number with the first Sunday as the first day of week one (00-53)
%w   Weekday as a decimal number with Sunday as 0 (0-6)
%W   Week number with the first Monday as the first day of week one (00-53)
%x   Date representation
%X   Time representation
%y   Year, last two digits (00-99)
%Y   Year
%Z   Timezone name or abbreviation
%%   A % sign

В нашем случае это будет log%y%m%d.log
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on August 19, 2009, 04:02:54 PM
А как фильтровать сообщения в Syslog по полю Severity?
Пытался, по аналогии с парсингом EventLog'а, использовать строчку <level>1</level> - не работает... и слово level, в отличие от, например, match или rule, не подсвечивается как ключевое.
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on August 20, 2009, 09:18:18 AM
В текущей версии фильтровать по severity в syslog'e нельзя. Добавлю в следующей версии (добавил в bugtracker под номером 263).
Title: Re: LogWatch: теория и практика использования
Post by: oleg on August 26, 2009, 07:18:56 PM
Спасибо!
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on October 13, 2009, 11:45:36 AM
Возвращаясь к вопросу, как фильтровать Syslog по полю Severity... Вроде как эта возможность добавлена в 0.2.29.
События у меня в Syslog-е появляются с типами Informational, Notice, Warning.
Пишу в парсере <level>7</level> (пробовал и другие цифры), но не реагирует ни на что. Если убрать эту строчку, начинает реагировать на все события. Как-то по-другому надо фильтр задавать?
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on October 13, 2009, 12:53:04 PM
Dlja sysloga znavhenija severity sledujuschie:

1   Emergency
2   Alert
4   Critical
8   Error
16 Warning
32 Notice
64 Informational
128 Debug

T.e. dlja fil'tracii informational, notice, and warning nado pisat' <level>112</level>
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on October 13, 2009, 12:59:24 PM
Vilozil obnovlennij User Manual, tam dobavleno opisanie monitoringa sysloga.
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on October 13, 2009, 01:31:10 PM
Похоже, всё работает как надо. Спасибо.
Title: Re: LogWatch: теория и практика использования
Post by: Ethril on October 20, 2009, 10:45:33 AM
А как сделать, чтобы ловились события со статусом Critical, кроме событий с определённым id/Source?
Пытался сделать такой парсер:

<parser>
<file>*System</file>
<rules>
<rule>
<source>TermServDevices</source>
<id>1111</id>
</rule>
<rule>
<level>1</level>
<match>(.*)</match>
<event params="1">100012</event>
</rule>
</rules>
</parser>

Вроде как оно должно пропускать события с id 1111 и source TermServDevices, но они всё же попадают в обработку.
Title: Re: LogWatch: теория и практика использования
Post by: gmaxzz on November 22, 2010, 06:03:32 AM
Здравствуйте! Давненько этот топик не обновлялся, однако... Собственно, вопрос. Можно ли в параметрах event'а каким-то образом передать имя наблюдаемого файла? Чтобы в сообщении события я мог указать, с какого файла это событие пришло...
Title: Re: LogWatch: теория и практика использования
Post by: Victor Kirhenshtein on November 23, 2010, 03:07:32 PM
В текущей версии этого сделать нельзя. Я попробую реализовать это в каком-то виде в следующей версии.