Computerworld's recent reporting on Matrix adoption in Europe's public sector describes a slow, deliberate shift: government agencies deploying the open-source, decentralized messaging standard — often alongside Microsoft Teams, not instead of it — to keep sensitive communications on infrastructure they actually control. For policymakers, this is a digital-sovereignty story. For the people running the environment, it is something far more concrete: a handful of new Linux servers, databases, and background services that nobody at Microsoft will ever page you about.
If your organization is piloting Element or Synapse next to Teams — or if the broader open-source push is pulling self-hosted apps into your stack — one operational fact changes the moment the first VM is provisioned: you now own the uptime. And most IT teams' monitoring was never designed for that.
You Owned Uptime Before. Now You Own More of It.
With Teams, monitoring is simple because there is almost nothing to monitor. The backend lives in Microsoft's data centers. If Teams goes down, it is Microsoft's incident, Microsoft's status page, Microsoft's SLA. Your responsibility ends at the endpoint and your network.
A Matrix deployment inverts that. A typical production setup — usually Synapse on Ubuntu or Debian — makes you responsible for:
- The Synapse homeserver processes, often split across multiple workers
- A PostgreSQL database that grows continuously with room state, events, and media metadata
- The media repository, which will happily consume every gigabyte you give it as users share attachments
- Redis for worker coordination
- The reverse proxy and TLS certificates terminating client and federation traffic
- The federation path itself — when it breaks, internal chat keeps working just well enough that users don't notice until rooms silently stop updating
Every one of these components can fail independently and quietly. A crashed federation sender worker doesn't stop local messaging. A media store that hits 100% doesn't crash Synapse — it just starts rejecting uploads and failing writes in confusing ways. A certificate expiring at 2am on a Sunday takes down federation and client connections simultaneously.
If you ran Exchange on-premises, this feels familiar. If your team's last self-hosted messaging platform was retired for SaaS five years ago, the tooling and runbooks for running it have decayed accordingly.
The Real Problem: Your Monitoring Is Stitched Together From Four Tools
Ask a typical public-sector or enterprise IT team how they would know if the Matrix stack died, and the honest answer is a shrug and a list of disconnected tools:
- Windows endpoints and servers are covered by an RMM or SCCM. Fine.
- The Linux servers running Synapse and PostgreSQL are covered by an old Nagios or Zabbix instance someone built in 2018 — and nobody has watched it since the admin who configured it left. Or there is nothing at all.
- "Is the app up?" is answered by a free pinger pointed at the homepage — which proves nginx returns a 200, not that Synapse can write to its database or deliver a message.
- Alerts land in three different places: email from the RMM, a Telegram bot from the Linux monitor, push notifications from the pinger. None of it reaches the helpdesk, so there is no ticket, no assignment, no SLA clock, no record.
The failure sequence writes itself. The media store crosses 90% on a Thursday. No alert fires — the disk check on that server was never configured, or it sends to a mailbox nobody reads. Saturday night the disk hits 100%. Synapse starts erroring. Monday at 9:14, the first ticket arrives: "Matrix is down." By the time a tech SSHs in and finds the disk full, the department has lost a morning, the incident has no timeline, and the postmortem is three people's recollections.
Detection time: an entire weekend, discovered by an end user. That is the opposite of monitoring.
And none of this is unique to Matrix. Any self-hosted application — Nextcloud, GitLab, a Mattermost pilot, a VoIP server — lands in the same gap. The key operational point of the Computerworld article is that organizations will run Matrix alongside Teams for years. This hybrid state is not a transition phase you can wait out. It is the steady state, and your monitoring has to treat it as first-class.
How AlertMonitor Watches a Matrix Stack — and the Teams Estate Next to It
AlertMonitor was built for exactly this situation: one platform, one alert stream, across Windows and Linux, servers, services, applications, and scheduled tasks.
Concretely, for a Matrix deployment:
- Service and process monitoring on the Linux hosts tracks
matrix-synapse,postgresql,redis-server, andnginxas first-class checks. A stopped or crash-looping unit pages someone in seconds — not on Monday's first ticket. - Disk thresholds on the media repository volume alert at 80% and again at 90%, with trend data, turning a Thursday 90% alert into a Tuesday-morning cleanup task instead of a Saturday-night outage.
- HTTP endpoint checks verify the things that actually matter:
/_matrix/client/versionsfor the client API,.well-known/matrix/serverfor federation delegation, and federation reachability — not just "homepage returns 200." - Certificate expiry monitoring on TLS endpoints, so nothing expires at 2am without two weeks of escalating warnings first.
- Log monitoring on Synapse's output catches the quiet failures — federation errors, database connection exhaustion — before users ever see them.
- Patch management keeps the underlying Ubuntu and Debian hosts current from the same console where you patch the Windows estate, because an unpatched self-hosted messaging server is its own future incident.
- Every alert can open a helpdesk ticket automatically — assigned, SLA-tracked, with the full monitoring timeline attached. Your postmortem becomes a record instead of a memory.
The workflow difference is stark. The old way: four tools, three alert channels, human correlation, user-reported outages. The AlertMonitor way: one alert stream → automatic ticket → the right person paged via escalation policy → fix → incident closed with a complete timeline. Teams that move from user-reported detection to unified alerting routinely cut discovery time from 40+ minutes to under two — and, more importantly, stop losing weekends to problems that announced themselves days earlier.
Practical Steps You Can Take Today
Before changing any tooling, verify you can see the real state of the stack from the command line. These are the checks your monitoring should be automating.
1. Confirm every service in the Matrix stack is actually running:
#!/bin/bash
# Exit non-zero (and say why) if any critical Matrix stack service is down
FAILED=0
for svc in matrix-synapse postgresql redis-server nginx; do
if systemctl is-active --quiet "$svc"; then
echo "OK: $svc is running"
else
echo "CRITICAL: $svc is NOT running"
FAILED=1
fi
done
exit $FAILED
Wire this into AlertMonitor as a custom check on the homeserver host, and a dead federation sender worker stops being a Monday surprise.
2. Probe the client API — not just the homepage:
# The client API must answer, and .well-known delegation must resolve
curl -fsS --max-time 5 https://matrix.example.org/_matrix/client/versions \
> /dev/null && echo "Client API: OK" || echo "Client API: DOWN"
curl -fsS --max-time 5 https://matrix.example.org/.well-known/matrix/server \
|| echo "Federation delegation: MISSING"
A 200 on the homepage proves nothing. This proves chat works.
3. Watch disk growth on the media repository before it watches you:
# Fail if the root filesystem is above 85% used
USE=$(df --output=pcent / | tail -1 | tr -dc '0-9')
if [ "$USE" -gt 85 ]; then
echo "CRITICAL: root filesystem at ${USE}%"
exit 2
fi
echo "OK: root filesystem at ${USE}%"
4. On the Windows side — the file servers, domain controllers, and application servers still running alongside all of this — a quick disk sweep:
# Flag any fixed disk below 15% free across a list of servers
$servers = @("FS01", "FS02", "DC01", "APP01")
Invoke-Command -ComputerName $servers -ScriptBlock {
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object @{n='Server';e={$env:COMPUTERNAME}}, DeviceID,
@{n='FreeGB';e={[math]::Round($_.FreeSpace/1GB,1)}},
@{n='FreePct';e={[math]::Round($_.FreeSpace/$_.Size*100,1)}} |
Where-Object { $_.FreePct -lt 15 }
} | Sort-Object FreePct
Each of these maps to a native AlertMonitor monitor with thresholds, escalation, and auto-ticketing. The difference: AlertMonitor runs them continuously, correlates them into one stream, and acts on them — instead of you remembering to run them manually.
The Steady State Is Hybrid. Monitor Like It.
The Computerworld reporting is right: replacing Teams outright is a years-long proposition, and many organizations will run both platforms indefinitely. Make that your planning assumption. Treat every self-hosted service that enters your data center as a permanent resident with permanent monitoring obligations.
Whether the messaging stack of 2027 is Matrix, Teams, or both, the operational requirements do not change: see every server, service, certificate, and disk in one place; get paged in seconds when something breaks; and hold the ticket trail that proves how fast you fixed it. That is one platform's job — not five tabs, three alert channels, and a hope that an end user tells you first.
Related Resources
AlertMonitor Infrastructure & Server Monitoring AlertMonitor Platform Overview Book a Demo Infrastructure & Server Monitoring Resources
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.