Nginx – веб-сервер, который используется для статического контента, обратного прокси или балансировки нагрузки веб-трафика.
Nginx известен своей надежностью, гибкостью и высокой производительностью.
Как и с любым сервером, важно контролировать что Nginx функционирует должным образом, и решать любые проблемы, которые могут с ним возникнуть.
Ознакомиться с тарифами VPS хостинга можно тут
Подготовка
Прежде чем мы начнем изучать процесс мониторинга Nginx с помощью Zabbix, необходимо убедиться, что у нас есть все необходимое:
• Сервер с установленным Nginx, за которым вы хотите наблюдать
• Запущенный сервер Zabbix
• Установленный и настроенный агент Zabbix на сервере, на котором работает Nginx.
Настройка Nginx
Откройте файл /etc/nginx/conf.d/stub_status.conf любым удобным вам редактором и вставьте следующий текстовый блок:
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Эти настройки позволят серверу генерировать базовую информацию о состоянии на странице /basic_status, доступной только с этого же сервера, чтобы наш агент мог получить ее.
Теперь давайте проверим, работает ли процесс Nginx с новыми настройками, выполнив следующие команды:
Проверка правильности конфигурации:
nginx -t
Перезагрузка веб сервера nginx:
systemctl restart nginx
Затем давайте проверим, работает ли новая страница состояния с помощью curl:
curl http://127.0.0.1/basic_status
Настройка логов веб сервера Nginx
Вы должны проверить, генерирует ли Nginx необходимые для Zabbix логи в файле /etc/nginx/nginx.conf
Для того, что бы Zabbix мог работать с логами, необходимо закомментировать строки access_log, error_log и вставить следующие строки:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
error_log /var/log/nginx/error.log notice;
access_log /var/log/nginx/access.log main;
После внесенных правок перезагружаем веб сервера nginx:
systemctl restart nginx
Настройка Zabbix
Предполагая, что все предыдущие инструкции выполнены, теперь необходимо создать хост для этого сервера и добавить к нему Nginx с помощью шаблона Zabbix agent, или добавить его к уже существующему.
Назначьте шаблон хосту с установленным Nginx, перейдя в Configuration → Hosts → Выберите хост → Templates → Add.
Если все правильно, вы сможете работать с данными стандартного шаблона:
- Общие показатели: использование процессора и памяти, количество открытых подключений к серверу.
- Метрики запросов: среднее время отклика на запрос, процент запросов, приводящих к ошибке, количество запросов, обрабатываемых Nginx в секунду.
- Метрики SSL: количество обработанных Nginx рукопожатий в секунду, количество поддерживаемых Nginx шифров и количество ошибок сертификатов, с которыми сталкивается Nginx.
- Время работы: отслеживает, как долго Nginx работает без простоев.