Amazon SOA-C02: Мониторинг, логирование и устранение неполадок — Руководство по подготовке
Часть AWS SysOps Administrator Associate SOA-C02 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Мониторинг, ведение журналов и устранение неполадок составляют операционную нервную систему сред AWS: они обнаруживают проблемы, предоставляют контекст и инициируют корректирующие действия. Этот раздел охватывает создание значимых метрик и дашбордов, экономичный сбор и хранение журналов, построение отслеживаемой наблюдаемости приложений, а также автоматизацию оповещений и исправлений. Качественные реализации обеспечивают баланс между полезным сигналом и шумом, контролируют затраты и гарантируют, что сценарии реагирования (playbooks) и автоматизация протестированы и поддаются аудиту.
Метрики, дашборды и оповещения CloudWatch
Проектируйте метрики на основе бизнес- и операционных SLI (задержка, частота ошибок, глубина очереди, CPU/память для инфраструктуры). Используйте встроенные метрики (EC2, RDS, ELB) и пользовательские метрики через PutMetricData для счетчиков на уровне приложений (
undefined
). Отдавайте предпочтение измерениям (dimensions), которые позволяют фильтровать (InstanceId, ServiceName), и избегайте измерений с высокой кардинальностью, которые приводят к резкому росту стоимости метрик.
Используйте дашборды CloudWatch для объединения метрик, журналов и оповещений в операционные представления. Создавайте виджеты в консоли или через CloudFormation (AWS::CloudWatch::Dashboard) с использованием математических выражений для метрик (metric math) для получения производных метрик: вычисляйте частоту ошибок с помощью metric math (ERRORS/SUM(REQUESTS)) и отображайте перцентили (p50, p90, p99). Для оповещений выбирайте шаблоны конфигурации в зависимости от цели:
- Оповещения по одной метрике для простых пороговых значений:
undefined
- Составные оповещения (Composite alarms) для уменьшения шума путем объединения условий (AND/OR) из нескольких оповещений.
- Обнаружение аномалий (Anomaly detection) для автоматической корректировки пороговых значений: используйте CloudWatch anomaly detection для метрики с ожидаемым сезонным поведением.
Критерии принятия решений: используйте периоды оценки (evaluation periods) и настройки ‘datapoint-to-alarm’, чтобы избежать ложных срабатываний (flapping); в качестве действий по оповещению инициируйте SNS, Auto Scaling или Systems Manager Automation. Для сред с переменными базовыми показателями отдавайте предпочтение составным оповещениям и обнаружению аномалий.
CloudWatch Logs, Logs Insights и хранение данных
Агрегируйте журналы с помощью групп журналов CloudWatch Logs и структурируйте их по приложениям и средам. Создавайте группы журналов через CLI:
undefined
и устанавливайте политику хранения с помощью
undefined
. Используйте фильтры подписок (subscription filters) для потоковой передачи журналов в Kinesis Data Firehose (для S3/Redshift), Lambda (для обработки в реальном времени) или партнерские инструменты; сжимайте и партицируйте данные в S3 для снижения затрат на хранение.
Используйте CloudWatch Logs Insights для специальных запросов (ad-hoc) и дашбордов; создавайте сохраненные запросы, которые извлекают идентификаторы трассировки и контекст ошибок (например,
undefined
). Практики контроля затрат на хранение и сбор данных:
- Устанавливайте соответствующий срок хранения для каждой группы журналов (7/30/90/365 дней) в зависимости от требований соответствия и потребностей в устранении неполадок.
- Экспортируйте старые журналы в S3 с помощью жизненного цикла хранения или Firehose со сжатием и правилами жизненного цикла для перемещения в Glacier/Archive.
- Используйте семплирование или структурированные журналы (JSON) и Embedded Metric Format (EMF), чтобы сократить количество дорогостоящих журналов с высокой кардинальностью, при этом продолжая извлекать из них метрики.
Критерии принятия решений: короткий срок хранения для подробных отладочных журналов, более длительный — для журналов аудита/безопасности; направляйте большие объемы журналов в S3 вместо бессрочного хранения в CloudWatch.
CloudTrail, журналы аудита и история событий
Включите CloudTrail во всех регионах и аккаунтах; создайте журнал организации (organization trail) для централизованного сбора журналов аудита в защищенный бакет S3, с валидацией файлов журналов и шифрованием SSE-KMS. Настройте события управления (Read/Write) и выборочно включайте события данных (уровень объектов S3, вызов функций Lambda) там, где требуется детальный аудит, поскольку события данных имеют больший объем и стоимость.
Используйте историю событий CloudTrail в консоли для быстрого поиска за последние 90 дней, а также CloudTrail Lake или Athena для экспортированных в S3 журналов для долгосрочного анализа и расследований. Защитите журнал с помощью следующих мер:
- Принудительное использование мультирегиональных журналов для захвата событий глобальных сервисов.
- Интеграция CloudTrail с CloudWatch Logs для обнаружения событий почти в реальном времени или с EventBridge для маршрутизации определенных событий в Lambda/Systems Manager для автоматического устранения неполадок.
- Применение политик бакета S3 и S3 Object Lock (при необходимости) для предотвращения несанкционированного изменения данных.
Критерии принятия решений: включайте события данных только для тех бакетов/функций, где необходима видимость для криминалистического анализа; используйте централизованные журналы и шаблоны меж-аккаунтного доступа для упрощения соблюдения требований.
Трассировка приложений и наблюдаемость (X-Ray)
Инструментируйте приложения с помощью AWS X-Ray SDK для отправки сегментов (segments) и подсегментов (subsegments). Для неинструментированных сред выполнения запускайте демон/агент X-Ray как sidecar-контейнер или сервис (задача ECS, демон на EC2 или встроенная трассировка в Lambda). Настройте правила семплирования для контроля объема трассировок и задайте карты сервисов в ServiceLens для визуализации зависимостей между сервисами. Аннотируйте трассировки бизнес-ключами (userId, orderId) и записывайте исключения/метаданные для облегчения диагностики.
Коррелируйте трассировки с журналами, включая идентификатор трассировки X-Ray в журналы приложений (используйте заголовок трассировки или SDK для получения текущего trace ID), чтобы запросы в CloudWatch Logs Insights могли объединять журналы и трассировки. Для Lambda включите активную трассировку (в консоли или через
undefined
), чтобы автоматически отправлять трассировки в X-Ray. Используйте аналитику трассировок для выявления длинных хвостов задержек (tail latencies), узких мест и анализа вызовов баз данных.
Критерии принятия решений: включайте трассировку для критически важных сервисов и используйте адаптивную выборку (adaptive sampling) для ограничения затрат; отдавайте предпочтение структурированным трассировкам (аннотации/метаданные), чтобы сделать корреляцию журналов и трассировок детерминированной.
Автоматическое исправление и оповещение (EventBridge/Lambda)
Используйте правила EventBridge для отслеживания изменений состояния CloudWatch Alarm, событий CloudTrail или пользовательских событий и направляйте их на цели, такие как Lambda, документы SSM Automation, Step Functions или SNS. Создавайте правила с преобразователями ввода (input transformers), чтобы передавать минимальный контекст действию по исправлению (
undefined
). Реализуйте функции Lambda для простых исправлений (перезапуск сервиса, отзыв учётных данных), но используйте SSM Automation или Step Functions для длительных, аудируемых сценариев (playbooks) с контрольными точками.
Проектируйте исправления с учётом безопасности: предусмотрите режимы пробного запуска (dry-run), идемпотентность, шаги валидации, принцип наименьших привилегий IAM, логирование и аварийный выключатель (kill-switch). Используйте очереди недоставленных сообщений (dead-letter queues) и политики повторных попыток при интеграции EventBridge/Lambda и публикуйте информацию о попытках исправления в журнал аудита или безопасности. Тестируйте автоматизацию в тестовом аккаунте (staging) и выполняйте канареечные тесты после развёртывания.
Критерии принятия решений: отдавайте предпочтение SSM Automation или Step Functions для многошаговых восстановлений и ручного подтверждения; используйте Lambda для простых и быстрых исправлений. Всегда предусматривайте возможность ручного отката или точку прерывания для вмешательства человека при выполнении рискованных действий.
Распространённые ошибки и критерии принятия решений
- Полагаться на одну метрику для оценки состояния: комбинируйте метрики (например, уровень ошибок + задержка + троттлинг) или используйте составные оповещения (composite alarms) / математику метрик (metric math), чтобы избежать ложных срабатываний.
- Не учитывать затраты на хранение и приём логов: устанавливайте срок хранения для каждой группы логов, направляйте большие объёмы логов в S3 через Firehose со сжатием и используйте политики жизненного цикла для перемещения старых данных на более дешёвые уровни хранения.
- Избыточная инструментация с измерениями высокой кардинальности (high-cardinality dimensions) или отключенной выборкой трассировок: ограничивайте количество измерений и включайте адаптивную выборку (adaptive sampling), чтобы контролировать затраты, сохраняя при этом полезный сигнал.
- Развёртывание автоматического исправления без тестирования: проверяйте в тестовой среде (staging), используйте флаги пробного запуска (dry-run) и убедитесь в идемпотентности и безопасности отката перед активацией в производственной среде.
- Усталость от оповещений из-за «шумных» сигналов тревоги: используйте обнаружение аномалий (anomaly detection), составные оповещения, окна подавления и эскалируйте дежурным инженерам только значимые события.
- Отсутствие корреляции между логами, метриками и трассировками: пробрасывайте идентификаторы трассировки (trace ID) в логи и метрики EMF, а также создавайте сохранённые запросы Logs Insights и представления ServiceLens для связывания данных.
Практическая задача: Пример использования
Компания Acme Payments сталкивается с периодическими сбоями при обработке платежей во время пиковой нагрузки; инженеры наблюдают увеличение задержки и спорадические ошибки 5xx, но автоматические перезапуски иногда маскировали первопричину.
- Инструментировать платёжный сервис с помощью X-Ray SDK и метрик EMF; добавить идентификаторы трассировки в логи приложения и отправлять структурированные метрики
OrdersFailedиOrdersProcessedчерез PutMetricData/EMF. - Создать математическое выражение для метрик (metric math) в CloudWatch для расчёта уровня ошибок (
OrdersFailed/OrdersProcessed) и составное оповещение (composite alarm), объединяющее условия: уровень ошибок > порога И задержка p99 > порога. - Направить действия по тревоге на правило EventBridge, которое запускает рабочий процесс Step Functions для выполнения диагностических шагов (сбор недавних трассировок/логов, запуск проверок состояния) и, если это безопасно, автоматический перезапуск через SSM Automation.
- Настроить подписку CloudTrail и CloudWatch Logs для архивации полных логов в S3 (со сжатием) с политикой жизненного цикла для переноса в Glacier, и установить короткий срок хранения в CloudWatch для подробных отладочных логов.
- Выполнить сквозные тесты и канареечные синтетические транзакции (CloudWatch Synthetics), чтобы проверить работоспособность системы наблюдаемости и процесса исправления перед включением автоматического исправления в производственной среде.
Обоснование: коррелировать метрики, логи и трассировки для поиска первопричины, а не для многократного устранения симптомов; объединять оповещения для уменьшения шума и использовать аудируемую, протестированную автоматизацию (Step Functions/SSM) для безопасного исправления, контролируя при этом затраты на хранение логов.
Все домены · Высокая доступность →
Отработать эти вопросы → · Тесты на время на ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Сдайте экзамен →