Назад | Перейти на главную страницу

Zabbix 2.0 правильно читает журналы, но состояние триггера «НЕИЗВЕСТНО»

Я пытаюсь отслеживать файл журнала на предмет наличия слова «ошибка», и если оно появляется, запускать триггер для каждого нового появления «ошибки». Начну просто, с напильником (/var/log/test.log), который доступен для чтения во всем мире. Он содержит следующие строки:

test
error
also an error
but not this

Элемент в Zabbix log[/var/log/test.log,error]введите «Zabbix Agent (Active)» с типом информации «журнал».

Я использую следующий триггер, связанный с этим элементом: {nero:log[/var/log/test.log,error].str(error)}=1

Я попытался оставить в элементе часть «ошибка» и изменить значение триггера на 0. Независимо от того, что я делаю, я получаю статус триггера UNKNOWN на вкладке Events.

Я не уверен, что мне здесь не хватает, кто-то видит проблему? Я проверил журнал агента на сервере, и в нем не упоминается никаких проблем.

Во-первых, убедитесь, что ваш товар действительно имеет эти строки ошибок. Проверьте Мониторинг -> Последние данные. Если это не так, это проблема конфигурации активного агента, а не проблема мониторинга журнала. Убедитесь, что имя хоста агента (файл конфигурации демона агента, параметр Hostname) совпадает с именем хоста во внешнем интерфейсе - обратите внимание, что оно чувствительно к регистру.

Если ваш элемент получил строки ошибок, скорее всего, ваш элемент не получил новых значений после настройки триггера. Убедитесь, что для этого триггера установлен флажок «Создание нескольких ПРОБЛЕМНЫХ событий», затем запустите: $ echo error >> /var/log/test.log

Агент должен выбрать новую строку и отправить ее на сервер. Сервер оценивает этот триггер только после получения нового значения.

Попробуйте использовать в элементе кавычки:

log[/var/log/test.log,"error"]

И убедитесь, что вы используете тип «Zabbix агент (активный)» и «Журнал» в качестве типа элемента.

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

К слову, мне так и не удалось решить проблему. Вместо этого я настраиваю задание cron для прохождения каждой строки файла журнала, отправляя его на сервер Zabbix с помощью zabbix_sender.

log_file="/var/log/rsmonit_errors.log"          # File to read
zabbix_server="host.foo.com"       # FQDN or IP of Zabbix Sever
zabbix_host="servername"                             # Host name as defined in the entry in the Zabbix Server. NOT DNS or $HOSTNAME, this is specific to zabbix. Case sensitive.
item_key="rsmonit.errors"                       # Item name, as defined for the host in the Zabbix Server

# Loop through each line and feed it via zabbix_sender to the Zabbix server
while read line; do
    echo $line | xargs -0 zabbix_sender -v -z $zabbix_server -s $zabbix_host -k $item_key -o
done < $log_file

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

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

Примером такого инструмента является autoresolve.kl.sh

Процесс установки этого инструмента прост:

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

Заменить '/ главная / jserver'с вашим каталогом плагинов zabbix. Кроме того, не забудьте запустить предыдущие команды установки как обычный пользователь, а не root, если вы не тестируете.

После установки вы можете начать мониторинг журналов с помощью простой команды, например этой:

./autoresolve.kl.sh localhost / var / tmp / logXray, fixer, 0n-1y-2y, 0-uname, 1-who, 2-uptime autonda /var/log/rsmonit_errors.log 60m 'ошибка''. ' 1 2 error_watch -ndshow

Наиболее важные параметры, которые вам необходимо изменить:

  1. /var/log/rsmonit_errors.log - это файл журнала, который вы отслеживаете.

  2. error - это строка, которую вы ищете в файле журнала. Чтобы отслеживать несколько шаблонов внутри журнала, просто укажите их следующим образом: «error_P_fail_P_segfault_P_crash_P_panic». Знак подчеркивания P означает «|». Это более безопасный способ указать символ вертикальной черты при использовании инструмента с внешними приложениями ... такими как Zabbix.

  3. error_watch - это имя / тег, который вы назначаете для этой конкретной проверки журнала. Позже, если вы захотите, этот тег можно будет использовать для создания графиков в отслеживаемом журнале.

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

На той же странице справки вы также найдете пошаговые инструкции о том, как заставить этот инструмент работать с Zabbix ... т.е. какой файл конфигурации zabbix вам нужно обновить ... и какие настройки вам нужно иметь в веб-интерфейсе zabbix.