Гид по технологиям

Установка и настройка агента Amazon CloudWatch на Windows EC2

• 8 min read • Мониторинг. • Обновлено 22 Nov 2025
CloudWatch на Windows EC2: установка и настройка
CloudWatch на Windows EC2: установка и настройка

Быстрые ссылки

  • Предварительные требования
  • Подключение к Windows EC2
  • Установка агента CloudWatch
  • Конфигурация CloudWatch
  • Запуск агента CloudWatch
  • Проверка и отладка
  • Альтернативные подходы и чеклисты
  • Вывод

Обзор процесса установки и настройки агента CloudWatch на Windows EC2

Windows-серверы отлично работают в AWS и поддерживают большинство встроенных сервисов Amazon, включая CloudWatch. Однако чтобы отправлять метрики и логи в CloudWatch с Windows, обычно требуется вручную установить агент.

В локальном дата-центре часто разворачивают мониторинг локально рядом с каждым сервером, что потребляет ресурсы. В AWS можно централизовать сбор метрик и логов через CloudWatch без отдельной инфраструктуры мониторинга.

CloudWatch — это сервис AWS для сбора метрик и логов с разных источников (EC2, on-prem и т. д.) с последующей консолидацией в едином месте.

Цель руководства: установить AWS CloudWatch Agent на Windows EC2 и настроить отправку логов и метрик в CloudWatch.

Предварительные требования

  1. Учетная запись AWS
  2. 64‑битный Windows Server на EC2 или локальный сервер с Windows Server 2008 или новее
  3. Файл ключа для доступа к EC2 (только для EC2)
  4. Привилегии администратора на целевом сервере (локально или через RDP)

Важно: наличие правильной роли IAM, назначенной экземпляру (или учетных данных), упрощает работу агента: он должен иметь права отправлять метрики и логи в CloudWatch. Если вы используете EC2, предпочтительнее назначать роль экземпляру, а не хранить ключи в системе.

Подключение к Windows EC2

Первый шаг — вход по RDP на ваш Windows EC2, чтобы установить агент. Для этого в консоли EC2 вам потребуются Public DNS (или IP) и файл ключа (.pem), привязанный к экземпляру.

В консоли EC2 выберите экземпляр, нажмите правой кнопкой и выберите действие получения пароля. В разных интерфейсах AWS это может называться «Get Windows Password» (получить пароль Windows). Вас попросят указать файл ключа — если ключ соответствует экземпляру, вы получите сгенерированный пароль для администратора.

Окно консоли AWS для получения пароля Windows с указанием загрузки ключа

Если ключ утрачен и вы не можете расшифровать пароль — единственный вариант безопасно восстановить доступ к экземпляру обычно заключается в его пересоздании (Terminate + новый запуск) или в использовании снимка/замены диска через другой экземпляр. Amazon не может восстановить утерянный приватный ключ за вас.

Скопируйте пароль в менеджер паролей и откройте любой RDP-клиент. Подключитесь по Public DNS / IP, затем введите Administrator и полученный пароль. После успешного входа вы увидите рабочий стол Windows на EC2.

Рабочий стол Windows после входа по RDP

Совет: заранее проверьте правила безопасности группы (Security Group) — RDP (TCP/3389) должен быть открыт для вашего IP или VPN.

Установка агента CloudWatch

После входа в систему откройте PowerShell от имени администратора. Amazon поставляет готовый .msi-инсталлятор для агента CloudWatch. В документации есть региональные и глобальные ссылки — обе подойдут.

Запустите следующие команды в PowerShell, чтобы скачать и начать установку. (Ниже сохранён пример команд, приведённый в официальном руководстве):

Invoke-WebRequest -Uri https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile $env:USERPROFILEDownloadsamazon-cloudwatch-agent.msi -UseBasicParsing  
Invoke-Item $env:USERPROFILEDownloadsamazon-cloudwatch-agent.msi

Важно: в зависимости от версии PowerShell или настроек путей, возможно, потребуется скорректировать путь сохранения (например, использовать “$env:USERPROFILE\Downloads\amazon-cloudwatch-agent.msi”). Если команда загрузки завершилась успешно, запустится мастер установки .msi.

После установки на сервер появится новая служба (например, AmazonCloudWatchAgent) — это фоновый процесс, который будет собирать метрики/логи.

Проверьте наличие службы через Get-Service. Не запускайте её до настройки конфигурации.

PowerShell: вывод Get-Service показывает состояние службы AmazonCloudWatchAgent (не запущена)

Конфигурация CloudWatch

Агент настраивается с помощью JSON‑конфигурации. Вы можете написать файл вручную или воспользоваться встроенным мастером конфигурации, который задаёт базовые параметры для сбора логов, событий Windows Event и метрик.

Чтобы запустить мастер, из PowerShell выполните команду, которая запускает исполняемый файл конфигуратора из папки установки CloudWatch. Пример (вставьте как есть в PowerShell):

Invoke-Item "C:Program FilesAmazonAmazonCloudWatchAgentamazon-cloudwatch-agent-config-wizard.exe"

Мастер задаст вопросы об источниках логов, интервалах метрик и формате Windows Events, после чего сгенерирует файл config.json. По умолчанию он сохраняется в профиле текущего пользователя.

Альтернатива: хранить конфигурацию в AWS Systems Manager (SSM) — тогда несколько экземпляров смогут получать единую версию конфигурации. Для этого требуется, чтобы на экземплярах был настроен агент SSM и соответствующая IAM роль.

Ниже приведён пример конфигурации, сгенерированной мастером (оставлена в исходном виде):

{  
    "logs": {  
        "logs_collected": {  
            "files": {  
                "collect_list": [  
                    {  
                        "file_path": "C:\ENTER\PATH\HERE\log.txt",  
                        "log_group_name": "log.txt",  
                        "log_stream_name": "{instance_id}"  
                    }  
                ]  
            },  
            "windows_events": {  
                "collect_list": [  
                    {  
                        "event_format": "xml",  
                        "event_levels": [  
                            "WARNING",  
                            "ERROR",  
                            "CRITICAL"  
                        ],  
                        "event_name": "System",  
                        "log_group_name": "System",  
                        "log_stream_name": "{instance_id}"  
                    }  
                ]  
            }  
        }  
    },  
    "metrics": {  
        "append_dimensions": {  
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}",  
            "ImageId": "${aws:ImageId}",  
            "InstanceId": "${aws:InstanceId}",  
            "InstanceType": "${aws:InstanceType}"  
        },  
        "metrics_collected": {  
            "LogicalDisk": {  
                "measurement": [  
                    "% Free Space"  
                ],  
                "metrics_collection_interval": 60,  
                "resources": [  
                    "*"  
                ]  
            },  
            "Memory": {  
                "measurement": [  
                    "% Committed Bytes In Use"  
                ],  
                "metrics_collection_interval": 60  
            },  
            "statsd": {  
                "metrics_aggregation_interval": 60,  
                "metrics_collection_interval": 10,  
                "service_address": ":8125"  
            }  
        }  
    }  
}

Пояснения к полям (в одном предложении каждое):

  • file_path — путь к файлу логов на сервере.
  • log_group_name — имя группы логов в CloudWatch Logs.
  • log_stream_name — поток в группе логов (можно использовать {instance_id}).
  • metrics_collection_interval — интервал сбора метрик в секундах.
  • append_dimensions — дополнительные измерения, добавляемые к каждой метрике.

Совет: не отправляйте в CloudWatch всё подряд — фильтруйте логи и задавайте разумные интервалы метрик, чтобы избежать лишнего шума и расходов.

Запуск агента CloudWatch

Когда конфигурация готова и сохранена (например, %USERPROFILE%\config.json), запустите агент командой из каталога установки:

.cd "C:Program FilesAmazonAmazonCloudWatchAgent"

.amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m EC2 -c file:$env:USERPROFILEconfig.json -s

Эта команда заберёт конфигурацию из файла и запустит службу агента с указанными настройками.

После выполнения снова проверьте статус службы через Get-Service — служба должна быть запущена.

PowerShell: служба AmazonCloudWatchAgent запущена

Далее откройте консоль CloudWatch в AWS: в разделе Metrics -> All-Metrics -> All -> EC2 -> Per-Instance Metrics вы должны увидеть метрики вашего экземпляра.

Консоль CloudWatch: метрики EC2 по экземплярам отображаются в All-Metrics

Проверка и отладка

Если метрики или логи не появляются, проверьте по шагам:

  • IAM роль экземпляра: есть ли у неё права CloudWatch Logs и CloudWatch Metrics (управляемая политика для агента или собственная роль).
  • Сеть: экземпляр должен иметь доступ к сервисам AWS (через интернет или VPC Endpoint для CloudWatch/Logs).
  • Файлы конфигурации: правильные пути и корректный JSON (валидность можно проверить через jsonlint или PowerShell ConvertFrom-Json).
  • Служба агента: в Windows Services проверьте журнал событий (Event Viewer) на предмет ошибок агента.
  • Логи агента: обычно агент пишет собственные логи в папку установки или в папку %ProgramData% — просмотрите их на ошибки подключения.

Частые сообщения и их решение:

  • “AccessDenied”: проверьте IAM-политику и привязку роли.
  • “Connection timed out”: проверьте правила Network ACL/SG и маршрутизацию.
  • “Invalid configuration”: проверьте JSON и escape-символы в путях файлов.

Когда этот подход не подходит (кратко)

  • Устаревшие версии Windows, которые не поддерживают агент.
  • Жёсткие сетевые изоляции без возможности настроить VPC Endpoint или выйти в интернет.
  • Требования к данным и соответствию, при которых логи нельзя отправлять в облако (требуется локальное хранение).

Альтернативные подходы

  1. Установка агента с помощью AWS Systems Manager (SSM): позволяет централизованно развернуть .msi через Run Command или State Manager.
  2. Использование образов AMI с предустановленным агентом, чтобы ускорить деплой новых экземпляров.
  3. Третьи стороны: Datadog, New Relic или другие APM/лог-менеджеры при наличии корпоративных договорённостей.

Практические эвристики и ментальные модели

  • Ограничивайте cardinality (количество уникальных сочетаний измерений) — большое число уникальных потоков увеличивает расходы.
  • Для системных метрик выбирайте интервал 60 с; для критичных метрик — 10–30 с.
  • Логи с высокой частотой стремитесь предварительно фильтровать или агрегировать.

Ролевые контрольные списки

Администратор (SRE / DevOps):

  • Назначить IAM роль экземпляру с необходимыми правами.
  • Обеспечить сетевой доступ к CloudWatch/Logs.
  • Настроить и протестировать конфигурацию на тестовом экземпляре.

Разработчик приложения:

  • Указать пути логов и формат логов, удобный для парсинга.
  • Согласовать имена групп логов и потоков с командным соглашением.

Владелец сервиса:

  • Подтвердить ключевые метрики и события для оповещений.
  • Настроить предупреждения (alarms) в CloudWatch для SLA/инцидентов.

Шаблон быстрого запуска (mini-SOP)

  1. Подготовить IAM роль с правами CloudWatch.
  2. Проверить правила безопасности EC2 (RDP, исходящий трафик).
  3. Подключиться по RDP к экземпляру.
  4. Скачать и запустить .msi агента.
  5. Сгенерировать config.json через мастер или загрузить готовый.
  6. Запустить агент командой fetch-config и проверить статус.
  7. Проверить появление метрик и логов в консоли CloudWatch.
  8. Настроить alarms и дашборды.

Шаблоны конфигураций и сниппеты (полезно)

Используйте следующие практики в config.json:

  • Указывать log_group_name в формате /application/service-name
  • Для логов приложений указывать log_stream_name как {instance_id}/{hostname}
  • Для файловых путей использовать абсолютные пути с экранированием обратных слэшей

Пример минимальной записи collect_list для файловых логов (обязателен escape слэшей в JSON):

{
  "file_path": "C:\\ProgramData\\MyApp\\logs\\app.log",
  "log_group_name": "/myapp/prod",
  "log_stream_name": "{instance_id}"
}

Частые ошибки и их решения

  • Неправильный путь в file_path: убедитесь, что файл существует и служба имеет доступ.
  • Проблемы с правами IAM: проверьте, что роль/пользователь имеет политики cloudwatch:PutMetricData и logs:PutLogEvents.
  • Агент не запускается автоматически: проверьте Recovery options и зависимости службы.
  • Высокая стоимость логирования: уменьшите объём отправляемых логов, используйте фильтрацию и ретеншн политики.

Important: при работе с логами убедитесь, что вы не отправляете в облако конфиденциальные данные без соответствующей защиты и согласия.

Критерии приёмки

  • Служба AmazonCloudWatchAgent запущена на целевом экземпляре.
  • В консоли CloudWatch видны метрики для данного экземпляра (Per-Instance Metrics).
  • В CloudWatch Logs появилась ожидаемая группа логов и потоки.
  • Настроены базовые оповещения (alarms) на ключевые метрики.

Вывод

Вы научились: подключаться к Windows EC2, устанавливать CloudWatch Agent, генерировать конфигурацию и запускать службу для отправки метрик и логов в CloudWatch. Для промышленного использования рекомендуется автоматизировать установку через AMI или AWS Systems Manager, централизовать конфигурации через SSM и продумать IAM и сетевую безопасность.

Краткая памятка: минимальный путь к успеху — роль IAM → корректная конфигурация JSON → проверка сети → запуск агента → проверка в консоли.

Дополнительно: если нужна версия для on-prem серверов — те же шаги применимы с учётом сетевого доступа к AWS и наличия подходящей IAM аутентификации (например, с помощью временных учётных данных).

Краткое резюме

  • Установите агент через .msi и настройте config.json.
  • Используйте мастер конфигурации или SSM для масштабирования.
  • Проверяйте метрики и логи в CloudWatch и настраивайте оповещения.

Спасибо — если хотите, могу сгенерировать пример config.json под вашу конкретную структуру логов или подготовить PowerShell-скрипт для автоматизации установки и настройки агента.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро