---
title: "Integracja z Prometheus Alertmanager - alerty na telefon"
sidebarTitle: Prometheus
description: Kieruj alerty z Prometheus Alertmanagera do Echobell i odbieraj powiadomienia push lub połączenia przy incydentach serwerów i infrastruktury.
---

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

# Integracja z Prometheusem

Prometheus wraz z Alertmanagerem to szeroko stosowany, otwartoźródłowy zestaw do monitoringu i alertowania. Łącząc Alertmanagera z Echobell, możesz otrzymywać natychmiastowe powiadomienia na telefon (w tym alerty czasowo krytyczne lub w formie połączenia) za każdym razem, gdy zadziałają Twoje reguły alertów.

## Wymagania wstępne

- Konto Echobell z co najmniej jednym utworzonym kanałem
- Działająca instalacja Prometheus + Alertmanager
- Możliwość edycji konfiguracji Alertmanagera (alertmanager.yml)

## Przegląd konfiguracji

1. Utwórz kanał w Echobell
2. Skonfiguruj szablony powiadomień (oraz opcjonalny szablon odnośnika)
3. Wybierz metodę integracji:
   - Webhook przez odbiorcę webhook w Alertmanagerze (zalecane)
   - E-mail przez odbiorcę email w Alertmanagerze (alternatywa)
4. Utwórz lub zaktualizuj reguły alertów
5. Przetestuj i dopracuj

## Przewodnik krok po kroku

<Steps>
<Step>
### Utwórz kanał Echobell

1. Otwórz aplikację Echobell
2. Utwórz nowy kanał (np. „Prometheus Alerts”)
3. Wybierz kolor ułatwiający rozpoznanie
</Step>
<Step>

### Skonfiguruj szablony powiadomień

Payload webhooka Alertmanagera zawiera uporządkowane pola, takie jak status, commonLabels, commonAnnotations, externalURL oraz tablicę alerts. Do tych pól możesz odwoływać się bezpośrednio w szablonach Echobell.

Proponowane szablony:

Szablon tytułu:

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

Szablon treści:

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

Opcjonalny szablon odnośnika (Ustawienia zaawansowane):

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

Dzięki temu w rekordzie alertu pojawi się bezpośredni odnośnik do wykresu lub pulpitu z aktywnym alertem. Jeśli generatorURL nie występuje, użyty zostanie externalURL.

</Step>
<Step>
### Metoda integracji A — webhook (zalecana)

1. W swoim kanale Echobell skopiuj adres URL webhooka z sekcji wyzwalaczy
2. W Alertmanagerze dodaj odbiorcę webhook, który wysyła żądania pod ten adres

Minimalny przykład 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
```

Uwagi:

- send_resolved: true powoduje powiadomienie także wtedy, gdy alert zostanie rozwiązany (status zmienia się na resolved)
- Echobell odczytuje treść JSON w niezmienionej postaci, więc powyższe szablony wyrenderują się poprawnie
</Step>
<Step>

### Metoda integracji B — e-mail (alternatywa)

Jeśli wolisz lub musisz korzystać z poczty, użyj odbiorcy email w Alertmanagerze i wysyłaj wiadomości na adres e-mail powiązany z kanałem.

1. W Echobell skopiuj adres e-mail kanału z sekcji wyzwalaczy
2. Skonfiguruj odbiorcę email w Alertmanagerze i użyj prostych szablonów

Przykładowy fragment:

```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>
```

W szablonach Echobell dla wyzwalaczy e-mail możesz korzystać ze zmiennych takich jak subject, text i html, które Echobell udostępnia automatycznie.

</Step>
<Step>
### Utwórz przykładową regułę alertu

Oto niewielka przykładowa reguła do przetestowania całego przepływu:

```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"
```

Gdy ten alert zadziała, Alertmanager wyśle zdarzenie do skonfigurowanego odbiorcy, a Echobell powiadomi subskrybentów kanału.

</Step>
</Steps>

## Testowanie integracji

1. Tymczasowo obniż progi albo utwórz alert testowy, który szybko zadziała
2. Sprawdź, czy po jego uruchomieniu dociera powiadomienie z Echobell
3. Jeśli korzystasz z szablonu odnośnika, otwórz rekord i kliknij odnośnik
4. Rozwiąż alert i sprawdź, czy dociera powiadomienie o rozwiązaniu (jeśli jest włączone)

## Wybór typu powiadomień

- Czasowo krytyczne: krytyczne awarie produkcji, incydenty na poziomie dyżuru on-call
- Połączenie: poważne awarie, przy których trzeba kogoś obudzić lub przerwać tryb Skupienia
- Standardowe: rutynowe alerty, ostrzeżenia i komunikaty informacyjne

## Dobre praktyki

1. Utrzymuj szablony zwięzłe, ale konkretne (nazwa alertu, waga, instancja, podsumowanie)
2. Używaj szablonu odnośnika, aby przejść prosto do właściwego wykresu lub pulpitu
3. Grupuj i kieruj alerty w Alertmanagerze, aby uniknąć szumu i zmęczenia alertami
4. Dodawaj etykiety wagi alertu i dobieraj typy powiadomień Echobell do pilności
5. Chroń adres URL webhooka Echobell jak sekret; zmień go, jeśli wyciekł

## Rozwiązywanie problemów

Jeśli alerty nie pojawiają się w Echobell:

- Sprawdź poprawność adresu URL webhooka lub adresu e-mail kanału
- Upewnij się, że kanał Echobell jest aktywny i ma subskrybentów
- Przejrzyj logi Alertmanagera pod kątem błędów dostarczania
- Potwierdź, że trasa (route) w alertmanager.yml rzeczywiście wskazuje zamierzonego odbiorcę
- Przetestuj prostą, jednorazową regułą alertu
- Przy integracji e-mail sprawdź, czy ustawienia SMTP działają i wiadomości są dostarczane

## Prywatność i przetwarzanie danych

Echobell stawia prywatność na pierwszym miejscu:

- Treść powiadomień pozostaje na Twoich urządzeniach
- Na serwerach przechowujemy tylko minimalne dane konfiguracyjne
- Adresy URL webhooków i adresy e-mail kanałów należy traktować jak sekrety
- Echobell nie przechowuje payloadów Twoich alertów na swoich serwerach

## Dodatkowe materiały

- [Dokumentacja Prometheusa](https://prometheus.io/docs/introduction/overview/)
- [Konfiguracja Alertmanagera](https://prometheus.io/docs/alerting/latest/configuration/)
- [Reguły alertów](https://prometheus.io/docs/alerting/latest/alerting_rules/)
- [Webhook Echobell](/docs/webhook)
- [Szablony powiadomień](/docs/notification)
- [Warunki i szablon odnośnika](/docs/conditions)
- [Wsparcie](/docs/support)
