NOC Alerts

NOC Alerts v1.0

Push-оповещения инцидентов для iPhone & Web

📱 Как включить пуш-уведомления на iPhone:

Проверка статуса подписки...
Инициализация Web Push API...
0
Активных инцидентов
0
Подключенных iPhone/устройств
0
Всего алертов в истории

Лента инцидентов

🛡️

Все системы работают штатно

Активных инцидентов и алертов не зафиксировано

🔥 Подключение Prometheus Alertmanager

Для отправки алертов в PWA добавьте Webhook ресивер в ваш конфигурационный файл alertmanager.yml:

route:
  receiver: 'pwa-noc-alerts'
  group_by: ['alertname', 'instance']
  group_wait: 10s
  group_interval: 30s
  repeat_interval: 1h

receivers:
  - name: 'pwa-noc-alerts'
    webhook_configs:
      - url: 'https://your-domain.com/api/webhook/alertmanager'
        send_resolved: true

Параметр send_resolved: true отправляет пуш-уведомление с зеленым бейджем ✅ [RESOLVED], когда авария устранена.

🛡️ Подключение Zabbix (Webhook Media Type)

1. В веб-интерфейсе Zabbix перейдите в Alerts → Media types → Create media type.

2. Укажите название: PWA Alerts Webhook, тип: Webhook.

3. В секции Parameters добавьте параметры:

alert_message  : {ALERT.MESSAGE}
event_name     : {EVENT.NAME}
event_severity : {EVENT.SEVERITY}
event_status   : {EVENT.STATUS}
event_value    : {EVENT.VALUE}
host_name      : {HOST.NAME}
host_ip        : {HOST.IP}
event_id       : {EVENT.ID}

4. Вставьте следующий JavaScript код в поле Script:

try {
    Zabbix.log(4, '[PWA Webhook] Started with: ' + value);
    var params = JSON.parse(value);
    var req = new HttpRequest();
    req.addHeader('Content-Type: application/json');

    var webhookUrl = 'https://your-domain.com/api/webhook/zabbix';

    var payload = {
        event_name: params.event_name,
        event_value: params.event_value,
        event_status: params.event_status,
        event_severity: params.event_severity,
        host_name: params.host_name,
        host_ip: params.host_ip,
        alert_message: params.alert_message,
        event_id: params.event_id
    };

    var resp = req.post(webhookUrl, JSON.stringify(payload));
    if (req.getStatus() !== 200) {
        throw 'Response code: ' + req.getStatus();
    }
    return 'OK';
} catch (error) {
    Zabbix.log(3, '[PWA Webhook] Notification failed: ' + error);
    throw 'Failed: ' + error;
}

🧪 Симулятор пуш-уведомлений

Нажмите на любой готовый пресет ниже, чтобы отправить тестовый алерт на подключенный iPhone: