Серверные уведомления

Уведомления с сервера на телефон.

Отправляйте deploy failed, cron failed, backup failed и VPS health-check в Nerve через зашифрованный sender DSN.

Простой shell сценарий

Sender DSN можно положить в переменную окружения на сервере или в secret store. Он умеет только отправлять сигнал в один pipe.

export NERVE_DSN="nerve://TOKEN:[email protected]"
if ! ./deploy.sh; then
  echo "deploy failed on $(hostname)" | nerve send --severity alert
fi

Почему не просто webhook

Обычный webhook часто становится широким секретом. В Nerve sender DSN не читает историю, не подключается как агент и не выполняет команды.

Что отправлять

Минимальный набор серверных проверок

Для одного VPS обычно достаточно четырех сигналов: сайт отвечает, диск не заполнен, важный systemd service не failed, бэкап свежий. Это не заменяет Prometheus, но закрывает самые дорогие “молчаливые” поломки.

# disk
df / --output=pcent | tail -1 | tr -d ' %'

# failed services
systemctl list-units --state=failed --no-legend --plain

# backup age
find /var/backups -type f -mtime -1 | head

Один DSN или несколько

Для production и staging лучше иметь разные sender DSN. Тогда утечка staging-секрета не позволит шуметь в production pipe, а ротация не затронет все окружения сразу.

Runbook в сообщении

Хороший alert отвечает на вопрос “что делать дальше”. Добавляйте короткую подсказку или внутреннюю ссылку: runbook=/ops/backup-restore, service=api, host=prod-1.

Не превращать телефон в лог-файл

Если отправлять каждый warning, канал быстро станет бесполезным. На телефон отправляйте только события, где человек должен принять решение: сервис упал, бэкап не прошел, SSL истекает, диск заполнен.

Ротация sender DSN

Ротируйте DSN при смене сервера, публикации репозитория или подозрении, что secret попал в логи. Так как sender не читает историю, ротация обычно не требует миграции старых сообщений.