AWS Cloudwatch: как добавить имя экземпляра / настраиваемые поля в журнал? - PullRequest
0 голосов
/ 20 февраля 2019

В настоящее время у нас есть несколько потоков журнала cloudwatch на один экземпляр ec2.Это ужасно для отладки;запросы на «ОШИБКА XY» во всех экземплярах будут включать либо копание в каждом потоке журналов (отнимает много времени), либо с использованием aws cli (запросов, требующих много времени).

Я бы предпочел, чтобы поток журналов объединял данные журнала:все экземпляры определенного типа, скажем, все экземпляры "веб-сервера" записывают свои данные журнала "apache2" в один центральный поток и данные журнала "php" в другой центральный поток.

Очевидно, я все еще хочу иметь возможностьчтобы выяснить, какая запись в журнале проистекает из какого экземпляра, как это было бы с централизованным ведением журнала через syslogd.

Как добавить настраиваемое поле «идентификатор экземпляра» в журналы в cloudwatch?

1 Ответ

0 голосов
/ 28 февраля 2019

Лучший способ организации журналов в CloudWatch Logs заключается в следующем:

  • Группа журналов представляет тип журнала.Например: webserver / prod.

  • Поток журнала представляет идентификатор экземпляра (т.е. источник).

Для запросов я настоятельно рекомендуюиспользуя функцию Insights (я помогал ее создавать, когда работал @ AWS).Имя потока журнала будет доступно для каждой записи журнала в виде специального поля @logStream.

Вы можете выполнять запросы ко всем экземплярам, ​​например так:

filter @message like /ERROR XY/

Или внутри одного экземпляра, например так:

filter @message like /ERROR XY/ and @logStream = "instance_id"
...