Что такое Nagios?

«Что такое Nagios?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Nagios Core — это классическая, мощная система мониторинга с открытым исходным кодом, работающая по модели опросов (polling). Я использовал ее для мониторинга инфраструктуры: проверки доступности хостов (ping), состояния сервисов (HTTP, SSH, дисковое пространство, загрузка CPU) и сетевых устройств (SNMP).

Основные компоненты в моей практике:

  1. Ядро (Nagios Core): Планировщик проверок, обработчик событий и движок уведомлений.
  2. Плагины: Небольшие скрипты (Bash, Perl, Python), которые Nagios запускает для выполнения конкретных проверок. Например, check_http, check_disk. Я часто писал кастомные плагины для проверки бизнес-логики приложений.
  3. Конфигурационные файлы: Объекты (hosts, services, contacts) описываются в текстовых файлах.
  4. Веб-интерфейс: Для просмотра статуса, истории и активации ручных проверок.

Пример конфигурации сервиса для мониторинга свободного места на диске:

# /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 дает глубокое понимание принципов мониторинга.