Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:zabbix:templates:nginx

Template Nginx Logs by Zabbix agent

Настраиваем наблюдение за журналом access.log веб-сервера Nginx, а точнее за количеством конкретных HTML-кодов в нём

Требования

  • Zabbix 5 и выше
  • ОС Debian или Ubuntu

Особенности

  • Наблюдение только за журналом access.log
  • При обработке журнала фильтруются все данные кроме HTML-кодов
  • Вычисляемые элементы данных подсчитывают количество конкретных HTML-кодов за определенный промежуток времени (в шаблоне это указано макросом {$NGINX.STATUS_CODE_CHECK.PERIOD} и по умолчанию равно 10 минутам)
  • Триггеры отсутствуют

Реализация

Чтобы наш Zabbix-агент смог читать журналы, нужно предоставить ему соответствующие права. Смотрим, кто уме имеет доступ:

ls -lh /var/log/nginx/

Обычно это одни из следующих групп: www-data, nginx, adm. Добавим пользователя Zabbix в группу adm:

sudo usermod -a -G adm zabbix

Совет

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

# отобразить членство в группах
groups zabbix
# читаем журнал от имени конкретного пользователя
sudo -H -u zabbix bash -c 'tail -f /var/log/nginx/access.log'

Скачиваем и импортируем xml-шаблон наблюдения: template_nginx_logs_by_zabbix_agent.zip

Бонус

Собственно сама реализация подсмотрена в схеме telegraf + influxdb + grafana, просто решил её адаптировать под Zabbix. Ну а так как к Zabbix у меня тоже есть своя Grafana, то:

Видимо придётся мне каждый счетчик делать отдельно, т.к. в данной реализации вроде бы нельзя игнорировать только 200 код (и не красить его в красный, когда он превышает порог…).

docs/zabbix/templates/nginx.txt · Последнее изменение: 19.10.2020 10:43 — philip