Сигналы тревоги и уведомления CloudWatch

Мониторинг и устранение неполадок в AWS

John Q. Martin

Principal Consultant

Что такое сигналы тревоги CloudWatch

 

Ключевые понятия

  • Отслеживает одну метрику за период
  • Выполняет действия при превышении порога

 

Шесть основных компонентов сигнала тревоги CloudWatch: метрика, порог, период, периоды оценки, точки данных для тревоги и действия

Мониторинг и устранение неполадок в AWS

Состояния сигнала тревоги

Три состояния сигнала тревоги CloudWatch: OK, ALARM и INSUFFICIENT_DATA

Диаграмма переходов сигнала тревоги CloudWatch между состояниями по мере поступления данных метрики

Мониторинг и устранение неполадок в AWS

Оценка сигнала тревоги

 

  1. Сбор точек данных с заданными интервалами
  2. Применение статистики (Average, Sum, Max, Min) за период
  3. Сравнение результата с порогом
  4. Подсчёт периодов оценки с превышением
  5. Смена состояния при достижении порога datapoints-to-alarm

 

Metric: CPUUtilization > 80%
Period: 5 min | 
Eval Periods: 3 | 
Datapoints to Alarm: 2 of 3

Period 1: 85% (breach) | 
Period 2: 75% (ok) | 
Period 3: 90% (breach)
Result: ALARM — 2 of 3 breached
Мониторинг и устранение неполадок в AWS

Стратегии оценки

 

Три стратегии оценки сигнала тревоги: последовательное, частичное и единичное превышение — с их компромиссами по чувствительности

Мониторинг и устранение неполадок в AWS

Типы и триггеры действий сигнала тревоги

 

Триггеры действий

  • OK
  • ALARM
  • INSUFFICIENT_DATA

 

Типы действий

  • SNS Notification
  • Auto Scaling
  • EC2 Action (stop/terminate/reboot/recover)
  • Systems Manager
Мониторинг и устранение неполадок в AWS

Поведение при отсутствии данных

 

Варианты поведения при отсутствии данных: notBreaching, breaching, ignore и missing

Мониторинг и устранение неполадок в AWS

Создание стандартного сигнала тревоги: AWS CLI

aws cloudwatch put-metric-alarm \
  --alarm-name HighCPUUtilization \
  --alarm-description "Alert when CPU exceeds 80%" \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 2 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold \
  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:my-topic
Мониторинг и устранение неполадок в AWS

Составные сигналы тревоги: что и зачем

Проблема

  • Несколько связанных сигналов срабатывают отдельно = усталость от оповещений

Решение

  • Объединение сигналов с помощью логических операторов

Логика составного сигнала тревоги: объединение дочерних сигналов с операторами AND, OR и NOT

Мониторинг и устранение неполадок в AWS

Создание составного сигнала тревоги: AWS CLI

aws cloudwatch put-composite-alarm \
  --alarm-name CriticalSystemHealth \
  --alarm-description "Critical when CPU and Memory both high" \
  --actions-enabled \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:critical-alerts \
  --alarm-rule "ALARM(HighCPUAlarm) AND ALARM(HighMemoryAlarm)"
Пример сложного правила
--alarm-rule "(ALARM(HighErrorRate) OR ALARM(HighLatency)) \
  AND NOT ALARM(MaintenanceMode)"
Мониторинг и устранение неполадок в AWS

Стратегия выбора порога

Четыре стратегии выбора порога: отклонение от базовой линии, ограничения ёмкости, целевые показатели SLA и скорость изменения

Мониторинг и устранение неполадок в AWS

Многоуровневая стратегия сигналов тревоги

 

Многоуровневое реагирование на сигналы тревоги: уровни warning, critical и emergency с маршрутизацией в отдельные темы SNS

Пример: CPU Warning при 75%, Critical при 90%, каждый с отдельной темой SNS

Мониторинг и устранение неполадок в AWS

Сигналы тревоги на основе обнаружения аномалий

aws cloudwatch put-metric-alarm \
  --alarm-name AnomalousTraffic \
  --comparison-operator LessThanLowerOrGreaterThanUpperThreshold \
  --metrics '[
    {"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/ApplicationELB",
      "MetricName":"RequestCount"},"Period":300,"Stat":"Average"}},
    {"Id":"e1","Expression":"ANOMALY_DETECTION_BAND(m1, 2)"}
  ]'
  • Модель машинного обучения изучает нормальное поведение метрики
  • Создаёт динамический диапазон порогов (настраивается)
  • Адаптируется к суточным и недельным паттернам
  • Снижает необходимость ручной настройки порогов
Мониторинг и устранение неполадок в AWS

Сигналы тревоги для ресурсов: Lambda и ALB

Сигналы тревоги Lambda

Рекомендуемые сигналы тревоги Lambda: мониторинг числа ошибок, ограничений и высокой длительности вблизи таймаута

Сигналы тревоги ALB

Рекомендуемые сигналы тревоги ALB: мониторинг времени ответа целевых узлов, неисправных хостов и числа ошибок 5xx

Мониторинг и устранение неполадок в AWS

Рекомендуемые практики управления сигналами тревоги

  • Именование: <Service>-<Metric>-<Resource>-<Severity>
  • Описания: что отслеживается, порог, советы по устранению неполадок, ссылки на runbook
  • Теги: Environment, Team, Severity
  • Ежемесячный обзор: корректировка порогов, удаление устаревших, обновление действий
aws cloudwatch set-alarm-state \
  --alarm-name MyAlarm \
  --state-value ALARM \
  --state-reason "Testing alarm notification"
Мониторинг и устранение неполадок в AWS

Итоги урока

  • Три состояния сигнала: OK, ALARM, INSUFFICIENT_DATA
  • Стратегии оценки: последовательное, частичное, единичное превышение
  • Составные сигналы объединяют несколько с операторами AND, OR, NOT
  • Четыре стратегии порогов: статистическая, ёмкость, SLA, скорость изменения
  • Многоуровневые оповещения: warning → critical → emergency
  • Сигналы для Lambda (ошибки, ограничения, длительность) и ALB (5xx, задержка)
Мониторинг и устранение неполадок в AWS

Давайте потренируемся!

Мониторинг и устранение неполадок в AWS

Preparing Video For Download...