Большинство Web-сервисов рассчитаны на непрерывную круглосуточную работу. Поэтому корректная настройка мониторинга помогает повысить стабильность работы этой роли и заранее предотвратить возникновение проблем.
Подробно разберем ключевые параметры для мониторинга.
Сразу сделаем оговорку, что рассматриваются только параметры, относящиеся к работе Web-сервера. Подразумевается, что стандартные параметры уже мониторятся (доступность, серверные ресурсы, состояние ОС). В качестве системы мониторинга рекомендуем использовать Zabbix.
Мониторинг служб веб-сервера
Проверка работы веб-сервера
Zabbix может проверять доступность веб-сервера как на сетевом, так и на уровне приложения:
- Проверка порта: net.tcp.service[http] — доступность по порту;
- Возврат нужного HTTP-кода;
- Время отклика;
- Наличие ключевых слов в ответе;
- Авторизацию (если нужно).
Статистика и логи
Можно интегрировать Nginx или Apache с Zabbix:
- Через custom items (например, модуль stub_status у Nginx);
- Через лог-парсинг с zabbix-agent + log[] для отслеживания ошибок (log[/var/log/nginx/error.log,ERROR]);
- Для Apache — можно использовать модуль mod_status и web-сценарий.
Состояние сертификатов
Есть готовые шаблоны и внешние скрипты, которые позволяют отслеживать срок действия SSL-сертификатов и предупреждать заранее (например, за 7 дней до истечения).
Мониторинг баз данных (СУБД)
Доступность
- net.tcp.service[mysql] — проверка доступности порта.
- Web-сценарий или пользовательский ключ — попытка авторизоваться и выполнить простой SQL-запрос.
Метрики производительности
Для MySQL и PostgreSQL доступны официальные шаблоны Zabbix:
- Активные соединения;
- Задержки запросов;
- Использование кэша;
- Долго выполняющиеся запросы и блокировки;
- Размер базы данных.
Необходимо настроить учетную запись с правами мониторинга и добавить подключение к СУБД через внешний скрипт или агент.
Резервное копирование
Проверяется через cron-джобы и log[]-мониторинг — например, наличие строки об успешном бэкапе. Также можно проверять наличие свежих бэкап-файлов (vfs.file.exists, vfs.file.time).
Сетевой мониторинг и безопасность
Проверка открытых портов
- net.tcp.listen[порт] — проверка, слушает ли порт;
- Можно добавить периодический nmap-скрипт и обрабатывать его результат.
Брандмауэр и инциденты
Через парсинг логов можно отслеживать:
- Заблокированные IP (из fail2ban, iptables);
- Попытки входа по SSH (log[/var/log/auth.log]);
- Неудачные авторизации и аномальную активность.
Zabbix поддерживает расширенную работу с логами через Zabbix Agent 2 и плагин logrotation.
DDoS и сетевые аномалии
- Количество соединений по IP (net.tcp.connections);
- SYN-флуды и пиковые соединения можно обнаружить через Zabbix Trapper и внешние скрипты (например, на базе conntrack, ss, iftop).
Мониторинг вышеуказанных параметров позволяет заранее обнаружить большинство потенциальных проблем. Стоит отметить, что не обязательно создавать кастомные шаблоны в ручную, поскольку в Zabbix доступны достаточно хорошие стандартные шаблоны:
- Template Nginx / Apache;
- Template MySQL / PostgreSQL;
- Template HTTPS certificate by Zabbix agent.
Шаблоны ускоряют развертывание и обеспечивают проверенные элементы данных и триггеры.
Нужна помощь? Удаленную поддержку пользователей и обслуживание серверов мы осуществляем в рамках услуги ИТ-аутсорсинг. Также возможны разовые проектные работы.
