0Pricing
Cloud & IT Cert Prep · Урок

Панели CloudWatch и Container Insights

Создавайте операционные панели для нескольких сервисов и включайте Container Insights для получения метрик производительности кластеров ECS и EKS.

«Панели CloudWatch и Container Insights» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Обзор панелей CloudWatch

Панели CloudWatch — это настраиваемые представления инфраструктуры AWS с несколькими виджетами, которые обеспечивают целостную картину работы системы. На одной панели можно отображать метрики нескольких сервисов и аккаунтов AWS с помощью линейных графиков, виджетов с числовыми значениями, индикаторов, оповещений и результатов запросов к журналам. Панели являются глобальными ресурсами: одна панель может показывать метрики из любого региона. Вы можете сделать панели общедоступными или ограничить доступ с помощью политик IAM.

Виджеты панелей

Панели CloudWatch поддерживают несколько типов виджетов: графики Line и Stacked area для метрик временных рядов, виджеты Number для отображения последнего значения метрики (особенно полезны для ключевых показателей эффективности), диаграммы Bar для сравнений, Gauge для отображения показателей ёмкости, Alarm status для сводки состояний оповещений, Log table для результатов запросов Live Tail или Insights и Text для подписей и документации. Объединение разных типов виджетов на одной панели помогает командам быстро оценить состояние системы.

# Create a dashboard via CLI (body must be escaped JSON)
aws cloudwatch put-dashboard \
  --dashboard-name ProductionOverview \
  --dashboard-body '{
    "widgets": [
      {
        "type": "metric",
        "properties": {
          "metrics": [["AWS/EC2","CPUUtilization","AutoScalingGroupName","my-asg"]],
          "period": 60,
          "stat": "Average",
          "title": "ASG CPU Utilization"
        }
      }
    ]
  }'

Панели для нескольких аккаунтов и регионов

CloudWatch поддерживает наблюдение за несколькими аккаунтами с использованием аккаунтов мониторинга и исходных аккаунтов. Вы можете назначить центральный аккаунт мониторинга, связать с ним исходные аккаунты и создавать панели, которые получают метрики и журналы из всех связанных аккаунтов. Благодаря этому не требуется переключаться между аккаунтами Console для наблюдения за средой с несколькими аккаунтами. Виджеты для нескольких регионов в одном аккаунте поддерживаются изначально: достаточно указать регион в определении панели в формате JSON.

# Enable cross-account sharing in a source account
aws cloudwatch put-dashboard \
  --dashboard-name MultiRegionView \
  --dashboard-body '{
    "widgets": [
      {
        "type": "metric",
        "properties": {
          "metrics": [
            ["AWS/RDS","DatabaseConnections","DBInstanceIdentifier","prod-db",{"region":"us-east-1"}],
            ["AWS/RDS","DatabaseConnections","DBInstanceIdentifier","prod-db-eu",{"region":"eu-west-1"}]
          ],
          "title": "DB Connections: us-east-1 vs eu-west-1"
        }
      }
    ]
  }'

CloudWatch Live Tail

CloudWatch Live Tail (запущенный в 2023 году) позволяет передавать события журналов из одной или нескольких групп журналов почти в реальном времени непосредственно в Console CloudWatch или через CLI — подобно запуску tail -f для файла журнала. Вы можете применить шаблон фильтра, чтобы видеть только соответствующие события. Live Tail незаменим во время развёртывания или расследования инцидентов, когда необходимо наблюдать за текущей работой приложения без выполнения полноценных запросов Insights.

# Start a Live Tail session for a Lambda function's logs
aws logs start-live-tail \
  --log-group-identifiers '/aws/lambda/my-function' \
  --log-event-filter-pattern 'ERROR'

# The output streams log events in real time until you cancel (Ctrl+C)

Что такое Container Insights?

CloudWatch Container Insights — это функция CloudWatch, которая собирает, агрегирует и обобщает метрики и журналы контейнеризованных рабочих нагрузок, выполняющихся в Amazon ECS (EC2 и Fargate) и Amazon EKS (EC2 и Fargate). Она предоставляет готовые панели для анализа производительности на уровне кластера, сервиса, узла и пода, не требуя вручную добавлять инструментарий в каждое приложение. Container Insights использует агент CloudWatch или маршрутизатор журналов EKS Fargate для сбора данных.

# Enable Container Insights on an ECS cluster
aws ecs update-cluster-settings \
  --cluster my-ecs-cluster \
  --settings name=containerInsights,value=enabled

# Enable Container Insights on EKS (via CloudWatch Agent DaemonSet)
eksctl utils update-cluster-logging \
  --cluster my-eks-cluster \
  --enable-types all \
  --region us-east-1

Метрики Container Insights

Container Insights собирает метрики в пространствах имён ECS/ContainerInsights и ContainerInsights. Для EKS они включают: уровень пода — pod_cpu_utilization, pod_memory_utilization, pod_network_rx_bytes; уровень узла — node_cpu_utilization, node_memory_utilization, node_filesystem_utilization; уровень кластера — cluster_failed_node_count, cluster_node_count. Все метрики помечаются измерениями кластера, пространства имён, сервиса и пода, что позволяет точно выполнять фильтрацию.

# Query pod memory utilization for a specific namespace
aws cloudwatch get-metric-statistics \
  --namespace ContainerInsights \
  --metric-name pod_memory_utilization \
  --dimensions \
    Name=ClusterName,Value=my-cluster \
    Name=Namespace,Value=production \
  --statistic Average \
  --period 60 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z

Панели Container Insights в Console

После включения Container Insights Console CloudWatch автоматически предоставляет готовые представления Container Map и Performance Monitoring. Container Map отображает задачи ECS или поды EKS в виде визуальной топологии, окрашенной в зависимости от состояния, с возможностью перейти к метрикам отдельного контейнера. Представление Performance Monitoring предоставляет графики временных рядов для производительности кластера, узлов, подов и контейнеров без ручной настройки панели.

Производительность задач ECS с Container Insights

Для ECS on EC2 Container Insights устанавливает агент CloudWatch как службу-демон на каждом экземпляре контейнера. Для ECS on Fargate Container Insights использует сборщик метрик sidecar в версии платформы Fargate 1.4.0. Вы получаете доступ к метрикам ECS по измерению кластера, сервиса, задачи или контейнера. Распространённый шаблон оповещения — создать оповещение при приближении значения MemoryUtilized к значению MemoryReserved задачи, чтобы выявить потенциальные условия OOM до остановки задач.

# Get memory reservation and utilisation for a service
aws cloudwatch get-metric-statistics \
  --namespace ECS/ContainerInsights \
  --metric-name MemoryUtilized \
  --dimensions Name=ClusterName,Value=my-cluster Name=ServiceName,Value=api-service \
  --statistic Average \
  --period 300 \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ)

Сигналы приложений и ServiceLens

CloudWatch ServiceLens объединяет метрики, журналы и трассировки в единую карту сервисов. Для его работы необходимо включить AWS X-Ray вместе с CloudWatch. ServiceLens визуализирует сквозные потоки запросов между сервисами, выделяет узкие места по задержке и показывает частоту ошибок для каждого сервиса. CloudWatch Application Signals (более новый преемник) автоматически добавляет инструментарий в приложения, чтобы предоставлять SLO и SLI без изменений кода, позволяя отслеживать надёжность не только по необработанным метрикам.

Рекомендации по созданию панелей

Эффективные панели CloudWatch соответствуют следующим рекомендациям: разделяйте панели по аудитории (операционная, руководящая и для разработчиков), используйте виджеты состояния оповещений как первый элемент, который видят дежурные команды, закрепляйте панели для частого доступа и применяйте динамические ссылки с CloudFormation, чтобы ссылки на метрики панелей соответствовали фактическим именам ресурсов. Не перегружайте одну панель: удобство чтения особенно важно при диагностике инцидента в стрессовой ситуации.

CloudWatch Contributor Insights

CloudWatch Contributor Insights анализирует структурированные данные журналов, чтобы определить основных участников — топ-N — метрики за определённый период. Например, он может показать, какие IP-адреса создают больше всего ошибок 5xx, какие пути API имеют наибольший объём запросов или какие идентификаторы клиентов чаще всего сталкиваются с ограничением пропускной способности DynamoDB. Правила определяют поле JSON, которое нужно извлечь и использовать для агрегации. Результаты отображаются в виде графиков временных рядов, которые непрерывно обновляются по мере поступления новых данных журналов.

# Enable Contributor Insights on a DynamoDB table
aws dynamodb enable-kinesis-streaming-destination \
  --table-name my-table

# Or enable CloudWatch Contributor Insights via the console:
# CloudWatch -> Contributor Insights -> Create rule
# Log group: /aws/dynamodb/tables
# Contributor field: $.TableName
# Aggregation: COUNT by $.requestID

Быстрая проверка

Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.

Повторение урока

В этом уроке Вы узнали, что панели CloudWatch поддерживают несколько типов виджетов и могут агрегировать метрики между аккаунтами и регионами, Container Insights автоматически собирает метрики на уровне подов и узлов из ECS и EKS без ручного добавления инструментария, а Contributor Insights определяет основных участников по структурированным данным журналов. Далее мы рассмотрим CloudTrail Trails и историю событий для аудита на уровне API.

Часто задаваемые вопросы

Урок «Панели CloudWatch и Container Insights» бесплатный?

Да — полный текст урока «Панели CloudWatch и Container Insights» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Чему я научусь в уроке «Панели CloudWatch и Container Insights»?

Создавайте операционные панели для нескольких сервисов и включайте Container Insights для получения метрик производительности кластеров ECS и EKS. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?

Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Панели CloudWatch и Container Insights»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?

Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Метрики CloudWatch, пространства имён и измерения
  2. Оповещения CloudWatch и составные оповещения
  3. Журналы CloudWatch и Log Insights
  4. Панели CloudWatch и Container Insights
← Назад к Cloud & IT Cert Prep