How to get notified when a website is down
Point an uptime monitor at the URL and connect an alert channel you actually read: the monitor requests the site every few minutes and messages you the moment a check fails, then again when it recovers.
A website down notification has three parts. Something outside your server requests the site on a schedule. Something decides whether the answer counts as down. Something delivers that decision to a place you look. Most setups that fail, fail at the third part: the alert lands in an inbox filter or a team channel muted since March.
What triggers a website down alert
- Logdash requests the URL with a GET every 5 minutes on the free plan, every minute on Builder and every 15 seconds on Pro.
- Any status from 200 to 399 is up. Anything else is down, and so is no answer at all: a timeout after 10 seconds, a refused connection, a name that does not resolve, an expired certificate.
- The alert fires on the change, not on every failed check. One message when it goes down, one when it comes back, silence in between, so a 4-hour outage costs you two messages instead of 48.
- There is no retry before alerting. One failed check is a down alert, so a flaky endpoint will tell you it is flaky.
Website down alert channels
Logdash delivers to two places: Telegram and webhooks. Telegram is the one we recommend, because it is on your phone, it makes a sound, and a bot message does not get filtered into Promotions. The webhook calls any public URL you choose, so your own code can route the alert anywhere, email included. There is no built-in email, and the JSON body and custom headers need a paid plan; on the free plan the webhook is a bare GET.
Without a monitor: cron and the Telegram bot API
If you already run a second server, a short script gets you the same kind of alert. It checks once, compares the result with the last one, and messages Telegram only when the state changes.
#!/usr/bin/env bash
# notify-down.sh URL - one check, and a Telegram message when up/down changes.
# Cron it on a machine that does not host the site:
# */5 * * * * TELEGRAM_TOKEN=... TELEGRAM_CHAT_ID=... /usr/local/bin/notify-down.sh https://example.com/health
url="$1"
state="/tmp/notify-down-$(printf '%s' "$url" | tr -c 'a-zA-Z0-9' '_')"
code=$(curl -s -o /dev/null -m 10 -w '%{http_code}' "$url")
if [ "$code" -ge 200 ] && [ "$code" -lt 400 ]; then now=up; else now=down; fi
if [ "$now" != "$(cat "$state" 2>/dev/null)" ]; then
echo "$now" > "$state"
curl -s "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \
--data-urlencode "chat_id=${TELEGRAM_CHAT_ID}" \
--data-urlencode "text=${url} is ${now} (HTTP ${code})" > /dev/null
fiThat is the core of what a monitor does, minus the parts you now own. It dies with the machine it runs on, it checks from one place, it keeps no history beyond the last state, and the bot token sits in a crontab.
Set it up
- Add the monitor Create a service in Logdash and give it the URL your users load, or better, a health route that also checks the database.
- Connect Telegram Add a Telegram channel and attach it to the monitor. The bot sends a welcome message right away, which proves the chat id is right.
- Test the alert Stop the app or make the health route return 503. On the next check the monitor flips to down and the Telegram alert lands, naming the monitor with the status code and the error. Start it again and a second message says it is back up.
Logdash vs UptimeRobot for down alerts
| Feature | Logdash | UptimeRobot |
|---|---|---|
| Email alerts | Not built, webhook to your own sender | Included on the free plan |
| Telegram alerts | Free plan | Solo plan and up |
| Webhook alerts | Bare GET on free, JSON body and headers from Builder | Team plan and up |
| SMS and voice calls | Not built | Available with paid credits |
| Free check interval | Every 5 minutes | Every 5 minutes |
| Free monitors | Five services | 50 monitors |
When UptimeRobot is the better pick
- Email is the only channel you will ever check. UptimeRobot sends it on the free plan; Logdash needs your own relay behind a paid-plan webhook.
- You want a text message or a phone call when the site goes down. Logdash does neither.
- You watch more than five sites and want them all free. UptimeRobot gives you 50 monitors at the same 5-minute interval.