Как отправить несколько файлов журнала Amazon CloudWatch? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть монолит, который в настоящее время переносится в aws (с использованием ecs / fargate), а позже будет разбит на микросервисы. Он использует образ amazon linux 1 с apache, php и всеми данными моего производственного веб-сайта. В настоящее время он отправляет журналы нескольким файлам в / etc / httpd / logs и / var / www / vhosts / logs.

предположительно, есть кое-что, что я могу сделать в определениях задачи ecs с конфигурациями журналов и томами, но я не смог найти ничего, что объясняло бы детали того, как это сделать.

1 Ответ

0 голосов
/ 25 октября 2019

В случае контейнера я никогда не буду предлагать записывать логи в файл, лучше писать логи контейнера stdout и stderr.

Еще одна интересная вещь, как вы будете обращаться с лог-файлом, если вы перешли в fargate? поэтому не записывайте журналы в файл и не относитесь к контейнеру как к машине экземпляра.

Прелесть драйвера журнала AWS заключается в том, что он выталкивает журналы в журналы наблюдения за облаком, а из наблюдения за облаком также очень легко их нажимать. на ELK.

Выберите драйвер журнала AWS, настройте точку входа так, чтобы она записывала журналы в stdout и stderr в контейнере. обычно это очень просто, когда вы запускаете процесс на переднем плане, он автоматически записывает журнал в стандартный вывод контейнера.

Просто добавьте эту строку в определение задачи и добавьте роль наблюдения за облаком.

            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "awslogs-wordpress",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }
            }

или enter image description here

после настройки вы увидите журналы

enter image description here

Использованиеawslogs Log Driver

Вы можете настроить контейнеры в ваших задачах для отправки информации журнала в CloudWatch Logs. Если вы используете тип запуска Fargate для своих задач, это позволяет вам просматривать журналы из ваших контейнеров. Если вы используете тип запуска EC2, это позволяет вам просматривать разные журналы из ваших контейнеров в одном удобном месте и не позволяет журналам вашего контейнера занимать место на диске в ваших экземплярах контейнера. Этот раздел поможет вам начать использовать драйвер журнала awslogs в ваших определениях задач.

Примечание

Тип информации, которая регистрируетсяКонтейнеры в вашей задаче зависят в основном от их ENTRYPOINT command. По умолчанию регистрируемые журналы показывают выходные данные команды, которые вы обычно видите в интерактивном терминале, если вы запускаете контейнер локально, это STDOUT и STDERR I/O streams. Драйвер журнала awslogs просто передает эти журналы из Docker в журналы CloudWatch. Для получения дополнительной информации о том, как обрабатываются журналы Docker, включая альтернативные способы сбора различных файловых данных или потоков, см. Просмотр журналов для контейнера или службы вДокументация Docker.

enter image description here aws-ecs-log-driver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...