---
title: "Интеграция с Prometheus Alertmanager — мобильные оповещения"
sidebarTitle: Prometheus
description: Направляйте оповещения Prometheus Alertmanager в Echobell и получайте push-уведомления или звонки при инцидентах на серверах и в инфраструктуре.
---

import { Step, Steps } from "fumadocs-ui/components/steps";

# Интеграция с Prometheus

Prometheus вместе с Alertmanager — широко используемый стек мониторинга и оповещения с открытым исходным кодом. Подключив Alertmanager к Echobell, вы будете получать мгновенные уведомления на телефон (в том числе срочные или звонковые), как только сработают ваши правила оповещения.

## Предварительные требования

- Аккаунт Echobell хотя бы с одним созданным каналом
- Работающая связка Prometheus + Alertmanager
- Доступ к редактированию конфигурации Alertmanager (alertmanager.yml)

## Обзор настройки

1. Создайте канал Echobell
2. Настройте шаблоны уведомлений (и при необходимости шаблон ссылки)
3. Выберите способ интеграции:
   - Вебхук через webhook-получатель Alertmanager (рекомендуется)
   - Email через email-получатель Alertmanager (альтернатива)
4. Создайте или обновите правила оповещений
5. Проверьте и доработайте

## Пошаговое руководство

<Steps>
<Step>
### Создайте канал Echobell

1. Откройте приложение Echobell
2. Создайте новый канал (например, «Prometheus Alerts»)
3. Выберите цвет, чтобы канал было легко узнавать
</Step>
<Step>

### Настройте шаблоны уведомлений

Payload вебхука Alertmanager содержит структурированные поля: status, commonLabels, commonAnnotations, externalURL и массив alerts. Эти поля можно напрямую использовать в шаблонах Echobell.

Рекомендуемые шаблоны:

Шаблон заголовка:

```
{{commonLabels.alertname}} - {{status}}
```

Шаблон тела:

```
🔔 Alert: {{commonLabels.alertname}}
📊 Severity: {{commonLabels.severity}}
🖥️ Instance: {{alerts[0].labels["instance"]}}
⏰ Starts: {{alerts[0].startsAt}}
ℹ️ Summary: {{commonAnnotations.summary}}
🧾 Description: {{commonAnnotations.description}}
```

Опциональный шаблон ссылки (в дополнительных настройках):

```
{{alerts[0].generatorURL || externalURL}}
```

Так в записи оповещения появится прямая ссылка на сработавший график или дашборд. Если generatorURL отсутствует, используется externalURL.

</Step>
<Step>
### Способ интеграции A — вебхук (рекомендуется)

1. В канале Echobell скопируйте URL вебхука из раздела «Триггеры»
2. В Alertmanager добавьте webhook-получатель, который отправляет запросы на этот URL

Минимальный пример alertmanager.yml:

```yaml
route:
  receiver: echobell-webhook

receivers:
  - name: echobell-webhook
    webhook_configs:
      - url: "https://hook.echobell.one/t/<channel-token>"
        send_resolved: true
        http_config:
          follow_redirects: true
```

Примечания:

- send_resolved: true отправит уведомление и тогда, когда оповещение будет закрыто (status станет resolved)
- Echobell читает тело JSON как есть, поэтому шаблоны выше отработают корректно
</Step>
<Step>

### Способ интеграции B — email (альтернатива)

Если вам удобнее или необходимо использовать email, задействуйте email-получатель Alertmanager и отправляйте письма на email-адрес, привязанный к каналу.

1. В Echobell скопируйте email-адрес канала из раздела «Триггеры»
2. Настройте email-получатель в Alertmanager и используйте простые шаблоны

Пример фрагмента конфигурации:

```yaml
receivers:
  - name: echobell-email
    email_configs:
      - to: "PASTE_CHANNEL_EMAIL_ADDRESS"
        send_resolved: true
        subject: "{{ .CommonLabels.alertname }} - {{ .Status }}"
        html: |
          <p><strong>Summary:</strong> {{ .CommonAnnotations.summary }}</p>
          <p>{{ .CommonAnnotations.description }}</p>
          <p>
            <a href='{{ (index .Alerts 0).GeneratorURL }}' target='_blank' rel='noopener'>Open in Prometheus</a>
          </p>
```

В шаблонах Echobell для email-триггеров доступны переменные subject, text и html — Echobell подставляет их автоматически.

</Step>
<Step>
### Создайте пример правила оповещения

Небольшое правило для проверки всей цепочки:

```yaml
groups:
  - name: example
    rules:
      - alert: HighCPU
        expr: avg(rate(process_cpu_seconds_total[5m])) > 0.8
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "High CPU usage"
          description: "CPU has been over 80% for 2 minutes"
```

Как только это оповещение сработает, Alertmanager отправит событие настроенному получателю, а Echobell уведомит подписчиков канала.

</Step>
</Steps>

## Проверка интеграции

1. Временно снизьте пороги или создайте тестовое оповещение, которое сработает быстро
2. Убедитесь, что при срабатывании приходит уведомление Echobell
3. Если вы используете шаблон ссылки, откройте запись и нажмите на ссылку
4. Закройте оповещение и проверьте, что приходит уведомление о его закрытии (если оно включено)

## Выбор типов уведомлений

- Срочное: критические сбои на продакшене, инциденты уровня пейджинга
- Звонок: серьёзные сбои, когда нужно разбудить вас или прервать режимы Фокусирования
- Обычное: рутинные оповещения, предупреждения или информационные сообщения

## Лучшие практики

1. Держите шаблоны краткими, но информативными (имя оповещения, уровень серьёзности, инстанс, краткое описание)
2. Используйте шаблон ссылки, чтобы сразу переходить к нужному графику или дашборду
3. Группируйте и маршрутизируйте оповещения в Alertmanager, чтобы не создавать шум и усталость от уведомлений
4. Добавляйте метки серьёзности и подбирайте типы уведомлений Echobell под срочность
5. Относитесь к URL вебхука Echobell как к секрету; при утечке замените его

## Устранение неполадок

Если оповещения не приходят в Echobell:

- Проверьте правильность URL вебхука или email-адреса канала
- Убедитесь, что канал Echobell активен и у него есть подписчики
- Просмотрите логи Alertmanager на предмет ошибок доставки
- Убедитесь, что маршрут в alertmanager.yml действительно указывает на нужный получатель
- Проверьте работу на простом разовом правиле оповещения
- Если используется email, убедитесь, что настройки SMTP работают и письма доставляются

## Конфиденциальность и обработка данных

Echobell ставит приватность на первое место:

- Содержимое уведомлений остаётся на ваших устройствах
- На серверах хранится только минимальный объём конфигурационных данных
- URL вебхуков и email-адреса каналов следует считать секретами
- Echobell не хранит payload ваших оповещений на своих серверах

## Дополнительные материалы

- [Документация Prometheus](https://prometheus.io/docs/introduction/overview/)
- [Конфигурация Alertmanager](https://prometheus.io/docs/alerting/latest/configuration/)
- [Правила оповещений](https://prometheus.io/docs/alerting/latest/alerting_rules/)
- [Echobell Webhook](/docs/webhook)
- [Шаблоны уведомлений](/docs/notification)
- [Условия и шаблон ссылки](/docs/conditions)
- [Поддержка](/docs/support)
