Integracja z AWS CloudWatch

Zamień alarmy CloudWatch w połączenia telefoniczne, Telegram i eskalację

Zasubskrybuj temat SNS do WardenPoint przez HTTPS. Alarmy CloudWatch przychodzą jako powiadomienia SNS, stan alarmu mapuje się na ważność, stan OK wysyła informację o rozwiązaniu i anuluje łańcuch eskalacji, a niepotwierdzone alarmy eskalują przez głos, Telegram, SMS i e-mail.

Konfiguracja
SNS HTTPS
Stan
ALARM / OK
Powrót do normy
Sygnał rozwiązania

Budowa alarmu CloudWatch

LIVE
CloudWatch → SNS
CPUUtilization > 90% na web-01
WardenPoint
mapuj stan · eskaluj · informacja o rozwiązaniu
Telegram
Voice call
Email

Konfiguracja

Trzy kroki w AWS

SNS nie wysyła własnych nagłówków, więc sekret integracji umieszczasz w adresie subskrypcji — wklejasz go raz i gotowe.

  1. 1Krok 1

    Utwórz lub wybierz temat SNS

    W Amazon SNS utwórz temat typu Standard (albo użyj tego, który już obsługuje Twoje alarmy). To do niego alarmy CloudWatch będą publikować zdarzenia.

    $ SNS › Tematy › Utwórz temat › Standard
  2. 2Krok 2

    Zasubskrybuj WardenPoint przez HTTPS

    Dodaj subskrypcję z protokołem HTTPS i punktem końcowym ustawionym na Twój adres WardenPoint z dopisanym ?secret=<Twój sekret>. WardenPoint potwierdza subskrypcję od razu, gdy AWS wyśle uzgadnianie.

    $ Punkt końcowy › https://wardenpoint.com/api/v1/integrations/alerts/…?secret=…
  3. 3Krok 3

    Skieruj alarmy na temat

    W każdym alarmie CloudWatch ustaw akcję alarmu (i opcjonalnie akcję OK) na publikację do tego tematu SNS. WardenPoint automatycznie odbierze alarm przy zmianie stanu.

    $ Alarm › Akcje › Wyślij do tematu SNS

Format danych

Koperta powiadomienia SNS

SNS pakuje alarm CloudWatch jako tekst JSON w polu Message. WardenPoint go rozpakowuje, mapuje NewStateValue na stan aktywny lub rozwiązany i deduplikuje po AlarmArn.

SNS → WardenPoint
sns-notification.jsonJSON
// SNS delivers the alarm as a JSON string inside "Message"
{
"Type": "Notification",
"Message": "{\"AlarmName\":\"High CPU on web-01\",\"NewStateValue\":\"ALARM\",\"NewStateReason\":\"Threshold Crossed\",\"Region\":\"us-east-1\",\"AlarmArn\":\"arn:aws:cloudwatch:us-east-1:000000000000:alarm:High CPU on web-01\",\"Trigger\":{\"Namespace\":\"AWS/EC2\",\"MetricName\":\"CPUUtilization\"}}"
}
Rozsyłanie WardenPoint
WardenPoint response202
{
"status": "queued",
"notification_uuid": "notif_8h2k7yQrxJp",
"channels_planned": [
"telegram_voice",
"voice_call",
"email"
],
"escalation_chain_id": "esc_4j2k9bMcvL"
}

Przepisy na trasowanie

Trzy wzorce dla CloudWatch → WardenPoint

Prowadź różne grupy alarmów lub konta AWS przez osobne integracje WardenPoint, każdą podpiętą do własnego łańcucha eskalacji.

Ważność

ALARM → najpierw telefon

Stan ALARM mapuje się na 'high' w WardenPoint — najpierw połączenie telefoniczne, potem głos w Telegramie, a w trzeciej minucie e-mail. INSUFFICIENT_DATA trafia na spokojniejszy kanał.

match
NewStateValue = ALARM
→ route
ważność: high
Konto

Jeden temat na konto AWS

Utwórz osobną integrację WardenPoint dla każdego konta lub środowiska, każdą zasubskrybowaną do tematu SNS danego konta, aby alarmy produkcyjne i testowe trafiały do różnych łańcuchów.

match
AWSAccountId = prod
→ route
→ łańcuch prod
Powrót do normy

OK wysyła informację o rozwiązaniu

Gdy alarm wraca do OK, SNS publikuje ponownie do tego samego tematu. WardenPoint deduplikuje po AlarmArn, oznacza alert jako rozwiązany, wysyła do łańcucha informację o rozwiązaniu i anuluje trwającą eskalację.

match
NewStateValue = OK
→ route
→ informacja o rozwiązaniu

FAQ CloudWatch

Częste pytania o integrację z CloudWatch

Subskrypcje HTTPS w AWS SNS nie potrafią dodać nagłówka Authorization, więc sekret integracji umieszczasz w adresie punktu końcowego jako ?secret=<Twój sekret>. Adres znajduje się wyłącznie w konfiguracji Twojej subskrypcji SNS i jest przesyłany przez TLS. Żądanie z błędnym lub brakującym sekretem zostaje odrzucone z kodem 401.
Plan darmowy

Podłącz jeden alarm CloudWatch, zanim na nim polegniesz

Zasubskrybuj temat SNS, wyzwól testowy alarm i przeczytaj wpis w dzienniku audytu. Bez karty. Bez ryzyka dla produkcji.

  • Stan mapuje się na ważność
  • Stan OK anuluje eskalację
  • Trasowanie dla każdego konta