Перейти к содержимому

Почтовый сервер MDaemon

Почтовые службы сервера MDaemon, проверяемые снаружи: SMTP, IMAP, POP3, веб-почта и Remote Administration принимают соединения и отвечают приветствием так, как должны. При наличии учётной записи DumbMonit также читает точную версию через XML API. Если на сервере MDaemon установлен агент, та же страница показывает ещё и почтовые очереди, сессии и итоги по сообщениям, которые MDaemon публикует только в виде счётчиков производительности Windows.

Все метрики имеют префикс dumbmonit_mdaemon_.

МетрикаМеткиЗначение
service_upservice, port1, если порт принял соединение и, для SMTP, POP3 и IMAP, ответил приветствием 220, +OK или * OK. 0, если он не ответил или ответил отказом в обслуживании (421, 554, -ERR, * BYE).
service_response_secondsservice, portВремя до приветствия или до соединения для порта без приветствия.
api_upТолько с учётной записью: 1, если XML API ответил, 0, если нет.
api_response_secondsВремя, за которое XML API ответил.
api_operation_ok1, если учётной записи разрешено выполнить вызов, 0, если MDaemon ответил статусом ошибки.
info (значение 1)version, build, sourceВерсия: из XML API (source="xml_api", build — сборка службы) или же из приветствия SMTP, когда сервер объявляет её там (source="smtp_banner").
scrape_duration_secondsВремя, которое заняла вся проверка.

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

Отклонённая учётная запись — это ошибка конфигурации, а не сбой. Неверный пароль, адрес, который XML API не разрешает, или неверный порт показываются на странице монитора с причиной и не рассылаются в уведомлениях.

Очереди приходят от агента, а не от этого монитора. MDaemon публикует размеры своих очередей (входящая, локальная, удалённая, повторная, bad, holding, карантин), число сессий, статистику сообщений и время работы в виде счётчиков производительности Windows, в объекте с именем MDaemon, и в собственном Queue and Statistics Manager. Ни в одной опубликованной документации MDaemon не описан вызов XML API, который их возвращает, поэтому этот монитор не гадает: вместо этого счётчики производительности читает агент, установленный на сервере MDaemon. См. Почтовые очереди через агента. Лицензия и свободное место диска с почтовым хранилищем не доступны через документированный интерфейс или счётчик производительности и не читаются. Агент также следит за диском, на котором лежит почтовое хранилище; чтобы следить за самой службой Windows, перечислите службу MDaemon в его настройке services.

Применимые встроенные правила: MDaemon mail service down, MDaemon XML API not answering, а также Device unreachable; с агентом — MDaemon mail queue growing, MDaemon Bad queue not empty и MDaemon Retry queue high.

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

Когда агент на том же сервере сообщает счётчики MDaemon, следом идёт панель Mail queues: число сообщений в каждой очереди (замороженная очередь, непустая очередь Bad и более пятидесяти сообщений в Retry отмечаются словами), активные сессии, сообщения и вердикты по спаму, вирусам и DNSBL за последние 24 часа, время работы MDaemon и внутренние серверы, которые MDaemon сообщает как неактивные. Та же панель появляется на собственной странице агента.

  1. Установите агент на сервер Windows, на котором работает MDaemon. Больше ничего не требуется: агент замечает службу Windows с именем MDaemon и читает счётчики объекта производительности MDaemon в каждый период выборки. Чтобы принудительно включить или выключить это, задайте mdaemon: true или mdaemon: false в agent.yaml.
  2. Очереди появляются на странице агента. Чтобы показать их и на этом мониторе MDaemon, DumbMonit ищет агента на той же машине: агента, заданного как родитель этого монитора, или relay-агента, который его опрашивает, или агента, имя хоста которого совпадает с адресом этого монитора (mail для mail.example.com), или, когда есть один монитор MDaemon и один агент, сообщающий счётчики MDaemon, этого агента. Если ничего не подошло, отредактируйте этот монитор и выберите агента как его Parent monitor: агент и MDaemon находятся на одной машине, поэтому когда агент замолкает, оповещения этого монитора тоже удерживаются.

Ряды принадлежат агенту, с его меткой target. Все имеют префикс dumbmonit_mdaemon_:

МетрикаМеткиЧитаемые счётчики производительности
queue_messagesqueue: inbound, local, remote, retry, bad, holding, lan, quarantine, rawInbound queue messages, Local queue messages, Remote queue messages, Retry queue messages, Bad queue messages, Holding queue messages, LAN queue messages, Quarantine queue messages, RAW queue messages
queue_frozen (1 — заморожена)queue: inbound, local, remoteInbound queue frozen, Local queue frozen, Remote queue frozen
sessions_activeprotocol: smtp_in, smtp_out, pop3_in, pop3_out, imap, webmailActive SMTP (in) sessions, Active SMTP (out) sessions, Active POP3 (in) sessions, Active POP3 (out) sessions, Active IMAP sessions, Active Webmail sessions
sessions_total (счётчик)protocol: smtp_in, smtp_out, pop3, imapSMTP sessions (in) total, SMTP sessions (out) total, POP3 sessions total, IMAP sessions total
messages_total (счётчик)protocol: smtp_in, smtp_out, domainpop_inSMTP messages (in) total, SMTP messages (out) total, DomainPOP messages (in) total
filtered_messages_total (счётчик)filter: spam, virus, dnsbl; verdict: accepted, refusedspam accepted total, spam refused total, Viruses accepted total, Viruses refused total, DNSBL accepted total, DNSBL refused total
server_active (1 — активен)server: smtp, pop3, imap, webmail, webadmin, activesync, antispam, antivirus, minger, multipop, domainpopSMTP server state, POP3 server state, IMAP server state, Web Mail server state, Web Admin server state, ActiveSync server state, AntiSpam server state, AntiVirus server state, Minger server state, MultiPOP server state, DomainPOP server state
running (1 — работает)MDaemon running state
uptime_secondsMDaemon up time

Итоги считаются с момента последнего запуска MDaemon: применяйте increase() или rate() в запросах, как это делает страница для своих 24-часовых показателей. Счётчики в секунду (SMTP messages (in)/sec…) не читаются, так как итоги дают те же скорости. Счётчик, которого нет в вашей версии MDaemon или который назван иначе, один раз записывается в лог агента (performance counter not available), а остальные по-прежнему читаются; чтобы прочитать счётчик, которого нет в пресете, перечислите его в perf_counters в agent.yaml (см. Счётчики производительности Windows).

Следить за почтовыми службами и, при желании, за XML API

Заголовок раздела «Следить за почтовыми службами и, при желании, за XML API»
  1. На сервере ничего устанавливать не нужно. Без учётных данных DumbMonit подключается к почтовым портам снаружи и читает каждое приветствие: по умолчанию SMTP (25), IMAP (143) и веб-почта (3000). Добавьте POP3, MSA, порты TLS или Remote Administration в параметре Services в виде списка, например такого.

    smtp,msa,imap,pop3,imaps,webmail
  2. Чтобы также читать версию через XML API, создайте в MDaemon отдельную учётную запись, названную, например, так, с длинным паролем, нигде больше не используемым. Дайте ей самый низкий уровень, который MDaemon принимает для XML API, и ничего сверх этого: DumbMonit вызывает только GetVersionInfo, который не читает ни один почтовый ящик и ничего не меняет.

  3. Начиная с MDaemon 24, XML API отвечает только разрешённым адресам. Откройте Setup → XML API Service → Address Restrictions (Setup → XML API Management в MDaemon 26) и разрешите адрес, с которого подключается DumbMonit.

  4. Проверьте с хоста DumbMonit, что учётная запись получает доступ к API. Команда запрашивает пароль и выводит ответ, начинающийся с <MDaemon><API productversion=…>.

    curl -k -u [email protected] -H 'Content-Type: text/xml' --data '<MDaemon><API><Request version="20.0.0" echo="0" verbose="0"><Operation>GetVersionInfo</Operation><Parameters/></Request></API></MDaemon>' https://mail.example.com:444/MdMgmtWS/
  5. В DumbMonit введите адрес сервера, например «mail.example.com», затем полный адрес электронной почты учётной записи как имя пользователя и её пароль. XML API доступен на HTTPS-порту Remote Administration, по умолчанию 444.

XML API обслуживается веб-сервером Remote Administration: по умолчанию порт 1000 по HTTP и 444 по HTTPS, по пути /MdMgmtWS/, или IIS, когда Remote Administration работает на нём. Его полный справочник поставляется вместе с сервером: откройте https://mail.example.com:444/MdMgmtWS в браузере или загляните в \MDaemon\Docs\API\XML API\.

Учётные данныеПоля
Services onlyНичего: почтовые порты проверяются без входа.
XML API accountПолный адрес электронной почты учётной записи и её пароль, отправляемые как базовая HTTP-аутентификация.

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

ПараметрПо умолчаниюДействие
servicessmtp,imap,webmailЧто проверять, через запятую: smtp (25), msa (587), smtps (465), pop3 (110), pop3s (995), imap (143), imaps (993), webmail (3000), remote_admin (1000), remote_admin_https (444), xmpp (5222). name:port меняет порт; любое другое имя с портом добавляет вашу собственную службу, проверяемую только соединением. none не проверяет ни одного порта.
request_timeout_seconds10Время, отведённое на каждое соединение, приветствие и вызов API, от 1 до 60.
api_port444Порт Remote Administration, обслуживающий /MdMgmtWS/. Используется только с учётной записью.
api_tlstrueHTTPS к XML API. Снимайте отметку только для Remote Administration по обычному HTTP (по умолчанию порт 1000): тогда пароль передаётся по сети открытым текстом.
insecure_tlsfalseПринимать самоподписанный сертификат на XML API.

Порты TLS (smtps, pop3s, imaps, remote_admin_https) проверяются только соединением. Чтобы следить за сроком действия их сертификатов, добавьте монитор TLS certificate для каждого.