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

Monitoring / Zabbix 17-11-2023, 15:51 sobir 4 477 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)
    Новые комментарии
    komronu8 сентября 2022 18:23

    Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда

    img
    К комментарию
    sobir26 августа 2022 10:43

    Можно ещё так: 1. Создаем отдельную сеть для наших контейнеров docker network

    img
    К комментарию
    komronu22 августа 2022 15:12

    Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible

    img
    К комментарию
    sobir19 августа 2022 18:00

    Думаю в статье необходимо также описать процесс установки Ansible.

    img
    К комментарию
    sobir17 октября 2021 11:40

    Принудительное обновление сертификата: certbot certonly --force-renew -d

    img
    К комментарию
    sobir3 июля 2021 14:19

    Можно, но я решил описать процесс копирования ключей более подробно.

    img
    К комментарию
    Все комментарии
    Какой дистрибутив Linux вы часто используете?
    Календарь
    «    Июль 2024    »
    ПнВтСрЧтПтСбВс
    1234567
    891011121314
    15161718192021
    22232425262728
    293031 
    Подпишись на канал