Ответ
Nagios Core — это классическая, мощная система мониторинга с открытым исходным кодом, работающая по модели опросов (polling). Я использовал ее для мониторинга инфраструктуры: проверки доступности хостов (ping), состояния сервисов (HTTP, SSH, дисковое пространство, загрузка CPU) и сетевых устройств (SNMP).
Основные компоненты в моей практике:
- Ядро (Nagios Core): Планировщик проверок, обработчик событий и движок уведомлений.
- Плагины: Небольшие скрипты (Bash, Perl, Python), которые Nagios запускает для выполнения конкретных проверок. Например,
check_http,check_disk. Я часто писал кастомные плагины для проверки бизнес-логики приложений. - Конфигурационные файлы: Объекты (
hosts,services,contacts) описываются в текстовых файлах. - Веб-интерфейс: Для просмотра статуса, истории и активации ручных проверок.
Пример конфигурации сервиса для мониторинга свободного места на диске:
# /usr/local/nagios/etc/objects/localhost.cfg
define service {
use generic-service
host_name app-server-01
service_description Disk Space Root
check_command check_disk!20%!10%!/
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
notification_interval 60
contact_groups admins
}
Сильные стороны, с которыми я работал: чрезвычайная стабильность, гибкость за счет плагинов, развитое сообщество. Сложности: конфигурация через файлы может быть громоздкой для больших инфраструктур, веб-интерфейс устаревший. Для масштабирования использовал Nagios XI (коммерческая версия) или связку Core с фронтендом типа Icinga Web 2. Сейчас для новых проектов чаще выбираю современные системы на основе временных рядов (Prometheus) или SaaS-решения, но опыт с Nagios дает глубокое понимание принципов мониторинга.