Вам не нужен мониторинг-сервис
Datadog — $15/хост/мес. Uptime Robot — видит ваши данные в открытом виде. Telegram-бот — токен бота даёт доступ ко всей истории чата.
Если у вас один сайт, один API или pet-проект — хватит curl, cron и способа получить push на телефон. Nerve шифрует payload до отправки. Sender DSN умеет только отправлять — не читать историю.
Шаг 1: Установить CLI
command -v go >/dev/null || {
GO_VERSION="$(curl -fsSL 'https://go.dev/VERSION?m=text' | head -n 1)"
case "$(uname -m)" in
x86_64|amd64) GO_ARCH="amd64" ;;
aarch64|arm64) GO_ARCH="arm64" ;;
esac
curl -fsSLO "https://go.dev/dl/${GO_VERSION}.linux-${GO_ARCH}.tar.gz"
sudo tar -C /usr/local -xzf "${GO_VERSION}.linux-${GO_ARCH}.tar.gz"
export PATH="/usr/local/go/bin:$PATH"
}
go install github.com/nerve-ink/nerve-cli/cmd/nerve@latest
export PATH="$PATH:$(go env GOPATH)/bin"
Шаг 2: Скрипт проверки
#!/bin/bash
# /usr/local/bin/check-site.sh
set -euo pipefail
export NERVE_DSN="nerve://TOKEN:[email protected]"
URL="https://yoursite.ru"
TIMEOUT=10
HTTP=$(curl -s -o /dev/null -w "%{http_code}" --max-time "$TIMEOUT" "$URL" || echo "000")
if [ "$HTTP" = "000" ]; then
echo "САЙТ ЛЕЖИТ: $URL не отвечает (таймаут ${TIMEOUT}с)" | nerve send --severity critical
elif [ "$HTTP" -ge 500 ]; then
echo "ОШИБКА: $URL вернул HTTP $HTTP" | nerve send --severity critical
fi
chmod +x /usr/local/bin/check-site.sh
Шаг 3: Добавить в cron
# Проверка каждые 2 минуты
*/2 * * * * /usr/local/bin/check-site.sh
Всё. Телефон зазвонит когда сайт ляжет.
Несколько сайтов
#!/bin/bash
export NERVE_DSN="nerve://TOKEN:[email protected]"
URLS=(
"https://yoursite.ru"
"https://api.yoursite.ru/health"
"https://admin.yoursite.ru"
)
for URL in "${URLS[@]}"; do
HTTP=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "$URL" || echo "000")
if [ "$HTTP" = "000" ] || [ "$HTTP" -ge 500 ]; then
echo "ЛЕЖИТ: $URL (HTTP $HTTP)" | nerve send --severity critical
fi
done
Проверка содержимого (smoke test)
Сайт отдаёт 200, но показывает пустую страницу или «на обслуживании».
BODY=$(curl -s --max-time 10 "https://yoursite.ru")
if ! echo "$BODY" | grep -q "Добро пожаловать"; then
echo "КОНТЕНТ: yoursite.ru не содержит ожидаемый текст" | nerve send --severity alert
fi
Проверка времени ответа
TIME=$(curl -s -o /dev/null -w "%{time_total}" --max-time 15 "https://yoursite.ru" || echo "99")
SLOW=$(echo "$TIME > 3.0" | bc -l 2>/dev/null || echo "0")
if [ "$SLOW" = "1" ]; then
echo "ТОРМОЗИТ: yoursite.ru ответ за ${TIME}с" | nerve send --severity alert
fi
Почему не Uptime Robot / Telegram-бот
Uptime RobotБесплатный тариф — 5 минут между проверками. Видит ваши данные. Серверы в США.
Telegram-ботТокен бота = доступ ко всей истории чата, списку участников, файлам. Утечка токена = утечка ops-переписки.
NervePayload шифруется на вашем сервере. Sender DSN — write-only. Бесплатно в бете.