У нас есть пользовательское веб-приложение Docker, работающее в контейнерной среде Elastic Beanstalk Docker. Хотелось бы иметь журналы приложений для просмотра снаружи. Без загрузки через экземпляры или консоль AWS.
До сих пор ни один из решений не был приемлемым. Может быть, кто-то достиг централизованного ведения журналов для приложений Elastic Benastalk Dockerized?
Решение 1: загрузка журнала консоли AWS
неприемлемо - требуется загружать журналы, извлекать их каждый раз. Не в режиме реального времени.
Решение 2: S3 + Elasticsearch + Fluentd
У fluentd нет плагина для извлечения журналов из S3 Там отличный плагин S3, но он только для выхода журнала на S3. не для входных журналов из S3.
Решение 3: S3 + Elasticsearch + Logstash
минусы: Можно вытащить все журналы всего цеха или ничего.
Проблема заключается в структуре хранилища Elastic Beanstalk S3. Вы не можете указать шаблон имени файла. Это либо все журналы, либо ничего. ElasticBeanstalk сохраняет журналы на S3 в пути, содержащем случайные экземпляры и идентификаторы среды:
s3.bucket/resources/environments/logs/publish/e-<random environment id>/i-<random instance id>/[email protected]
Плагин Logstash s3 можно указать только на ресурсы/среды/журналы/публикацию/. Когда вы пытаетесь указать его в средах /logs/publish/ */my.log, это не сработает. что означает, что вы не можете вытащить определенный журнал и тег/тип, чтобы он мог найти в Elasticsearch. Поскольку AWS сохраняет журналы из всех ваших сред и экземпляров в одной структуре папок, вы не можете выбрать даже экземпляр.
Решение 4: просмотр журнала событий в CloudWatch для AWS
Можно пересылать свои собственные журналы в консоль CloudWatch. Удалите это, поместите файлы конфигурации в путь .ebextensions вашего пакета приложений: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudwatchlogs.html
Есть файл cwl-webrequest-metrics.config, который позволяет вам указывать файлы журналов вместе с предупреждениями и т.д. Большой!? за исключением того, что формат файла конфигурации не является ни yaml, xml, ни Json, и он не документирован. Существует абсолютно нулевое упоминание этого файла, оно отформатировано либо на сайте документации AWS, либо в любом месте в сети. И чтобы получить один файл журнала, появляющийся в CloudWatch, это не просто добавление строки конфигурации. Единственный возможный способ получить эту работу - это проб и ошибок. Большой!? за исключением каждой попытки повторного развертывания вашей среды.
Есть только одна ссылка на то, как заставить эту работу работать с настраиваемым журналом: http://qiita.com/kozayupapa/items/2bb7a6b1f17f4e799a22 Я понятия не имею, как этот человек обратил проектирование формат файла.
минусы:
- Cloudwatch, похоже, не может разделить журналы на столбцы при отображении, поэтому вы не можете легко фильтровать по приоритету и т.д.
- В программе просмотра журнала AWS Console нет автоматического обновления для ведения журналов.
- Недопустимый формат файла конфигурации Nightmare, без возможности тестирования. Для проб и ошибок требуется повторное развертывание всего экземпляра.