AWS CloudWatch · 4 min read · Dec 02, 2025

Как отправить журналы приложений Linux в AWS CloudWatch

AWS CloudWatch — это сервис мониторинга, предоставляемый облаком AWS. AWS предоставляет стандартный мониторинг для параметров сервера, таких как использование ЦП, входящий и исходящий трафик и т. д. AWS CloudWatch может использоваться для пользовательского мониторинга, такого как использование диска и памяти (ОЗУ). Для пользовательского мониторинга необходимо выполнить несколько шагов, чтобы его настроить.

Аналогичным образом, AWS CloudWatch может использоваться для мониторинга журналов сервера или приложений. Поскольку это не стандартная функция AWS по очевидным причинам, мы можем настроить ее в соответствии с нашими требованиями. Это будет зависеть от пользователя, какие журналы нам нужно отправить в AWS CloudWatch для мониторинга.

Не ограничивается ресурсами AWS

Даже если AWS CloudWatch является сервисом AWS, это не означает, что он может использоваться только для экземпляров EC2, его также можно настроить для отправки журналов приложений или серверов из ВМ других облачных провайдеров, а также из ВМ на физическом диске.

Как отправить журналы приложений или серверов в AWS CloudWatch

Чтобы отправить журналы приложений или серверов в AWS CloudWatch, необходимо установить агент CloudWatch на соответствующем сервере. Мы будем использовать экземпляр AWS EC2 для достижения нашей цели в этом блоге.

Шаги

  1. Необходимая роль должна быть прикреплена к экземпляру для связи с AWS CloudWatch
  2. Установка агента AWS CloudWatch
  3. Конфигурация агента AWS CloudWatch
  4. Тестирование журналов в портале AWS CloudWatch

IAM Роль

Чтобы отправить журналы приложений или серверов в AWS CloudWatch, необходимо прикрепить роль к экземпляру EC2 с соответствующими разрешениями. Роль позволит вносить изменения в AWS CloudWatch.

Она должна содержать следующие политики.

  • CreateLogStream
  • DescribeLogStream
  • CreateLogGroup
  • PutLogEvents

Давайте создадим роль в AWS IAM.

Перейдите в раздел IAM из списка Услуг на консоли AWS. Если у вас еще нет учетной записи AWS, создайте ее отсюда.

Выберите IAM из списка Услуг

На панели управления IAM перейдите в Политика и затем Создать Политику.

На странице “Создать Политику” выберите “JSON” на вкладке и вставьте приведенную ниже политику JSON, удалив стандартную.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    }
  ]
}

Ваша политика должна выглядеть следующим образом. После завершения нажмите кнопку “Просмотреть Политику” внизу страницы.

На следующей странице вам нужно будет указать имя для политики.

После завершения нажмите кнопку “Создать Политику” внизу страницы.

После создания политики вы будете перенаправлены на страницу ролей IAM. Поскольку у нас уже создана необходимая политика, мы создадим роль, которая будет прикреплена к экземпляру.

На странице “Создать Роль” выберите “EC2”. Поскольку мы собираемся прикрепить роль к экземпляру EC2.

Нажмите кнопку “Далее: Разрешения” в левом нижнем углу страницы.

На следующей странице вам будет предложено прикрепить политику к роли. Найдите имя политики, которое вы указали на предыдущем шаге. После нахождения выберите политику из списка.

После завершения нажмите кнопку “Далее: Теги” внизу страницы.

На следующей странице вам будет предложено дать некоторые теги роли. Поскольку это необязательный шаг, я не даю никаких тегов роли и пропускаю этот шаг.

После нажатия на “Далее” вам будет предложено дать имя роли.

Ваша роль будет создана через несколько секунд.

Теперь, когда мы завершили необходимую настройку со стороны инфраструктуры, давайте настроим агент AWS CloudWatch на экземпляре EC2.

Для этого шага вам нужен экземпляр EC2 в рабочем состоянии. Подключитесь к экземпляру любым удобным способом. Существует несколько способов подключения к экземпляру. Вы можете ознакомиться с ними здесь.

Если у вас экземпляр Amazon Linux, выполните следующие шаги.

Если вы впервые вошли в экземпляр, убедитесь, что вы выполнили приведенную ниже команду обновления.

Следующие шаги вы можете выполнить для Amazon Linux.

sudo yum update -y

После завершения обновления выполните следующую команду для установки пакета awslogs.

sudo yum install -y awslogs

После установки пакета вы можете изменить регион в файле /etc/awslogs/awscli.conf.

Теперь, чтобы настроить журналы, которые вы хотите отправить в AWS CloudWatch, откройте файл /etc/awslogs/awslogs.conf и проверьте следующие строки.

[/var/log/messages]  
datetime_format = %b %d %H:%M:%S  
file = /var/log/messages  
buffer_duration = 5000  
log_stream_name = {instance_id}  
initial_position = start_of_file  
log_group_name = Amazon-Linux-2

Вышеуказанная конфигурация указывает, что путь к файлу журнала из вашей системы /var/log/messages будет загружен в AWS CloudWatch. Вышеуказанная конфигурация создаст группу журналов в AWS CloudWatch с именем, указанным в параметре log_group_name. Также она будет иметь иерархию, указанную в log_stream_name. Для времени буфера мы можем изменить значение buffer_duration. Значение по умолчанию для buffer_duration составляет 5000 мс.

После внесения изменений перезапустите приложение, выполнив следующую команду. Это перезапустит приложение awslog, и агент начнет загружать журналы в AWS CloudWatch.

$ sudo service awslogsd start

Чтобы установить и настроить агент AWS CloudWatch на RHEL или CentOS, вы можете выполнить следующие шаги.

Выполните следующую команду для загрузки пакета.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Вы найдете файл с именем awslogs-agent-setup.py в текущем местоположении. Поскольку загруженный файл является скриптом на Python, вам необходимо иметь установленный Python на вашем компьютере для следующего шага. Убедитесь, что у вас установлен пакет Python, а затем выполните следующую команду. Вам нужно указать регион в приведенной ниже команде. Вы также можете изменить его в конфигурации позже, если хотите.

python ./awslogs-agent-setup.py --region ap-south-1

После выполнения приведенной выше команды вам будет предложено ввести некоторые данные. Укажите их в соответствии с требованиями.

Вышеуказанный скрипт создаст файл конфигурации /var/awslogs/etc/awslogs.conf . Данные, которые вы указали в скрипте, будут сохранены в файле конфигурации.

Вы все еще можете изменить файл конфигурации в соответствии с вашими требованиями.

После завершения всех изменений перезапустите агент, выполнив следующую команду.

# systemctl start awslogs

Проверьте настроенную конфигурацию

  1. Войдите обратно в свою учетную запись AWS.

  2. Найдите CloudWatch в списке Услуг.

  3. Выберите опцию Группа журналов в меню слева.

  4. Найдите значение, которое вы указали в параметре log_stram_name в конфигурации.

  5. Вы увидите, что журналы отправляются с сервера в AWS CloudWatch.

Заключение

Вы можете настроить любой файл журнала с вашего сервера для отправки в AWS CloudWatch. Это можно настроить для серверов, которые не находятся в облаке AWS. Это означает, что вы можете отправлять журналы с любого из ваших серверов, размещенных на Azure, GCP или любом другом облачном провайдере, или даже с локального сервера.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.