мониторинг логов с помощью zabbix

10615
ufk

Я пытаюсь отслеживать файл журнала и получать оповещения на основе регулярного выражения.

используя zabbix 2.4.5

это элемент журнала, который я создал

вещь

и это триггер

спусковой крючок

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

монитор

есть идеи?

2

3 ответа на вопрос

3
Vladimir

Make sure that in the agent configuration file on the monitored host:

'Hostname' parameter matches the host name in the frontend Servers in the 'ServerActive' parameter are specified for the processing of active checks. Example:

/etc/zabbix/zabbix_agentd.conf:

Hostname=game.bingodrive.com ServerActive=10.1.1.1 

Then check if zabbix Unix user has the acces to read the file:

# su - zabbix -c "tail $YOUR-FILE" 

Note, that the "regexp" trigger function returns true (1) if string was found so if the message on the second screenshot is error there should be =1, not =0.

спасибо за ваш ответ, я изменил регулярное выражение для результата на eq 1. У меня нет исполняемого файла zabbix на моем контролируемом хосте. что я делаю ? ufk 9 лет назад 0
У вас не будет исполняемого файла zabbix на вашем хосте. «su - zabbix -c…» - это просто команда, которая поможет вам проверить, есть ли у агента zabbix разрешение на чтение файла. Vladimir 9 лет назад 0
ааа ой ты прав. В любом случае я проверил, и у пользователя zabbix есть доступ к этому файлу журнала. ufk 9 лет назад 0
Ну, тогда проверьте, не находится ли ваш элемент монитора журнала в неподдерживаемом состоянии. Vladimir 9 лет назад 0
`su - zabbix -c "tail $YOUR-FILE"` does not work for user without shell. You could use `runuser -u zabbix tail $YOUR-FILE` for this. user3132194 6 лет назад 0
1
SimplifiedWork

A better alternative for you will be to use a specialized plugin instead. Zabbix, like many other modern monitoring applications allows users to implement custom plugins. In your case, the custom plugin you need will be a tool that was built specifically to check, monitor and alert on log files.

An example of such a tool is autoresolve.kl.sh

The installation procedure is simple:

  1. Log into the host on which you have log files to monitor
  2. wget (the-url-link-of-zip-file-of-autoresolve.kl.sh)
  3. cd /tmp ; unzip (the-downloaded-zip-file)
  4. ./install.sh /var/tmp/KINGLAZY/SHIELDX-autoresolve.kl.sh /home/jserver -force

Replace '/home/jserver' with your zabbix plugins directory. Also, make sure to run the preceding installation commands as an ordinary user - not root, unless you're testing.

Once the above steps are complete. You can now begin monitoring logs:

./autoresolve.kl.sh localhost /var/tmp/logXray,fixer,0n-1y-2y,0-uname,1-who,2-uptime autonda /var/log/syslog 60m 'app.*error' '.' 1 2 app_err_monitor -ndshow

To keep things simple, the most important parameters you'll need to change are:

  1. /var/log/syslog - This is the log file you're monitoring
  2. app.*error - This is the string you're looking for in the log file
  3. app_err_monitor - This is the name/tag that you're assigning to this particular log check. Later, if you wish, this tag can be used to help you generate graphs on the monitored log.

For a detailed explanation on what each parameter means, you can visit the help page directly.

On the same help page, you'll also find step by step instructions on how to get this tool to work with Zabbix...i.e. what zabbix configuration file you need to update...and what settings you need to have on the zabbix web interface.

1
Otheus

Для Zabbix-мониторинга журнальных файлов UNIX с logэлементами очень важно, чтобы рассматриваемый хост мог использовать активные проверки . Обычно это означает, что:

  1. Агент должен быть настроен с ServerActive=именем хоста zabbix сервера или прокси, который вы используете с этим хостом.

  2. Имя хоста, настроенное Zabbix-сервером, совпадает с полным доменным именем или системным именем целевого (отслеживаемого) хоста.

  3. Или, если это не так, агент должен быть настроен, HOSTNAME=а соответствующий Zabbix-сервер настроен имя хоста.

  4. Как отмечают другие, агент (работающий как пользователь Zabbix) должен иметь доступ к файлу журнала, su zabbix -c "tail -1 logfile"это хороший способ проверить это. Если учетная запись zabbix отключена, используйте runuser -u zabbix tail -1 logfile. (заменить logfileна файл для мониторинга).

При перезапуске агента проверьте его файл журнала на наличие сообщений об ошибках, таких как

no active checks on server [127.0.0.1:10051]: host [Zabbix server] not found 

Это указывает на неправильную конфигурацию типа выше.

Если на сервере вы видите «НЕ ПОДДЕРЖИВАЕТСЯ» для этого элемента, возможно, это проблема с правами доступа к файлам.

Если вы все еще не видите свои сообщения, возможно, отправлено слишком много сообщений. По умолчанию, Zabbix будет отправлять только 100 или около того в секунду, и он будет «догонять» только каждые 30 секунд (см. Ваш элемент).

Вы настроили свой триггер для просмотра только последнего элемента ( regexp(...,#1)). Я думаю, что это правильно, но обычно вы просто опускаете ,#1.

РЕДАКТИРОВАТЬ: заменено sudoна runuser. Смотрите комментарии

Sudo is in optional package. It is better to use `runuser -u zabbix tail $YOUR-FILE`. user3132194 6 лет назад 1