---
title: "How to get notified when a website is down | Logdash"
description: "Website down alerts in three steps: a monitor, a channel, a test. Telegram and webhooks in Logdash, a cron script if you run a spare server, and when another tool fits."
url: https://logdash.io/learn/how-to-get-notified-when-a-website-is-down
---

# 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.

 notify-down.sh 

```bash
#!/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
fi
```

That 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

1. **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.
2. **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.
3. **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.

### How to get notified when a website is down for free? 

Add the URL to a free uptime monitor and connect a channel. Logdash checks five services every 5 minutes on the free plan and alerts through Telegram or a webhook. UptimeRobot checks 50 monitors every 5 minutes for free and alerts by email.

### How do I get notified when a website is back up? 

The same monitor does it. Logdash sends a second message on the first check that passes after an outage, so the gap between the down and the up message is how long the site was down. No up message means it still is.

### How fast does a website down alert arrive? 

Within one check interval of the failure: up to 5 minutes on the Logdash free plan, 1 minute on Builder, 15 seconds on Pro. The message goes out as soon as the failing check finishes, and a check gives up after 10 seconds.

### What should a website down notification include? 

Which monitor failed, the status code, and the error. Logdash sends all three, for example a 0 with "Timed out after 10s", which already tells you whether to look at the app, the proxy or the network.

## Keep reading

[All uptime monitoring explainers](https://logdash.io/learn): Fourteen uptime questions, each answered in one sentence, then the math or the command behind it.

[Why is my website down](https://logdash.io/learn/why-is-my-website-down): Most outages come from six causes: a bad deploy, a crashed app or database, a full disk, an expired domain or SSL certificate, a broken DNS record, or your host having its own outage, and the error you see already narrows it to one or two.

[MTTR](https://logdash.io/learn/mttr): MTTR is the average time it takes to get a broken service working again: add up the downtime from every incident and divide by the number of incidents, so four outages of 12, 47, 6 and 31 minutes give an MTTR of 24 minutes.

[Open source website monitoring](https://logdash.io/learn/website-monitoring-open-source): Open source website monitoring means a checker whose code you can read and run yourself: Uptime Kuma or Gatus if you want to host it, Upptime if you want GitHub Actions to run it, and Logdash if you want the code open but the monitor run for you.

[Uptime monitoring](https://logdash.io/features/monitoring): HTTP checks as often as every 15 seconds. When one fails, Telegram tells you before your users do.
