Мониторинг служб

Введение

Мониторинг служб — это процесс постоянного наблюдения за состоянием и производительностью системных процессов и сервисов. Его основная цель — обеспечить бесперебойную работу системы, своевременно выявляя и устраняя проблемы. Отслеживание состояний производится путём циклического опроса с определённой периодичностью. Этот период равняется 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 - Превышено количество отправленных байт;

  • Connection failed - Ошибка соединения;

  • Content failed - Ошибка содержимого;

  • Data access error - Ошибка доступа к данным;

  • Execution failed - Ошибка выполнения;

  • Filesystem flags failed - Ошибка флагов файловой системы;

  • Ping failed - Ошибка пинга;

  • Invalid type - Недопустимый тип;

  • Does not exist - Не существует;

  • Download packets exceeded - Превышено количество загруженных пакетов;

  • Upload packets exceeded - Превышено количество отправленных пакетов;

  • Permission failed - Ошибка разрешения;

  • PID failed - Ошибка идентификатора процесса (PID);

  • PPID failed - Ошибка родительского идентификатора процесса (PPID);

  • Resource limit matched - Достигнут лимит ресурса;

  • Saturation exceeded - Превышена насыщенность;

  • Size failed - Ошибка размера;

  • Speed failed - Ошибка скорости;

  • Status failed - Ошибка статуса;

  • Тайм-аут - Превышено время ожидания.

Формат почты

Формат почты (Синтаксис описывается ниже в разделе).

Напоминание

Через какое количество циклов посылать напоминание.

Описание

Описание формата сообщений.

Формат содержания почты выглядит следующим образом:

subject: $SERVICE on $HOST failed
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 - Время работы сервиса.

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

../../../../_images/monit1.png

Пример использования мониторинга

В качестве примера создадим тест доступности удаленного хоста. Для этого мы будем использовать готовый тест в вкладке Настройки тестов служб под названием “Ping”. Содержание теста представлено на рисунке ниже:

../../../../_images/monit2.png

Далее перейдем в вкладку Настройки службы и создадим мониторинг удаленного хоста с следующими параметрами:

../../../../_images/monit3.png

После чего в кладке Службы - Мониторинг служб - Файлы журнала можем наблюдать следующие записи:

../../../../_images/monit4.png

Что говорит о том, что тест доступности устройства провален, что верно, ведь хост находился в выключенном состоянии.

Также можем наблюдать проваленный тест на вкладке Службы - Мониторинг служб - Статус:

../../../../_images/monit5.png

Анализ журнала и статистики мониторинга

В вкладке Службы - Мониторинг служб - Файлы журнала находятся основные события работы службы мониторинга. Пример возможных записей, приведенных в журнале указан в таблице ниже:

Сообщение

Описание

„Test_ping“ ping test failed

Тест провален

Mail: Mailserver response error – 535 5.7.8 Error: authentication failed: authentication failure

Ошибка аутентификации на почтовом сервере (неверный логин или пароль)

„RTT_System_monitor“ Monit 5.32.0 started

Служба мониторинга запущена и активна

„RTT_System_monitor“ Monit 5.32.0 stopped

Служба мониторинга остановлена

Mail: Delivery failed – no mail server is available

Ошибка доставки сообщения на почту

Mail: Authentication failed – no supported authentication methods found

На почтовом сервере отсутствует аутентификация

В вкладке Службы - Мониторинг служб - Статус есть возможность мониторинга статистики по всем включенным и доступным мониторингам.

Пример сбора статистики будет описан на примере теста службы сбора syslog:

Program „RTT_SYSLOG_SC“
status OK
monitoring status Monitored
monitoring mode active
on reboot start
last exit value 0
last output Syslog-ng working ok
data collected Wed, 15 May 2024 13:04:45

В этой записи:

Параметр

Описание

Program

Название мониторинга

status

Статус службы

monitoring status

Статус мониторинга

monitoring mode

Режим работы мониторинга

on reboot

Запускать ли мониторинг при старте системы

last exit value

Последнее выходное значение

last output

Последний вывод мониторинга

data collected

Дата последнего сбора данных