Skip to main content

Мониторинг правильности конфигов Nginx

Для проверки корректности файлов конфигурации Nginx используется команда nginx -t. Если Nginx настроен правильно, в терминал будет выведено две строки:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Однако вывод данной команды всегда идёт в поток ошибок (STDERR), не зависимо от того, успешно завершилась проверка или нет. Для возможности использования поиска с помощью grep необходимо перенаправить вывод в стандартный поток (STDOUT). Таким образом, можно проверить наличие обеих строк следующими скриптами:

nginx_syntax.sh:

#!/bin/sh
if nginx -t 2>&1 | grep 'syntax is ok' > /dev/null
then echo 0
else echo 1
fi

nginx_conftest.sh:

#!/bin/sh
if nginx -t 2>&1 | grep 'test is successful' > /dev/null
then echo 0
else echo 1
fi

Скрипты можно повесить на мониторинг в Zabbix (обязательно с правами sudo) и выводить триггер, если в результате проверки скрипт выдал значение «1».

Если же вам не принципиально знать, какая именно проверка завершилась неуспешно, а важно лишь понимать, что есть проблемы с настройкой Nginx, можно ограничиться одним более простым скриптом, возвращающим стандартный exit code (exit status):

#!/bin/sh
nginx -t > /dev/null 2>&1
echo $?

Аналогично предыдущим скриптам: 0 — ошибок нет, 1 — есть ошибки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *