PylonMon
Internal monitoring

Monitor servers behind a firewall, and get paged from outside it.

Short answer: yes. Install the open-source pylon-beacon agent on one machine inside the network. It pushes outward over HTTPS every 20 seconds — no inbound port, no VPN, no tunnel — and it can probe any internal target you name (an intranet site, a NAS share, a print server, a hypervisor UI, a game server port). Each probe becomes its own monitor in PylonMon with real latency, history and alerts, and if the whole site loses power or internet, the agent’s silence is itself the page. Free for three machines; no card.

Why a normal uptime monitor can’t do this

An uptime service checks from the public internet, which is the point: it sees what your users see, and it keeps working when your building doesn’t. But 192.168.1.50, 10.0.0.9 and intranet.local don’t exist out there. Pointing an external monitor at them fails by construction, and opening those services to the internet so a monitor can reach them is exactly the wrong trade. You need something inside that reports out.

How it works

your network (no inbound ports opened) the internet ┌──────────────────────────────────────────────┐ │ intranet ──┐ │ │ NAS (445) ──┤ probes, every 20 s │ HTTPS push, outbound only │ printer ──┼──► pylon-beacon ────────────┼──────────────────────────────► PylonMon │ hypervisor──┤ (one static binary, │ │ │ game host ──┘ on any Linux/Windows box) │ alerts: ▼ └──────────────────────────────────────────────┘ email · SMS · Discord · Slack webhooks · voice · push agent silent for 1.5 × interval ═══► "site is dark" page, one alert, not one per target

A worked example: a school district

An in-house IT lead runs a district network: a web server in the DMZ, an internal intranet, two file servers, a print server, a hypervisor, and — on the side — a Minecraft host for a club. Nothing internal is reachable from outside, and it must stay that way.

WhatHow it’s monitoredWho gets paged
Public website and mailExternal HTTP and TCP monitors from PylonMon’s two regionsIT lead by email and SMS
Intranet (internal only)intranet = http https://intranet.district.local on the web server’s agentIT lead
File servers, print serverAn agent on each: vitals (disk!), plus smb = tcp 10.0.0.20:445IT lead; disk rules page at 90 %
HypervisorAgent on the host: vitals; ui = http https://10.0.0.5:8006IT lead
Game host (6 ports, a database, a cache)One agent, eight tcp probes; nightly restarts in a maintenance windowThe club’s Discord, not the IT lead’s phone
A client’s viewA public status page showing only their monitors

That is 19 nodes and about 40 monitors. On the Pro plan ($9/month: 75 monitors, one status page, 10 SMS a month, 30-second checks) it fits with room to grow; a second client status page is +2 for $5, or Team ($49) brings three pages, five members and on-call rotations.

Setting it up

1 · INSTALL

One command, inside

Linux: curl -fsSL https://pylonmon.com/beacon.sh | sh — Windows: irm https://pylonmon.com/beacon.ps1 | iex. It asks for an ingest-scoped API key (free, can’t read anything) and registers as a service.

2 · NAME THE TARGETS

A few lines of config

[probes]
intranet = http https://intranet.district.local
nas = tcp 10.0.0.20:445
core = ping 10.0.0.1
Restart the agent; each line appears as a monitor under the node within a minute.

3 · ROUTE THE ALERTS

Set channels once

Probes inherit the node’s channels. Put the school on email + SMS and the game host on Discord, add a maintenance window for anything that restarts on a schedule, and link dependencies so one root cause pages once.

Limits and honest caveats

And for the parts the internet can see

Everything public stays on ordinary external monitors, checked from the public internet (HTTP, TCP and DNS failures are confirmed from a second region before paging on paid plans), and TLS certificates get expiry and chain validation (the free chain checker shows what that looks like). Our checks come from a published set of addresses, so a firewall can allow them for services that are semi-public.

Start free — 3 nodes, 20 monitors, no card Agent source: github.com/PylonMon/pylon-beacon