Поиск по сайту:

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


На этой странице

  1. Не ограничивается ресурсами AWS.
  2. Как отправлять журналы приложений или серверов в AWS CloudWatch
  3. Шаги
  4. Роль IAM
  5. Проверьте настроенную установку
  6. Заключение

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.

Он должен содержать приведенные ниже политики.

  • Создать поток логов
  • ОписатьLogStream
  • Создать группу журналов
  • Путлогевентс

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

Перейдите в раздел IAM из списка «Сервисы» в консоли AWS. Если у вас еще нет учетной записи AWS, создайте ее здесь.

На панели управления 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 или любого другого облачного провайдера, или даже с локального сервера.