#!/usr/bin/env bash
# liderra-systemd-alert.sh — отправка email-алёрта при упавшем systemd-юните.
# Используется как OnFailure= для liderra-queue.service.
set -u

UNIT="${1:-unknown}"
ALERT_TO="kdv1@bk.ru"
NOW=$(date '+%Y-%m-%d %H:%M:%S')

STATUS=$(systemctl status "$UNIT" --no-pager -l 2>&1 | head -30)
JOURNAL=$(journalctl -u "$UNIT" -n 30 --no-pager 2>&1)

{
    printf 'Subject: [Лидерра-мониторинг] systemd-юнит упал: %s\n' "$UNIT"
    printf 'From: verify@liderra.ru\n'
    printf 'To: %s\n' "$ALERT_TO"
    printf 'MIME-Version: 1.0\n'
    printf 'Content-Type: text/plain; charset=utf-8\n\n'
    printf 'Юнит %s окончательно упал (5 крашей за 5 минут — превышен лимит).\n\n' "$UNIT"
    printf 'Время: %s\n' "$NOW"
    printf 'Сервер: ssh ubuntu@111.88.246.137\n\n'
    printf '=== systemctl status ===\n%s\n\n' "$STATUS"
    printf '=== journalctl (последние 30 строк) ===\n%s\n' "$JOURNAL"
} | msmtp -a yandex "$ALERT_TO" 2>>/var/log/msmtp.log
