Мониторинг статус-кодов HTTP NGINX в Zabbix
Monitoring / Zabbix 21-06-2021, 11:23 sobir 1 283 0
Пользователь 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 с помощью скрипта на bash:
vi /opt/get_response_http_codes.sh
#!/bin/bash
tail -n 1 /var/log/nginx/newsite_com_ssl_access.log | awk '{print $9}'
Меняем владельца скрипта и предоставляем права на выполнение:
chown zabbix /opt/get_response_http_codes.sh
chmod u+x /opt/get_response_http_codes.sh
Разрешаем выполнение удаленных команд агенту Zabbix:
vi /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
После внесенных изменений, необходимо перезапустить агент Zabbix:
systemctl restart zabbix-agent
Далее создадим элемент данных в Zabbix:
Key | Value |
---|---|
Name | HTTP Status Codes |
Type | Zabbix agent |
Key | system.run[sh /opt/get_response_http_codes.sh] |
Type of Information | numeric (unsigned) |
Update Interval | 1m |
Мониторим estimated recovery time репликационных баз SQL Server AlwaysON в Zabbix....
ПодробнееОграничиваем доступ группе пользователей по протоколу SFTP и создадим синонимы директорий в дереве файловой...
ПодробнееУстановка последней стабильной версии популярного веб сервера NGINX....
ПодробнееПолучаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....
ПодробнееНовые комментарии
Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда

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

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

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

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

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

Какой дистрибутив Linux вы часто используете?
Календарь
« Июнь 2023 » | ||||||
---|---|---|---|---|---|---|
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |