Мониторинг служб — это процесс постоянного наблюдения за состоянием и производительностью системных процессов и сервисов. Его основная цель — обеспечить бесперебойную работу системы, своевременно выявляя и устраняя проблемы. Отслеживание состояний производится путём циклического опроса с определённой периодичностью. Этот период равняется 5 секундам. Дальше по тексту будет использоваться термин цикл как описание одной проверки и пятисекундного ожидания перед ней.
Основные функции мониторинга служб:
Регулярные проверки позволяют оперативно обнаруживать сбои и принимать меры для их устранения, что минимизирует время простоя;
Автоматическое выполнение действий при обнаружении проблем снижает участие человека и ускоряет восстановление;
Мониторинг собирает данные о работе сервисов, что позволяет анализировать тенденции и планировать ресурсы.
В следующих разделах будет подробно рассмотрено, как настроить и использовать функции мониторинга для эффективного управления контроля служб и сервисов.
Важно
Не рекомендуется без помощи технической поддержки конфигурировать этот раздел, так как он отвечает за целостность системы и служб, влияющих на работу устройства.
Основная конфигурация мониторинга служб
Основная настройки мониторинга служб производится в разделе Службы - Мониторинг служб - Настройки на вкладках:
Настройки тестов служб;
Настройки служб.
При создании элемента мониторинга, администратор сперва должен создать Тест служб или выбрать из списка готовых. Готовые Тесты служб включают в себя:
Тесты служб
Имя
Условие
Действие
Описание
CPUUsage
cpu usage > 75%
Предупреждение
Процент использования процессора превышает 75%.
ChangedStatus
changed status
Предупреждение
Статус изменился.
FAIL PORT 80 LOCAL
failed port 80 for 2
cycles
Перезапустить
Порт 80 не отвечает в течение двух циклов проверки.
FAIL PORT 443 LOCAL
failed port 443 for 2
cycles
Перезапустить
Порт 443 не отвечает в течение двух циклов проверки.
LoadAvg1
loadavg (1min) is
greater than 2
Предупреждение
Средняя нагрузка за 1 минуту превышает 2.
LoadAvg5
loadavg (5min) is
greater than 1.5
Предупреждение
Средняя нагрузка за 5 минут превышает 1.5.
LoadAvg15
loadavg (15min) is
greater than 1
Предупреждение
Средняя нагрузка за 15 минут превышает 1.
MemoryUsage
memory usage > 75%
Предупреждение
Процент использования памяти превышает 75%.
NetworkLink
saturation is
greater than 75%
Предупреждение
Уровень загрузки сети превышает 75%.
NetworkSaturation
cpu usage > 75%
Предупреждение
Процент использования процессора превышает 75%.
NonZeroStatus
status != 0
Предупреждение
Ненулевой статус.
Ping
failed ping
Предупреждение
Пинг не прошел.
RebootOnProcessStatus
2 restarts within
3 cycles
Выполнять
Перезапуск процесса дважды в течение трех циклов.
RebootOnStatus
status != 0 for
3 cycles
Выполнять
Ненулевой статус в течение трех циклов.
SpaceUsage
space usage > 75%
Предупреждение
Процент использования дискового пространства
превышает 75%.
check syslog run status
status != 0
Перезапустить
Ненулевой статус при проверке работы syslog.
Важно
Готовые тесты служб стоит редактировать с огромной осторожностью, а лучше вообще не редактировать, так как это может повлиять на производительность.
Для создания собственного Теста службы необходимо заполнить следующие параметры при добавлении:
Параметры тестов служб
Название параметра
Значение
Описание
Имя
Имя теста службы
Условие
Синтаксис описан в разделе
Описание синтаксиса
теста служб
Условие при котором будет осуществляться действие.
Действие
Предупреждение
Система мониторинга сделает запись в журнал
Перезапустить
Перезапускает службу или сервис, над которой
ведется наблюдение
Запустить
Запускает службу или сервис, над которой
ведется наблюдение
Остановить
Останавливает службу или сервис, над которой
ведется наблюдение
Reboot device
Перезапускает устройство.
Switch HA to BACKUP state
HA переключит состояние ноды с мастера на бэкап
Не контролировать
Без действия (только сбор статистики)
Важно
Опцию Reboot device следует использовать с крайней осторожностью, чтобы не привести устройство в циклическую перезагрузку.
После создания или выбора теста службы, можно внести его при создании непосредственно самого мониторинга в разделе “Настройки службы”, также тут необходимо заполнить другие параметры, представленные в таблице:
Параметры мониторинга служб
Название параметра
Описание
Включить проверки служб
Включить или отключить мониторинг.
Имя
Имя мониторинга.
Тип
Тип проверки. На данный момент существуют следующие типы проверки:
Удаленный хост (проверка доступности хоста);
Система (проверка системы, например, использования процессора);
Службы (проверка служб и сервисов);
Сеть (проверка доступности сети).
Описание
Описание сервиса.
Адрес (Удаленный хост,
Сеть при выборе типа)
Целевой IP адрес хоста или сети.
Интерфейс (Сеть при
выборе типа)
Интерфейс для проверки доступности сети.
Службы (Службы при
выборе типа)
Выбор службы для мониторинга. Доступны следующие службы: IDS/IPS (Система
обнаружения вторжений), Proxy service (Веб-прокси), Журналирование, SHH server,
NTP server(Сетевое время), DHCPv4 server, DHCPv6 server, Router adv.(Объявления
маршрутизатора), DNS server
Тесты (Службы при
выборе типа)
Интерфейс для проверки доступности сети.
Зависит от (Службы,
Удаленный хост или
Сеть при выборе типа)
Выбор тестов, которые необходимы перед мониторингом этой службы. Если
какая-либо из зависимых тестов провалится, то эта служба
останавливается / перестаёт отслеживаться
По умолчанию на этой вкладке находятся системные модули мониторинга, их нельзя редактировать, так как они важны для исправного функционирования системы. Список системных модулей мониторинга представлен в таблице:
Список системных модулей мониторинга
Имя
Описание
RTT_CONFIRM_CTRL
Мониторинг подтверждения конфигурации.
RTT_LOGROT_SC
Мониторинг подсистемы ротации логов.
RTT_PHP_FPM
Мониторинг интерпретатора PHP.
RTT_RootFs
Мониторинг пространства на корневой файловой системе.
RTT_SYSLOG_SC
Мониторинг syslog.
RTT_System_monitor
Мониторинг ЦП и памяти.
RTT_backend
Мониторинг бекенд-сервиса.
RTT_lighttpd
Мониторинг веб-сервера.
RTT_lighttpd_443
Мониторинг веб-сервера на порту 443.
RTT_syslog-ng
Мониторинг подсистемы логирования
RTT_systemd-logind
Мониторинг systemd-logind.
RTT_systemd-resolved
Мониторинг systemd-resolved.
RTT_systemd-udevd
Мониторинг systemd-udevd.
Описание синтаксиса теста служб
Настройка отправки предупреждений
Мониторинг служб позволяет отправлять предупреждения по электронной почте с использованием протокола SMTP (Simple Mail Transfer Protocol). Это полезная функция для уведомления системных администраторов о различных событиях, таких как сбои сервисов, критические ошибки или другие важные системные изменения.
Для настройки необходимо перейти на вкладку Службы - Мониторинг служб - Настройки - Основные настройки и указать параметры почтового сервера. Описание настроек приведено в таблице:
Параметры почтового сервера мониторинга служб
Имя
Описание
Адрес почтового сервера
Разделенный запятыми список SMTP-серверов для доставки предупреждений.
Порт почтового сервера
Порт почтового сервера. Как правило 465 или 25.
Имя пользователя почтового сервера
Имя пользователя для аутентификации на почтовом сервере.
Пароль почтового сервера
Пароль для аутентификации на почтовом сервере.
SSL-соединение с почтовым сервером
Включить шифрование для связи с почтовым сервером.
TLS Version (SSL-соединение)
Выбрать, какую версию TLS использовать
Проверка SSL-сертификатов
(SSL-соединение)
Включить или отключить проверку сертификата сервера SSL.
Настройка формата сообщений
В системе мониторинга служб есть возможность задать свой собственный формат сообщений В вкладке “Настройки сообщений”. Параметры при конфигурации формата сообщений и их описание представлены ниже:
Формат сообщений мониторинга служб
Имя
Описание
Включить сообщения
Включать или отключать оповещение.
Получатель
E-mail адрес для отправки оповещений.
Не для следующих
Включить только для несоответствующих условию(инвертирование).
События
Список событий. Оставьте пустым для всех событий. На данный момент
присутствуют следующие события:
Action done - Действие выполнено;
Checksum failed - Контрольная сумма не совпала;
Download bytes exceeded - Превышено количество загруженных байт;
Upload bytes exceeded - Превышено количество отправленных байт;
message: Detected an error with the $SERVICE service on $HOST at $DATE. Event type: $EVENT. Description: $DESCRIPTION. version: $MONIT_VERSION.
from: … - указывает заголовок “от” в письме, или же отправителя
subject: … - указывает тему письма.
message: … - основное тело сообщения.
Содержание письма может быть каким угодно, более того, пользователь может использовать переменные в письме, на данный момент пользователю доступны следующие переменные для использования:
$SERVICE - Имя сервиса, который мониторится;
$HOST - Имя хоста, на котором выполняется мониторинг;
$DATE - Дата и время события;
$EVENT - Тип события (например, «failed», «succeeded»);
$DESCRIPTION - Описание события;
$ACTION - Действие, выполненное Monit (например, «start», «stop», «restart»);
$MONIT_VERSION - Версия системы мониторинга;
$PID - Идентификатор процесса;
$PPID - Идентификатор родительского процесса;
$Uptime - Время работы сервиса.
Пример конфигурации формата сообщений представлен на рисунке ниже:
Пример конфигурации формата сообщений
Пример использования мониторинга
В качестве примера создадим тест доступности удаленного хоста. Для этого мы будем использовать готовый тест в вкладке Настройки тестов служб под названием “Ping”. Содержание теста представлено на рисунке ниже:
Реадактирование теста мониторинга
Далее перейдем в вкладку Настройки службы и создадим мониторинг удаленного хоста с следующими параметрами:
Настройки службы мониторинга
После чего в кладке Службы - Мониторинг служб - Файлы журнала можем наблюдать следующие записи:
События в журнале мониторинга
Что говорит о том, что тест доступности устройства провален, что верно, ведь хост находился в выключенном состоянии.
Также можем наблюдать проваленный тест на вкладке Службы - Мониторинг служб - Статус:
Статус мониторинга служб
Анализ журнала и статистики мониторинга
В вкладке Службы - Мониторинг служб - Файлы журнала находятся основные события работы службы мониторинга. Пример возможных записей, приведенных в журнале указан в таблице ниже: