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¶
-
На сервере ничего устанавливать не нужно. Без учётных данных DumbMonit подключается к SMTP (25) и веб-интерфейсу (4000) снаружи и читает приветствие SMTP. Измените список в опции Services, например, чтобы проверять HTTPS вместо HTTP.
smtp,web_https -
Чтобы также читать счётчики производительности, нужен SecurityGateway 12.5 или новее. Создайте выделенную учётную запись с именем, указанным ниже, с длинным паролем, не используемым где-либо ещё, и дайте ей роль Domain Administrator. Если счётчики остаются пустыми на странице монитора, ваша версия хранит их для роли Global Administrator, и учётной записи нужна именно эта роль.
dumbmonit -
Войдите этой учётной записью и создайте ключ в Setup/Users → Accounts → API Keys, со сроком действия. Ключ несёт права учётной записи, которая его создаёт, поэтому он должен быть создан именно из этой учётной записи, а не из вашей.
-
Ограничьте учётную запись адресом, с которого подключается DumbMonit, в её IP-ограничениях: ключи API тоже их соблюдают.
-
Проверьте с хоста DumbMonit, что ключ работает. Команда выводит описание API, которое также перечисляет счётчики, читаемые DumbMonit.
curl -k -H 'Authorization: Bearer YOUR_KEY' https://sg.example.com:4443/api/v1/openapi -
В 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 |
Читать счётчики производительности. |