Настройка Nagios на Raspberry Pi для мониторинга сети

Кому и зачем это нужно
- Сетевым администраторам и энтузиастам, которым важно знать статус серверов, роутеров и IoT-устройств.
- Малому бизнесу и домашним пользователям, которые хотят получать оповещения при падении сайтов или сервисов.
Определение: Nagios — это система мониторинга состояния хостов и сервисов, которая проверяет их работоспособность и отправляет оповещения при проблемах.
Основные варианты установки
Вы можете установить мониторинг двумя способами:
- Быстрый: записать готовый образ NEMS (Nagios Enterprise Monitoring Server) на microSD и сразу получить веб-интерфейс с преднастроенными шаблонами.
- Ручной: установить Nagios Core на существующую систему Raspberry Pi OS и настраивать вручную.
Выбор зависит от опыта и требований. NEMS экономит время. Ручная установка даёт полный контроль.
Требования и рекомендации по железу
- microSD 16 ГБ или больше, класс не ниже UHS-I. Для логов и плагинов лучше 32 ГБ.
- Raspberry Pi 3 или новее для оптимальной производительности. Pi Zero и старые модели работают, но медленнее.
- Источник питания 5V/2.5A или лучше.
- Для надёжности используйте UPS и внешний SSD, если ожидается много данных.

Быстрая установка: NEMS на Raspberry Pi
Преимущества NEMS:
- Готовый образ с веб-консолью.
- Преднастроенные плагины и шаблоны.
- Подходит для быстрого развёртывания и теста сети.
Пошагово:
- Подготовьте microSD 16 ГБ или больше.
- Скачайте образ NEMS для Raspberry Pi с официального сайта NEMS.
- Скачайте Etcher (или аналог) для записи образа.
Действия в Etcher:
- Выберите Flash from file и укажите скачанный образ.
- Etcher автоматически обнаружит целевой диск. Если нет, нажмите Select target и выберите SD-карту.
- Нажмите Flash.
Дождитесь верификации. Извлеките SD-карту и вставьте в Raspberry Pi. При первом запуске NEMS автоматически увеличит файловую систему и проведёт первоначальную настройку.
На приглашении введёте:
sudo nems-initСледуйте подсказкам для установки локали и создания учётной записи.
Откройте в браузере:
https://nems.localЕсли имя не резолвится, используйте IP-адрес Pi, например https://192.168.1.10

Важно: NEMS запускается под HTTPS, поэтому браузер может предупредить о самоподписанном сертификате при первом заходе.
Ручная установка: Nagios Core на Raspberry Pi
Когда нужна гибкость и точные настройки, ставьте Nagios Core вручную.
- Обновите систему:
sudo apt update && sudo apt upgrade -y- Перезагрузите:
sudo reboot- Установите Nagios (пакет для Debian/Ubuntu — nagios3 в старых репозиториях):
sudo apt install nagios3 -yПрограмма установки попросит создать административную учётную запись. Запомните пароль.
Доступ к веб-интерфейсу: http://
Примечание: в новых релизах пакета могут называться иначе (nagios4, nagios-core). Проверяйте репозиторий вашей Raspberry Pi OS.
Первичная конфигурация Nagios
Конфигурационные файлы Nagios хранятся в /etc/nagios3 или /etc/nagios4 в зависимости от версии. Создайте файл для своих хостов:
sudo nano /etc/nagios3/conf.d/monitor.cfgПример описания хоста — игровой сервер:
define host {
use generic-host
host_name gameserver
alias gameserver
address 192.168.1.22
}Шаблон generic-host находится в /etc/nagios3/conf.d/generic-host_nagios2.cfg. Шаблоны ускоряют настройку.
После правки сохраните файл (Ctrl+X, затем Y) и перезагрузите Nagios:
sudo service nagios3 reloadПроверьте статус сервиса:
systemctl status nagios3Настройка проверок через веб-интерфейс
Вы можете добавлять проверки через Nconf в веб-контроле (NEMS) или редактировать конфиги вручную.
Пример создания проверки пинга через веб-интерфейс Nconf:
- Нажмите Nconf в консоли NagiosPi.
- В левой колонке выберите Hosts.
- Справа нажмите Add.
- Укажите hostname, IP и alias.
- Нажмите Submit.
- Перейдите в Services > Add.
- Установите Add additional services to host в check_ping и нажмите Add.
- Задайте задержки и интервалы (не делайте их слишком короткими) и нажмите Submit.
- В меню нажмите Generate Nagios Config.
- Нажмите Deploy.

После этого Nagios начнёт опрашивать устройство. В случае недоступности статус изменится в веб-интерфейсе.
Мониторинг доступности и статуса
Перейдите в NagiosPi в раздел Services. Там отображаются все проверки. Нажимая на элемент, вы увидите подробную информацию: последние проверки, сообщения об ошибках, время отклика.
Используйте экран статуса для быстрого реагирования на инциденты и для первичной диагностики.

Частые проверки и плагины
- check_ping — пинг хоста.
- check_tcp — проверка TCP-порта (HTTP, SSH и т. п.).
- check_http — проверка HTTP/HTTPS-сервиса.
- check_disk, check_load — ресурсы системы на хосте.
Плагины лежат в /usr/lib/nagios/plugins или /usr/local/nagios/libexec.
Оповещения и действия при инцидентах
Nagios может отправлять оповещения по электронной почте, SMS (через шлюз) или в мессенджеры (через webhook). В настройках укажите контакты и шаблоны оповещений. Начните с e-mail для тестирования.
Пример: добавьте контакт в /etc/nagios3/conf.d/contacts.cfg и настройте notifications_enabled для сервиса.
Рекомендации по настройке интервалов и порогов
- interval — время между проверками. Для большинства хостов 1–5 минут достаточно.
- retry_interval — интервал пере-проверки при ошибке, например 1 минута.
- max_check_attempts — число попыток до перехода в состояние PROBLEM. Для сокращения ложных срабатываний ставьте 2–4.
Не ставьте слишком частые проверки: они нагружают сеть и Pi.
Безопасность и жёсткая настройка
- Закройте доступ к веб-интерфейсу извне. Разрешите доступ только из локальной сети или через VPN.
- Используйте HTTPS и обновляйте сертификаты.
- Регулярно обновляйте систему и Nagios.
- Настройте брандмауэр (ufw) для ограничения входящих соединений.
Пример базовых правил ufw:
sudo ufw allow from 192.168.1.0/24 to any port 80
sudo ufw allow from 192.168.1.0/24 to any port 443
sudo ufw enableРезервное копирование и обновление
- Делайте бэкап /etc/nagios/ и /var/log/nagios регулярнo.
- Снимайте образ SD-карты перед крупными изменениями.
- При обновлениях проверяйте совместимость плагинов.
Простая команда для архива конфигурации:
sudo tar czf /home/pi/nagios-backup-$(date +%F).tgz /etc/nagios* /usr/local/nagiosОтладка и решение проблем
Проблемы и типовые решения:
- Nagios не запускается: проверьте журнал systemctl status nagios3 и /var/log/nagios/nagios.log.
- Проверки не выполняются: проверьте права на плагины и пути.
- Веб-интерфейс недоступен: проверьте webserver (Apache/Nginx), порты и брандмауэр.
Проверка конфигурации перед перезагрузкой:
sudo nagios -v /etc/nagios3/nagios.cfgВажно: всегда прогоняйте валидацию конфигурации перед reload/deploy.
Когда Nagios может не подойти
- Если вам нужен глубокий анализ метрик в реальном времени с хранением временных рядов, лучше выбрать Prometheus + Grafana.
- Для управляемых облачных инстансов может быть выгоднее использовать облачные сервисы мониторинга с SLA.
- Nagios хорошо подходит для проверок статуса и базовой телеметрии, но не оптимален для высокочастотного мониторинга миллисекундных метрик.
Масштабирование и распределение нагрузки
Для больших сетей рассмотрите:
- Разделение на центральный сервер и удалённые NRPE/NSClient++ агентов.
- Использование нескольких Raspberry Pi для распределения опросов.
- Централизованный сбор логов и временных рядов (Elasticsearch/InfluxDB/Grafana) при необходимости.
Чеклист перед вводом в эксплуатацию
- SD-карта 16 ГБ или больше установлена и протестирована.
- NEMS или Nagios установлен и доступен по веб-интерфейсу.
- Добавлены ключевые хосты и базовые проверки (ping, ssh, http).
- Настроены контакты и тестовое оповещение.
- Включено регулярное резервное копирование конфигурации.
- Проверена безопасность (брандмауэр, HTTPS, VPN при необходимости).
- Документирован процесс восстановления и обновлений.
Критерии приёмки
- Система успешно опрашивает минимум 90% добавленных устройств без ошибок в течение 24 часов.
- Оповещения доставляются на почту/в мессенджер, проверка тестового инцидента прошла успешно.
- Конфигурация сохранена и заархивирована, инструкции по восстановлению доступны.
Роли и обязанности
Администратор:
- Устанавливает и обновляет Nagios/NEMS.
- Настраивает бэкапы и безопасность. Оператор:
- Следит за оповещениями, выполняет первые шаги при инциденте.
- Документирует причины и решения.
Пример процесса реагирования (runbook)
- Получено оповещение о недоступности хоста.
- Проверить статус в Nagios и логи сервиса.
- Выполнить ping и traceroute к хосту.
- Если хост не отвечает — перезагрузить коммутатор/маршрутизатор, если доступно.
- Если проблема на удалённом сервере — открыть тикет у владельца сервера.
- После восстановления задокументировать инцидент.
Decision flow для действия при недоступности хоста
flowchart TD
A[Оповещение: хост недоступен] --> B{Доступен ли хост по ping?}
B -- Да --> C[Проверить сервисы 'TCP/HTTP/SSH']
B -- Нет --> D[Проверить сетевое подключение и шлюзы]
D --> E{Проблема в сети?}
E -- Да --> F[Перезагрузить сетевое оборудование]
E -- Нет --> G[Проверить сам хост, связаться с владельцем]
C --> H{Сервис упал?}
H -- Да --> I[Перезапустить сервис]
H -- Нет --> J[Мониторить и ждать повторного оповещения]Локальные альтернативы и подводные камни
- Zabbix — более «всё-в-одном» с хранением метрик и шаблонами.
- Prometheus + Grafana — для метрик и визуализации временных рядов.
Проблемы с SD-картой: частые записи логов могут быстро износить карту. Для долговечности используйте внешний SSD или перенесите логи на NAS.
Совместимость и миграция
- При переходе с Nagios3 на Nagios4 проверьте конфигурационные директивы и плагины.
- Если используете NRPE, следите за версиями и безопасностью канала.
Краткая методология тестирования (mini-methodology)
- Настройте один хост и одну базовую проверку (ping).
- Убедитесь, что оповещения доходят.
- Добавьте ещё 5–10 хостов и проверьте нагрузку.
- Отработайте сценарий восстановления и документируйте результаты.
Завершение и рекомендации
Nagios на Raspberry Pi — практичный инструмент для мониторинга доступности и базовых метрик. Начните с малого: базовый набор проверок, одна контактная группа и регулярные бэкапы. Расширяйте мониторинг постепенно и документируйте изменения.
Важно: не настраивайте слишком много проверок сразу. Это усложняет выявление проблем и может привести к ложным срабатываниям.
Короткое объявление для команды
Хотите простой мониторинг с невысокими затратами? Установите NEMS на Raspberry Pi и получите готовую консоль Nagios для контроля доступности сервисов и оповещений.
Короткая сводка
- NEMS — быстрый старт.
- Ручная установка — гибкость.
- Следите за интервалами и нагрузкой.
- Обеспечьте безопасность и бэкапы.
