Мониторинг

Введение

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

Что такое Nagios

Nagios (речь пойдет о Nagios Core 4.x) — система для наблюдения за состоянием компьютерной сети. Пассивным наблюдением возможности Nagios не ограничиваются. Система сообщает что именно сломалось или даже может попытаться починить сама. Nagios работает как самостоятельная служба и имеет веб-интерфейс написанный на PHP.

Ниже будут подробнее описаны основные возможности этой системы.

Мониторинг серверов

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

Просто пингуя его мы увидим когда он работает, а когда нет. Но в таком случае, он будет считаться неисправным и в случае, когда работа ICMP случайно или умышленно ограничена. Это может произойти из-за изменения конфигурации оборудования как клиента, так и провайдера.

Мониторинг сервисов

Сам по себе сервер редко интересен. Обычно на нем работают определенные сервисы, работу которых и нужно отслеживать. Сервер может, например, обрабатывать почту, отображать веб-страницы, преобразовывать имена в адреса, управлять локальной сетью или даже делать все это сразу.

Сервисами, в данном контексте, можно называть и любые ресурсы сервера. Загрузка процессора, количество занятой оперативной памяти, число пользователей, свободное место на диске — все это можно считать сервисами.

Почти на всех серверах стоит отслеживать общую загрузку и количество свободного места на диске, так как это позволяет выявить намечающуюся проблему задолго до того как она проявит себя.

Проверки сетевых приложений предназначенных для удаленной работы производить легко. Достаточно соединиться с нужным портом (TCP или UDP). Желательно так же проверить и приглашение сервиса, если оно есть.

Еще лучше полностью проверить его работоспособность (загрузить файл, отправить письмо и т. д., в зависимости от назначения сервера). Неисправный сервис может устанавливать соединение и даже авторизовывать пользователя, но не выполнять основной работы, например, из-за проблем с местом на диске.

Пассивные проверки

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

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

Например, имеется датчик открытия двери, которая открывается нерегулярно (иногда несколько раз в сутки, а иногда раз в месяц). К датчику подключен компьютер, который может отправить данные в Nagios. Этот компьютер может отправлять в Nagios результаты только при срабатывании датчика.

Активные проверки через агента

Не все сервера и службы доступны снаружи локальной сети. Если они обслуживают только сотрудников предприятия, тогда они обычно скрыты за маршрутизаторами. В таком случае можно использовать пассивные проверки — актуальные данные будет собирать кто-то в локальной сети и отправлять результаты на сервер с Nagios. Альтернативой в данном случае может быть установка агента на доступный из вне компьютер.

Агент, доступный снаружи, транслирует запросы от Nagios-сервера ко внутренним серверам, недоступным снаружи.

Агента можно установить и на сервер, который имеет прямой доступ в интернет, для мониторинга его локальных показателей, таких как состояние диска, оперативной памяти, процессора и т. д.

Уведомления пользователей

Для уведомления пользователей об изменении состояния сервисов и хостов, Nagios предлагает гибко-настраиваемую систему. Когда возникает необходимость отправить сообщение пользователю, проверяется ряд условий, в том числе время, в которое можно отправлять уведомления, и тип сообщений, которые можно отправлять.

После проверки условий, выполняются все команды, предназначенные для отправки уведомления пользователю. Это может быть, например, отправка электронного письма или сообщения на мобильный телефон.

Nagios не забывает отправить и сообщении о восстановлении сервиса. Оно будет отправлено только тем пользователям, которым было отправлено сообщение о неисправности.  

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

Эскалация уведомлений

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

Родительские связи между хостами

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

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

Определение связей между всеми хостами в наблюдаемой системе — обязательное условие для избежания большого числа сообщений о неисправностях.

Связи между хостами и сервисами

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

Заключение

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

Ссылки

[1] https://www.nagios.org/ — страница проекта

[2] https://local.bbgroup.pro:8043/nagios/ — наша локальная система (требуется аутентификация)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *