Акции и промокоды Отзывы о школах

Как Nagios помогает контролировать PHP-сервисы на Guzzle

#Блог

Привет, коллеги! Сегодня поговорим о Nagios – динозавре в мире мониторинга IT-инфраструктуры, который, несмотря на свой почтенный возраст, до сих пор остается одним из самых надежных инструментов для отслеживания работоспособности серверов и сервисов.

В этом руководстве я расскажу все, что вам нужно знать о Nagios – от установки до тонкой настройки и создания собственных плагинов.

Содержание
  1. Что такое Nagios и зачем он нужен?
  2. Установка и настройка Nagios
  3. Подготовка системы к установке
  4. Установка Nagios Core шаг за шагом
  5. Установка Nagios XI: особенности и преимущества
  6. Как работает мониторинг в Nagios
  7. Принципы мониторинга и основные концепции
  8. Настройка мониторинга Windows и Linux серверов
  9. Добавление нестандартных устройств и сервисов
  10. Плагины и расширения Nagios
  11. Популярные плагины для мониторинга
  12. Как создать собственный плагин?
  13. Настройка оповещений в Nagios
  14. Базовая настройка email-уведомлений
  15. Интеграция с современными мессенджерами
  16. SMS-оповещения (для совсем параноидальных)
  17. Несколько советов по настройке оповещений:
  18. Лучшие практики и советы по использованию Nagios
  19. Оптимизация производительности
  20. Безопасность (потому что параноиком быть полезно)
  21. Масштабирование
  22. То, о чём не пишут в документации
  23. Nagios Core vs Nagios XI: что выбрать?
  24. Сравнительная таблица функционала
  25. Когда выбирать Core:
  26. Когда стоит присмотреться к XI:
  27. Секретный третий вариант:
  28. Альтернативы Nagios
  29. Сравнительная таблица альтернатив
  30. Prometheus + Grafana: Модный стек
  31. Zabbix: Серьезный конкурент
  32. Почему же люди всё еще используют Nagios?
  33. Заключение
  34. Что мы узнали:
  35. Рекомендуем посмотреть курсы по системному администрированию
Свернуть Развернуть

Что такое Nagios и зачем он нужен?

Знаете, что общего между опытным системным администратором и параноиком? Правильно – оба постоянно ожидают, что что-то пойдет не так. И если параноику это не помогает, то админу – очень даже, особенно когда у него есть Nagios.

Nagios – это, если говорить простым языком, ваши глаза и уши в мире IT-инфраструктуры. Представьте себе самого въедливого QA-специалиста, который круглосуточно мониторит каждый сервер, каждый сервис и каждый порт в вашей сети. Теперь представьте, что этот QA еще и никогда не спит, не ходит на обед и не просит повышения зарплаты – это и есть Nagios.

Что умеет этот неутомимый страж порядка:

  • Мониторит все, что имеет IP-адрес (а иногда и то, что его не имеет)
  • Отслеживает состояние серверов, сетевого оборудования, приложений и даже кофемашины (если она подключена к сети, конечно)
  • Оповещает вас о проблемах быстрее, чем разгневанный пользователь успеет написать тикет
  • Собирает статистику производительности, которая потом поможет вам объяснить начальству, почему пора обновить железо

Особенно приятно то, что базовая версия (Nagios Core) абсолютно бесплатна. Да, у нее интерфейс как у Windows 95, но зато она работает как швейцарские часы. А если вам нужен красивый дашборд и упрощенная настройка – есть платная версия Nagios XI, которая превращает суровый мониторинг в почти приятное занятие.

И знаете что? В отличие от многих современных решений, которые пытаются быть всем для всех, Nagios делает одну вещь, но делает ее хорошо – мониторит вашу инфраструктуру так, что вы можете спать спокойно. Ну, или хотя бы знать, почему вам не спится.

Установка и настройка Nagios

Подготовка системы к установке

Давайте поговорим о том, как поставить Nagios на вашу систему. И нет, это не так просто, как установить очередное приложение из App Store (привет, избалованные пользователи macOS!).

Прежде чем мы начнем, убедимся, что у нас есть все необходимое. Это как сборка мебели из IKEA – сначала нужно убедиться, что все детали на месте, иначе потом придется совершать героический забег до магазина.

Минимальные требования для установки:

  • Linux-система (да, Windows тоже можно, но зачем вы так с собой?)
  • Apache веб-сервер (потому что кто-то должен показывать эти красивые графики)
  • PHP (куда же без него в современном мире)
  • Компилятор GCC и make (для сборки из исходников)
  • OpenSSL (потому что безопасность – это не просто модное слово)

Установка Nagios Core шаг за шагом

Теперь давайте установим эту прекрасную систему. Обещаю, это будет увлекательнее, чем читать документацию к принтеру.

  • Сначала обновим систему (потому что работать со старыми пакетами – это как ходить в магазин с дырявым пакетом):

sudo apt update

sudo apt upgrade

  • Установим необходимые пакеты (список выглядит как ingredients list для очень сложного технического коктейля):

sudo apt install wget unzip vim curl gcc openssl build-essential libgd-dev libssl-dev libapache2-mod-php php-gd php apache2

  • Скачаем и распакуем Nagios (актуальную версию лучше проверить на официальном сайте, если вы не хотите устанавливать музейный экспонат):

curl -SL https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.6/nagios-4.4.6.tar.gz | tar -xzf -

  • Компилируем и устанавливаем (держите пальцы крестиком):

./configure
make all
sudo make install

Установка Nagios XI: особенности и преимущества

А теперь о прекрасном – о Nagios XI. Это как пересесть с Жигулей на Tesla (только без автопилота и с меньшим риском самовозгорания).

XI отличается от Core тем, что:

  • Имеет современный веб-интерфейс (да, в 2024 году это все еще считается преимуществом)
  • Включает мастер настройки (для тех, кто не хочет писать конфиги руками)
  • Предоставляет расширенную отчетность (чтобы было что показать начальству)
  • Имеет встроенную систему управления плагинами (никаких больше танцев с бубном при установке дополнений)

Установка XI проще, чем Core – скачиваете установщик с официального сайта, запускаете и следуете инструкциям. Правда, за это удовольствие придется заплатить – лицензия стоит как хороший кофе на протяжении года. Но если вы цените свое время и нервы – оно того стоит.

Как работает мониторинг в Nagios

Принципы мониторинга и основные концепции

А теперь давайте заглянем под капот Nagios и посмотрим, как эта машина работает изнутри. Представьте себе самого дотошного охранника, который каждые пять минут обходит здание и проверяет, всё ли в порядке – примерно так и работает Nagios.

В основе мониторинга лежит несколько ключевых концепций:

  • Хосты – это всё, что имеет IP-адрес: серверы, роутеры, принтеры и, возможно, даже ваша умная кофеварка (если вы достаточно безумны, чтобы подключить её к сети).
  • Сервисы – это то, что работает на хостах: веб-серверы, базы данных, почтовые службы и прочие digital-радости.
  • Проверки – периодические тесты, которые Nagios выполняет, чтобы убедиться, что всё работает как надо (или хотя бы просто работает).

Настройка мониторинга Windows и Linux серверов

Теперь самое интересное – как заставить всё это работать с реальными серверами.

Для Windows:

  • Установите SNMP-сервис (да, тот самый, который вы обычно отключаете первым делом)
  • Настройте community string (это как пароль, только хуже)
  • Укажите IP-адреса, с которых разрешено мониторить (иначе любой script kiddie сможет узнать, что у вас там творится)

Для Linux:

# Установка SNMP
sudo apt-get install snmpd
# Настройка конфига (предупреждение: может вызвать головную боль)
sudo nano /etc/snmp/snmpd.conf

Добавление нестандартных устройств и сервисов

А здесь начинается настоящее веселье. Хотите мониторить температуру в серверной? Уровень кофе в кофемашине? Количество багов в продакшене? Теоретически, Nagios может мониторить всё это – было бы желание написать соответствующий плагин.

Вот пример конфига для мониторинга какого-нибудь экзотического устройства:

define host {
use generic-host
host_name mystery-device
alias That Thing Nobody Knows What It Does
address 192.168.1.42
check_command check-host-alive
}

Помните: возможности Nagios ограничены только вашей фантазией и способностью писать скрипты. И, конечно, здравым смыслом – но кого это когда-то останавливало?

Плагины и расширения Nagios

Популярные плагины для мониторинга

Знаете, что общего между конструктором LEGO и Nagios? Правильно – всё самое интересное начинается с дополнительных наборов. В мире Nagios эти наборы называются плагинами, и без них ваша система мониторинга будет такой же полезной, как швейцарский нож без лезвий.

Топ плагинов, без которых жизнь не жизнь:

Плагин Описание За что его любят
check_disk_snmp.pl Следит за дисками по SNMP Предупреждает до того, как закончится место (и начнется паника)
check_tcp Проверяет TCP-порты Простой как валенок, надежный как швейцарские часы
check_http Мониторит веб-сервисы Узнаёт о падении сайта раньше, чем ваш директор
check_load Отслеживает нагрузку на CPU Помогает понять, когда пора обновлять железо
check_mailq Проверяет почтовые очереди Спасает от неловких вопросов «А почему письма не доходят?»

Как создать собственный плагин?

А теперь самое интересное – создание собственного плагина. Это как написать свой первый Hello World, только полезнее.

Вот пример простейшего плагина на Bash (потому что Python для хипстеров):

#!/bin/bash

# Проверяем что-нибудь важное
IMPORTANT_METRIC=$(do_something_important)

if [ $IMPORTANT_METRIC -gt 90 ]; then
echo "CRITICAL - Всё очень плохо! Метрика: $IMPORTANT_METRIC"
exit 2
elif [ $IMPORTANT_METRIC -gt 75 ]; then
echo "WARNING - Становится тревожно. Метрика: $IMPORTANT_METRIC"
exit 1
else
echo "OK - Всё хорошо, можно пить кофе. Метрика: $IMPORTANT_METRIC"
exit 0
fi

Правила создания плагинов простые:

  • Плагин должен что-то проверять (капитан очевидность одобряет)
  • Возвращать статус: 0 (OK), 1 (WARNING), 2 (CRITICAL), 3 (UNKNOWN)
  • Выводить понятное сообщение (чтобы в 3 часа ночи можно было понять, что случилось)

Можно писать на любом языке программирования – хоть на Brainfuck, если вы достаточно отважны. Главное, чтобы работало и не падало в самый неподходящий момент.

И помните: хороший плагин – это как хороший анекдот. Он должен быть:

  • Коротким
  • Понятным
  • Делать то, что от него ожидают
  • Не вызывать недоумения у коллег

P.S. Если ваш плагин длиннее 100 строк – возможно, вы что-то делаете не так. Или делаете что-то очень крутое, в этом случае – продолжайте!

Настройка оповещений в Nagios

Знаете, что хуже падения сервера в 3 часа ночи? Правильно – не узнать об этом до утра. Поэтому давайте настроим систему оповещений так, чтобы вы всегда были в курсе происходящего (даже если иногда предпочли бы не быть).

Базовая настройка email-уведомлений

Начнем с классики – email-оповещений. Да, email в 2024 году звучит как-то старомодно, но он всё еще работает (в отличие от некоторых ваших серверов):

define contact{
contact_name        admin
alias               Главный по тарелочкам
email               admin@company.com
service_notification_period 24x7
host_notification_period    24x7
service_notification_options w,u,c,r
host_notification_options   d,u,r
service_notification_commands   notify-by-email
host_notification_commands  host-notify-by-email
}

Интеграция с современными мессенджерами

А теперь давайте добавим что-нибудь более современное. Например, Slack или Telegram – потому что кто сейчас читает почту быстрее, чем мессенджеры?

Для Slack:

#!/bin/bash
# Да, я знаю что curl для интеграции со Slack это не очень элегантно,
# но зато работает!
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"$NAGIOS_LONGSERVICEOUTPUT\"}" \
$SLACK_WEBHOOK_URL

Для Telegram:

import requests
TOKEN = "ваш_токен_бота"
CHAT_ID = "ваш_чат_id"
MESSAGE = f"🚨 {service_output}"  # Эмодзи делают всё лучше!
requests.get(f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&text={MESSAGE}")

SMS-оповещения (для совсем параноидальных)

Потому что иногда интернет может отказать, а телефонная сеть всё ещё работает:

# Предполагаем, что у вас есть GSM-модем или SMS-шлюз
sendsms.sh "+1234567890" "CRITICAL: Всё сломалось! 🔥"

Несколько советов по настройке оповещений:

  1. Не спамьте себя – настройте правильные интервалы между уведомлениями, если не хотите получить 1000 SMS о том, что сервер лёг
  2. Группируйте уведомления – получать 50 отдельных сообщений о связанных проблемах не очень весело
  3. Используйте разные каналы для разных уровней критичности:
    • CRITICAL -> SMS + Telegram + Slack + Email + Звонок
    • WARNING -> Telegram + Slack
    • OK -> Только в лог (потому что хорошие новости могут подождать)

Диаграмма, сравнивающая каналы оповещений в Nagios по скорости получения и уровню критичности

И помните: система оповещений должна быть как хороший охранник – бдительной, но не паникующей по пустякам. Иначе вы рискуете получить синдром «мальчика, который кричал ‘Волк!'», только вместо волка будет «диск заполнен на 80%».

Лучшие практики и советы по использованию Nagios

Знаете, что общего между Nagios и хорошим виски? Правильно – чтобы получить максимум удовольствия от использования, нужно знать некоторые тонкости. Сейчас расскажу о практиках, которые я собрал за годы общения с этим замечательным инструментом (с Nagios, не с виски).

Оптимизация производительности

  • Распределение проверок

# В nagios.cfg
service_inter_check_delay_method=sm
max_service_check_spread=30
check_result_reaper_frequency=1

Это заставит Nagios распределять проверки равномерно, а не устраивать DDoS вашей инфраструктуре каждые 5 минут.

  • Кэширование проверок Если у вас 100 сервисов проверяют один и тот же хост – возможно, стоит закэшировать результат:

check_host_freshness=1
host_freshness_check_interval=60

Безопасность (потому что параноиком быть полезно)

  1. Ограничение доступа
  • Используйте SSL для веб-интерфейса (потому что HTTP в 2024 – это моветон)
  • Настройте двухфакторную аутентификацию (да, для Nagios тоже можно)
  • Ограничьте доступ по IP (потому что не все должны видеть ваши проблемы)
  1. Изоляция плагинов

# Создаём отдельного пользователя для плагинов
useradd -r -s /sbin/nologin nagios_plugins

Масштабирование

Когда ваша инфраструктура растёт быстрее, чем зарплата:

  • Распределённый мониторинг

define host {
name                remote-collector
check_command      check-collector-alive
max_check_attempts 5
check_interval    5
}

  • Иерархическая структура

# Родительские зависимости
parent_host=gateway
child_hosts=server1,server2,server3

То, о чём не пишут в документации

  1. Не мониторьте всё подряд
  • Да, Nagios может следить за температурой кофе в вашей кружке, но нужно ли?
  • Фокусируйтесь на критически важных метриках
  1. Документируйте свои костыли настройки

# Комментарии в конфигах спасут вашу карму
# Этот хак нужен потому что сервер X
# иногда притворяется мёртвым

  1. Тестируйте на staging
  • Потому что тестировать новые проверки на продакшене – путь к увлекательному разговору с руководством

И помните: Nagios как хороший дворецкий – должен быть незаметным, пока всё хорошо, но всегда готовым сообщить о проблемах. И да, иногда он может быть занудным, но это для вашего же блага!

Nagios Core vs Nagios XI: что выбрать?

Давайте честно поговорим о выборе между бесплатной и платной версиями – это как выбор между Linux и Windows, только с меньшим количеством религиозных войн.

Сравнительная таблица функционала

Функционал Nagios Core Nagios XI
Базовый мониторинг
Интерфейс Спартанский (привет из 90-х) Современный и красивый
Настройка Вручную (привет, vim) Через веб-интерфейс
Wizards для настройки
Автоматическое обнаружение
Отчёты Базовые Расширенные
Цена Бесплатно (как любовь к CLI) От $1,995 в год

Когда выбирать Core:

  • Вы любите полный контроль над системой
  • У вас ограниченный бюджет (читай: нет бюджета)
  • Ваша инфраструктура относительно проста
  • Вы не боитесь командной строки (и даже находите в этом своеобразное удовольствие)
  • Вам нравится писать конфиги руками (да, такие люди существуют)

Когда стоит присмотреться к XI:

  • У вас большая и сложная инфраструктура
  • Нужны красивые отчёты для руководства
  • Команда не хочет/не может копаться в конфигах
  • Есть бюджет на мониторинг (и нужно его куда-то потратить)
  • Время дороже денег (классический случай для бизнеса)

Секретный третий вариант:

Начните с Core, а когда намучаетесь с конфигами достаточно, чтобы оценить удобство XI – можно будет обосновать начальству покупку платной версии. Как говорится, чтобы оценить комфорт, нужно сначала помучиться!

Альтернативы Nagios

Знаете, что самое интересное в мире мониторинга? То, что Nagios – это как динозавр: вроде бы устарел, но все еще может откусить голову неосторожному админу. Тем не менее, давайте посмотрим на других игроков на этом поле.

Сравнительная таблица альтернатив

Система Преимущества Недостатки Когда использовать
Zabbix • Современный UI из коробки

• Встроенная база данных

• Автоматическое обнаружение

• Требует больше ресурсов

• Сложнее в освоении

Когда нужен полноценный enterprise-мониторинг
Prometheus • Отличная интеграция с контейнерами

• Мощный язык запросов

• Хорошая масштабируемость

• Нет встроенного алертинга

• Нужен Grafana для визуализации

В контейнерных средах и микросервисной архитектуре
Grafana • Потрясающая визуализация

• Гибкие дашборды

• Поддержка множества источников данных

• Не является полноценной системой мониторинг

• Нужен отдельный бэкенд

Как дополнение к другим системам мониторинга

Prometheus + Grafana: Модный стек

Это как Instagram для метрик – красиво, современно, но требует определенной подготовки:

# prometheus.yml
scrape_configs:
  - job_name: 'приложение'
static_configs:
  - targets: ['localhost:9090']
# А дальше три часа настройки Grafana...

Zabbix: Серьезный конкурент

Если Nagios – это Unix-борода с 20-летним стажем, то Zabbix – это хипстер со знанием DevOps:

  • Умеет всё то же, что и Nagios
  • Делает это более элегантно
  • Но иногда слишком умничает

Почему же люди всё еще используют Nagios?

  • Стабильность – работает как швейцарские часы (если правильно настроить)
  • Простота – нет нужды разбираться в контейнерах и микросервисах
  • Сообщество – огромная база плагинов и знаний
  • Инерция – «работает – не трогай» (девиз многих IT-отделов)

И помните: выбор системы мониторинга – это как выбор религии. Важно не то, во что вы верите, а то, насколько хорошо это работает в вашем конкретном случае!

Заключение

Ну что же, друзья, мы с вами прошли долгий путь – от установки Nagios до выбора альтернатив. Давайте подведем итоги (и нет, это не очередной мониторинг-отчет).

Что мы узнали:

  • Nagios – это не просто система мониторинга, а настоящий ветеран IT-индустрии, который до сих пор даст фору многим новичкам
  • Установка может показаться сложной (особенно если вы привыкли к установке приложений через App Store), но результат стоит потраченных усилий
  • Система плагинов позволяет мониторить буквально всё, что имеет IP-адрес (а иногда и то, что не имеет)
  • Правильно настроенные оповещения могут спасти ваш сон (или наоборот – зависит от количества проблем в инфраструктуре)

Если после прочтения этого руководства вы загорелись желанием глубже изучить системное администрирование и мониторинг инфраструктуры, рекомендую обратить внимание на специализированные курсы. На странице подборки курсов для системных администраторов вы найдете образовательные программы разного уровня сложности, которые помогут структурировать знания и получить практические навыки не только в работе с Nagios, но и с другими инструментами мониторинга и администрирования систем.

Если вы только начинаете свой путь в мире мониторинга – не бойтесь Nagios. Да, он может показаться суровым и неприветливым на первый взгляд, но это как строгий учитель – требовательный, но справедливый.

Читайте также
Категории курсов
Отзывы о школах