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

Windows-серверы отлично работают в AWS и поддерживают большинство встроенных сервисов Amazon, включая CloudWatch. Однако чтобы отправлять метрики и логи в CloudWatch с Windows, обычно требуется вручную установить агент.
В локальном дата-центре часто разворачивают мониторинг локально рядом с каждым сервером, что потребляет ресурсы. В AWS можно централизовать сбор метрик и логов через CloudWatch без отдельной инфраструктуры мониторинга.
CloudWatch — это сервис AWS для сбора метрик и логов с разных источников (EC2, on-prem и т. д.) с последующей консолидацией в едином месте.
Цель руководства: установить AWS CloudWatch Agent на Windows EC2 и настроить отправку логов и метрик в CloudWatch.
Предварительные требования
- Учетная запись AWS
- 64‑битный Windows Server на EC2 или локальный сервер с Windows Server 2008 или новее
- Файл ключа для доступа к EC2 (только для EC2)
- Привилегии администратора на целевом сервере (локально или через RDP)
Важно: наличие правильной роли IAM, назначенной экземпляру (или учетных данных), упрощает работу агента: он должен иметь права отправлять метрики и логи в CloudWatch. Если вы используете EC2, предпочтительнее назначать роль экземпляру, а не хранить ключи в системе.
Подключение к Windows EC2
Первый шаг — вход по RDP на ваш Windows EC2, чтобы установить агент. Для этого в консоли EC2 вам потребуются Public DNS (или IP) и файл ключа (.pem), привязанный к экземпляру.
В консоли EC2 выберите экземпляр, нажмите правой кнопкой и выберите действие получения пароля. В разных интерфейсах AWS это может называться «Get Windows Password» (получить пароль Windows). Вас попросят указать файл ключа — если ключ соответствует экземпляру, вы получите сгенерированный пароль для администратора.

Если ключ утрачен и вы не можете расшифровать пароль — единственный вариант безопасно восстановить доступ к экземпляру обычно заключается в его пересоздании (Terminate + новый запуск) или в использовании снимка/замены диска через другой экземпляр. Amazon не может восстановить утерянный приватный ключ за вас.
Скопируйте пароль в менеджер паролей и откройте любой RDP-клиент. Подключитесь по Public DNS / IP, затем введите Administrator и полученный пароль. После успешного входа вы увидите рабочий стол Windows на EC2.

Совет: заранее проверьте правила безопасности группы (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. Не запускайте её до настройки конфигурации.

Конфигурация 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 — служба должна быть запущена.

Далее откройте консоль CloudWatch в AWS: в разделе Metrics -> All-Metrics -> All -> EC2 -> Per-Instance 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 или выйти в интернет.
- Требования к данным и соответствию, при которых логи нельзя отправлять в облако (требуется локальное хранение).
Альтернативные подходы
- Установка агента с помощью AWS Systems Manager (SSM): позволяет централизованно развернуть .msi через Run Command или State Manager.
- Использование образов AMI с предустановленным агентом, чтобы ускорить деплой новых экземпляров.
- Третьи стороны: Datadog, New Relic или другие APM/лог-менеджеры при наличии корпоративных договорённостей.
Практические эвристики и ментальные модели
- Ограничивайте cardinality (количество уникальных сочетаний измерений) — большое число уникальных потоков увеличивает расходы.
- Для системных метрик выбирайте интервал 60 с; для критичных метрик — 10–30 с.
- Логи с высокой частотой стремитесь предварительно фильтровать или агрегировать.
Ролевые контрольные списки
Администратор (SRE / DevOps):
- Назначить IAM роль экземпляру с необходимыми правами.
- Обеспечить сетевой доступ к CloudWatch/Logs.
- Настроить и протестировать конфигурацию на тестовом экземпляре.
Разработчик приложения:
- Указать пути логов и формат логов, удобный для парсинга.
- Согласовать имена групп логов и потоков с командным соглашением.
Владелец сервиса:
- Подтвердить ключевые метрики и события для оповещений.
- Настроить предупреждения (alarms) в CloudWatch для SLA/инцидентов.
Шаблон быстрого запуска (mini-SOP)
- Подготовить IAM роль с правами CloudWatch.
- Проверить правила безопасности EC2 (RDP, исходящий трафик).
- Подключиться по RDP к экземпляру.
- Скачать и запустить .msi агента.
- Сгенерировать config.json через мастер или загрузить готовый.
- Запустить агент командой fetch-config и проверить статус.
- Проверить появление метрик и логов в консоли CloudWatch.
- Настроить 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-скрипт для автоматизации установки и настройки агента.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента