Zabbix actions

Zabbix обнаруживает проблему. Nerve несет подтвержденное действие.

Оставьте triggers, escalation rules и maintenance windows в Zabbix. Nerve добавляет encrypted phone alert и подписанные runbook actions через отдельный agent.

Не кладите power в media script

Zabbix media script должен отправлять сигнал. Ему не нужны SSH-ключи, cloud admin token или production sudo. Секрет для отправки и credential для действий должны быть разделены: sender DSN в Zabbix, agent token на контролируемой машине.

Payload media script

#!/usr/bin/env sh
set -eu
export NERVE_DSN="nerve://TOKEN:[email protected]"
printf '%s\nhost=%s\nseverity=%s\nevent=%s\n' \
  "$1" "$2" "$3" "$4" | nerve send --severity alert

Какие действия открывать первыми

Severity mapping

Severity в Zabbix должна влиять на срочность уведомления, а не автоматически давать больше прав.

case "$TRIGGER_SEVERITY" in
  Disaster|High) SEVERITY="critical" ;;
  Average) SEVERITY="alert" ;;
  *) SEVERITY="standard" ;;
esac

Event tags как подсказки

Используйте Zabbix tags для контекста, а не для выдачи новых прав. Tags вроде service=api, env=prod и runbook=restart-api помогают выбрать правильный текст и ссылку, но final allowlist все равно должен проверять agent.

Что лучше оставить ручным

Database failover, удаление файлов вне cache path, изменение firewall rules и restart целого cluster не стоит превращать в one-tap action, пока процедура не проверена и не отрепетирована.

Проверка без аварии

Создайте test trigger или maintenance host, который отправляет такой же payload, но указывает env=staging. Это позволяет проверить шаблон, severity mapping и recovery signal до настоящего incident.

Recovery messages

Для High и Disaster triggers включайте recovery signals. Человек, которого разбудил alert, должен увидеть, что состояние вернулось в норму, а не держать в голове устаревшую картину.

Похожие страницы