// IPSonic MONITORING TOOLKIT / DOCUMENTATION
ipsonic-probe rainbow unicorn

ipsonic-probe ✦

YAML-driven infrastructure validation. Platform-agnostic checks. Zero cloud dependencies.

DNSTCPHTTP / TLSYAML CONFIGCLI FIRSTKISSOFFLINE READY

Part of the ipsonic project ↗ Visit the main website

Microsoft Exchange Infrastructure Monitoring with ipsonic-probe

This example pack provides a layered monitoring baseline for an existing Microsoft Exchange environment. It targets self-hosted Exchange deployments and similar environments where these protocols and endpoints are intentionally enabled. It does not assume every protocol is enabled, nor that every endpoint is reachable from the public Internet.

1. Define the topology and monitoring locations

Record the approved Exchange namespaces, load balancer VIPs, backend addresses, DNS zones, internal resolvers, and monitoring vantage points. Replace all example.com domains and 192.0.2.x documentation IPs before execution. Deploy separate checks for internal and external access if needed.

2. Choose only enabled services

LayerYAMLWhat is verifiedWhat is not verified
OWA user portal121-exchange-owa-portal.yamlHTTPS, certificate, expected response codeLogin, mailbox UI, real user workflow
ECP/admin portal122-exchange-ecp-portal.yamlEndpoint reachabilityAdministrative sign-in or authorization
Autodiscover123-exchange-autodiscover.yamlHTTPS endpoint responseFull Autodiscover negotiation
EWS124-exchange-ews.yamlHTTPS endpoint responseEWS operation success
MAPI/HTTP125-exchange-mapi.yamlHTTPS endpoint responseOutlook connectivity
ActiveSync126-exchange-activesync.yamlHTTPS endpoint responseDevice synchronization
SMTP relay127-exchange-smtp-relay.yamlTCP/25 connectSMTP banner, STARTTLS, message delivery
SMTP submission128-exchange-smtp-submission.yamlTCP/587 connectSMTP AUTH, STARTTLS, delivery
SMTPS (if enabled)129-exchange-smtps.yamlTCP/465 connectTLS handshake or SMTP transaction
IMAPS (if enabled)130-exchange-imap-tls.yamlTCP/993 connectIMAP TLS handshake, login, mailbox commands
IMAP STARTTLS (if enabled)131-exchange-imap-starttls.yamlTCP/143 connectSTARTTLS negotiation
POP3S (if enabled)132-exchange-pop3-tls.yamlTCP/995 connectPOP3 TLS handshake, login, message retrieval
POP3 STARTTLS (if enabled)133-exchange-pop3-starttls.yamlTCP/110 connectSTARTTLS negotiation
Mail routing DNS134-exchange-dns-mx.yamlMX record existsActual SMTP mail delivery
Autodiscover DNS135-exchange-dns-autodiscover.yamlCNAME existsSRV-based or alternate configurations
Sender policy136-exchange-dns-spf.yamlTXT includes SPF markerFull SPF syntax or email authentication
Backend nodes137-exchange-backend-https.yamlHTTPS reachability per backend IPExchange replication, database health

Important: POP3 and IMAP are often disabled by design. TCP/465 is not a universal Exchange requirement. Do not alert on services that your installation does not provide. Exchange Online and hybrid setups have different topology and responsibilities.

3. Run the probes

Install using distribution repositories only:

# Debian / Ubuntu
sudo apt-get install -y python3 python3-requests python3-yaml

# AlmaLinux / Rocky Linux
sudo dnf install -y python3 python3-requests python3-pyyaml

Execute the desired checks from the project root:

python3 ipsonic-probe.py --output nagios examples/121-exchange-owa-portal.yaml
python3 ipsonic-probe.py --output nagios examples/127-exchange-smtp-relay.yaml
python3 ipsonic-probe.py --output nagios examples/130-exchange-imap-tls.yaml
python3 ipsonic-probe.py --output nagios examples/134-exchange-dns-mx.yaml

Run individual YAML files as separate monitoring services so that a failure identifies its layer. Use your Nagios/Icinga 2/Checkmk scheduling, alert routing, and dependencies for correlation. ipsonic-probe itself does not provide a native service dependency graph or a bundled scheduler.

4. Suggested monitoring dependencies

A useful logical dependency chain is DNS resolution → network route/firewall → load balancer VIP → Exchange HTTPS frontend → Exchange backend. Mail flow additionally depends on MX records → TCP/25 reachability → SMTP service → transport queues and mail routing. For client access, OWA/EWS/MAPI/ActiveSync depend on HTTPS and certificates, while IMAP/POP3 depend on their optional services and protocol-specific TLS/authentication.

Use existing monitoring-platform dependency rules to suppress downstream alarms when an upstream component fails. This pack tests the reachable endpoints but cannot directly determine Active Directory health, Exchange database availability, transport queues, DAG replication, message tracking, spam filtering, mailbox access, or end-to-end mail flow. Those need additional Exchange-specific telemetry or synthetic protocol transactions.

5. Proxy and private CA considerations

HTTP(S) probes can use proxy.mode: environment or an explicit proxy and a private CA bundle through tls.ca_file_env. Do not route POP3, IMAP or SMTP checks through the HTTP proxy; the TCP probe connects directly. HTTP(S) advanced TLS inspection features may require a direct connection depending on proxy configuration.

6. Operational baseline and acceptance

Start with OWA, SMTP/25, MX, and whichever client protocols are actually enabled. Add Autodiscover, EWS, MAPI, ActiveSync, SPF, and backend checks as appropriate. Review the expected HTTP codes against your actual authentication and reverse-proxy behavior. A 401 or 403 can mean the endpoint is present, not that it is usable by an authenticated user. Do not interpret these checks as a complete Exchange health or security assessment.

All checks use placeholder values. Adapt service names, thresholds, DNS expectations, and response statuses before treating them as customer acceptance criteria.

Maintainer and disclaimer

Maintained by mati peterson (ipsonic@mailbox.org). Official project URL: https://ipsonic.com/probe/.

Disclaimer: This software and its examples are provided AS IS, without warranty of any kind. Use at your own risk. Review and validate configurations before production deployment.