Мониторинг статус-кодов HTTP NGINX в Zabbix

Monitoring / Zabbix 17-11-2023, 15:51 sobir 6 392 0

access log сайта расположен в /var/log/nginx/newsite_com_ssl_access.log

Пользователь zabbix от которого запущен агент Zabbix не имеет прав доступа на чтение лога.

Доступ к лог-файлам в директории /var/log/nginx имеет владелец www-data и группа adm. Проверить можно командой:
ls -l /var/log/nginx/ 
Для возможности чтения логов nginx, добавим пользователя zabbix в группу adm:
usermod -aG adm zabbix
После изменений прав доступа пользователя zabbix, необходимо перезапустить агент Zabbix:
systemctl restart zabbix-agent
Проверяем изменения, получаем последние записи лог-файла от имени пользователя zabbix:
sudo -u zabbix bash -c 'tail -f /var/log/nginx/newsite_com_ssl_access.log' 
Далее создадим элемент данных в Zabbix:
Key Value
Name HTTP Status Codes
Type Zabbix (active)
Key log[/var/log/nginx/newsite_com_ssl_access.log,"^(\S+) (\S+) (\S+) \[([\w:\/]+\s[+\-]\d{4})\] \"(\S+)\s?(\S+)?\s?(\S+)?\" (\d{3}|-)",,,,\8,,]
Type of Information numeric (unsigned)
Update Interval 1m

Регулярное выражение: ^(\S+) (\S+) (\S+) \[([\w:\/]+\s[+\-]\d{4})\] \"(\S+)\s?(\S+)?\s?(\S+)?\" (\d{3}|-) (\d+|-)\s?\"?([^\"]*)\"?\s?\"?([^\"]*)\" разбивает каждую строку лога на несколько групп. Код состояния HTTP находится в \8-й группе.

Рассмотрим вариант получения количества статус-кодов HTTP 50x с помощью скрипта на bash:

vi /opt/get_500_status_codes.sh
#!/bin/bash

get_date=`date +%d/%b/%Y:%H:`

cat /var/log/nginx/newsite_com_ssl_access.log | grep $get_date | awk '{print $9}' | grep -E "500|502|504|505" | wc -l
Меняем владельца скрипта и предоставляем права на выполнение:
chown zabbix /opt/get_500_status_codes.sh
chmod u+x /opt/get_500_status_codes.sh
Разрешаем выполнение удаленных команд агенту Zabbix:

vi /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
EnableRemoteCommands - Deprecated, use AllowKey=system.run
  • AllowKey=system.run[*]
    После внесенных изменений, необходимо перезапустить агент Zabbix:
    systemctl restart zabbix-agent

    Далее создадим элемент данных в Zabbix:
    Key Value
    Name HTTP Status Codes
    Type Zabbix agent
    Key system.run[sh /opt/get_500_status_codes.sh]
    Type of Information numeric (unsigned)
    Update Interval 1m
    Похожие новости
    Мониторинг реплики AlwaysON с помощью Zabbix

    Мониторим estimated recovery time репликационных баз SQL Server AlwaysON в Zabbix....

    Подробнее
    Мониторим сервисы Zimbra в Zabbix

    Мониторинг почтового сервера Zimbra в Zabbix....

    Подробнее
    Ограничение SFTP доступа группе пользователей в CentOS 8 / RHEL 8

    Ограничиваем доступ группе пользователей по протоколу SFTP и создадим синонимы директорий в дереве файловой...

    Подробнее
    Разворачиваем NGINX в Docker

    Создание кастомного образа nginx из Dockerfile....

    Подробнее
    Установка веб сервера NGINX в CentOS 8 / RHEL 8

    Установка последней стабильной версии популярного веб сервера NGINX....

    Подробнее
    Получаем валидные сертификаты SSL от Let's Encrypt для NGINX

    Получаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....

    Подробнее
    Комментарии (0)
    Новые комментарии
    sobir27 октября 2024 19:02

    Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в

    img
    К комментарию
    FidoNet25 октября 2024 22:04

    Цитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed

    img
    К комментарию
    sobir25 октября 2024 16:48

    Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

    img
    К комментарию
    FidoNet20 октября 2024 12:12

    Можт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit

    img
    К комментарию
    FidoNet19 октября 2024 17:48

    Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил

    img
    К комментарию
    sobir13 октября 2024 13:22

    Цитата: FidoNet Спасибо за статью. Остальные статьи что находил либо старые,

    img
    К комментарию
    Все комментарии
    Какой дистрибутив Linux вы часто используете?
    Календарь
    «    Октябрь 2024    »
    ПнВтСрЧтПтСбВс
     123456
    78910111213
    14151617181920
    21222324252627
    28293031 
    Подпишись на канал