Перейти к содержанию

SecurityGateway for Email Servers

Службы почтового шлюза SecurityGateway, проверяемые снаружи, и, начиная с SecurityGateway 12.5, версия и счётчики производительности, публикуемые его REST API: очередь доставки, карантин, сессии SMTP.

Проверено только по документации

Эта интеграция построена на опубликованной MDaemon Technologies документации SecurityGateway и его REST API, а не на реальном шлюзе. Каждый вызов — это чтение. Документация не публикует путь или имена счётчиков производительности, поэтому DumbMonit находит путь в собственном описании API и хранит каждый счётчик под именем, которое даёт ему API. Пока никто не запускал это на реальном шлюзе. Сообщите нам, если что-то не работает.

Что отслеживается

Все метрики с префиксом dumbmonit_securitygateway_.

Метрика Метки Значение
service_up service, port 1, если порт принял соединение и, для SMTP, поприветствовал кодом 220. 0, если не ответил, либо ответил, отказывая в обслуживании (421, 554).
service_response_seconds service, port Время до приветствия, либо до соединения для порта без приветствия.
api_up Только с ключом API: 1, если REST API ответил, 0, если нет.
api_response_seconds Время, за которое ответил REST API.
counters_available 1, если счётчики производительности были прочитаны; 0, если API не описывает ни одного, либо учётная запись ключа не может их читать.
counter counter Один ряд на каждое числовое значение счётчиков производительности, названный так, как называет его API, в snake_case: deliveryQueue становится delivery_queue. Не более 64.
info (значение 1) version, source Версия, данная описанием API (source="openapi"), либо иначе приветствием SMTP, когда шлюз объявляет её там (source="smtp_banner").
scrape_duration_seconds Время, за которое прошла вся проверка.

Как находятся счётчики. REST API SecurityGateway описывает себя по /api/v1/openapi. DumbMonit читает это описание, берёт самый короткий путь только для чтения без параметров, чьё имя упоминает счётчики, читает его и сохраняет каждое число из ответа. Ничего не переименовывается и ничего не предполагается: если будущая версия переименует счётчик, ряд последует за новым именем. Счётчики, перечисленные в справке SecurityGateway, — это активные входящие и исходящие сессии SMTP, очередь доставки, административный карантин, время работы, счётчики доменов и пользователей и пул соединений базы данных; некоторые из них меняются только раз в минуту.

Частичный отказ всё равно считается успешной проверкой. Одна остановленная служба даёт service_up 0 для этой службы, а остальные всё равно измеряются. Только когда вообще не отвечают ни служба, ни API, монитор недоступен. Отклонённый ключ — это ошибка конфигурации, показывается на странице монитора и не уведомляется.

Что не читается. Лицензия и её истечение, дисковое пространство и статистика сообщений панели не описаны опубликованной документацией REST API. Чтобы наблюдать за самой службой Windows SecurityGateway и дисками сервера, установите агент на сервере и перечислите службу в его настройке services.

Применяемые встроенные правила: «Служба SecurityGateway не отвечает», «API SecurityGateway не отвечает», «Очередь доставки SecurityGateway растёт», плюс «Монитор недоступен».

Страница монитора

Монитор SecurityGateway показывает панель Mail services над графиками, считанную из последнего сохранённого измерения: открытие страницы никогда не подключается к шлюзу. Она перечисляет каждую отслеживаемую службу с её портом, словом и цветом (Answering, Down) и временем отклика, версию, и, с ключом API, каждый счётчик производительности с его последним значением.

Наблюдение за службами шлюза и, опционально, REST API

  1. На сервере ничего устанавливать не нужно. Без учётных данных DumbMonit подключается к SMTP (25) и веб-интерфейсу (4000) снаружи и читает приветствие SMTP. Измените список в опции Services, например, чтобы проверять HTTPS вместо HTTP.

    smtp,web_https
    
  2. Чтобы также читать счётчики производительности, нужен SecurityGateway 12.5 или новее. Создайте выделенную учётную запись с именем, указанным ниже, с длинным паролем, не используемым где-либо ещё, и дайте ей роль Domain Administrator. Если счётчики остаются пустыми на странице монитора, ваша версия хранит их для роли Global Administrator, и учётной записи нужна именно эта роль.

    dumbmonit
    
  3. Войдите этой учётной записью и создайте ключ в Setup/Users → Accounts → API Keys, со сроком действия. Ключ несёт права учётной записи, которая его создаёт, поэтому он должен быть создан именно из этой учётной записи, а не из вашей.

  4. Ограничьте учётную запись адресом, с которого подключается DumbMonit, в её IP-ограничениях: ключи API тоже их соблюдают.

  5. Проверьте с хоста DumbMonit, что ключ работает. Команда выводит описание API, которое также перечисляет счётчики, читаемые DumbMonit.

    curl -k -H 'Authorization: Bearer YOUR_KEY' https://sg.example.com:4443/api/v1/openapi
    
  6. В DumbMonit введите адрес шлюза, например «sg.example.com», и вставьте ключ. API доступен на HTTPS-порту веб-интерфейса, по умолчанию 4443, под /api/v1.

Warning

У SecurityGateway нет роли только для чтения и нет более узкого ключа: ключ может всё, что может его учётная запись. Никогда не создавайте его из своей собственной учётной записи, храните его только в DumbMonit и задайте ему срок действия. Версии до 12.5 не имеют REST API: оставьте учётные данные пустыми, и DumbMonit будет проверять только службы. Веб-интерфейс часто использует самоподписанный сертификат на 4443: если соединение отклоняется по этой причине, отметьте «Accept an unverifiable certificate» в опциях.

Учётные данные

Учётные данные Поля
Только службы Ничего: порты проверяются без входа.
Ключ API (12.5 и новее) Ключ, отправляется как Authorization: Bearer ….

Адрес: имя хоста или IP шлюза, например sg.example.com. Порт, указанный в адресе (sg.example.com:8443), принимается как порт API.

Опции

Опция По умолчанию Эффект
services smtp,web Что проверять, через запятую: smtp (25), smtps (465), web (4000), web_https (4443). name:port меняет порт; любое другое имя со своим портом добавляет собственную службу, проверяемую только подключением. none не проверяет ни один порт.
request_timeout_seconds 10 Время, отведённое на каждое соединение, приветствие и вызов API, от 1 до 60.
api_port 4443 Порт веб-интерфейса, обслуживающий /api/v1. Используется только с ключом API.
api_tls true HTTPS для REST API. Снимите отметку только для веб-интерфейса по обычному HTTP (по умолчанию порт 4000): тогда ключ пересекает сеть в открытом виде.
insecure_tls false Принимать самоподписанный сертификат на REST API.
counters true Читать счётчики производительности.