Я поспорил со службой поддержки AWS, и они ответили:
Это можно сделать с помощью файла конфигурации .ebextensions, чтобы установить пакет awslogs и определить файл журнала, имя_группы_журнала и имя_потока_журнала для потоковой передачи в CloudWatch,
Пожалуйста, найдите ниже пример включения журналов Catalina в CloudWatch для среды Tomcat8 ---. Ebextensions / cwatch.config ---
packages:
yum:
awslogs: []
files:
"/etc/awslogs/awscli.conf" :
mode: "000600"
owner: root
group: root
content: |
[plugins]
cwlogs = cwlogs
[default]
region = `{"Ref":"AWS::Region"}`
"/etc/awslogs/awslogs.conf" :
mode: "000600"
owner: root
group: root
content: |
[general]
state_file = /var/lib/awslogs/agent-state
[/var/log/tomcat8]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "catalina"]]}`
log_stream_name = {instance_id}_messages
file = /var/log/tomcat8/catalina.out
datetime_format = %b %d %H:%M:%S
initial_position = start_of_file
buffer_duration = 5000
[/var/log/messages]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "syslog"]]}`
log_stream_name = {instance_id}_messages
file = /var/log/messages
datetime_format = %b %d %H:%M:%S
initial_position = start_of_file
buffer_duration = 5000
[/var/log/eb-activity.log]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "eb"]]}`
log_stream_name = {instance_id}_eb-activity.log
file = /var/log/eb-activity.log
datetime_format = [%Y-%m-%dT%H:%M:%S.%3NZ]
initial_position = start_of_file
buffer_duration = 5000
[/var/log/eb-cfn-init.log]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "eb"]]}`
log_stream_name = {instance_id}_eb-cfn-init.log
file = /var/log/eb-cfn-init.log
datetime_format = [%Y-%m-%dT%H:%M:%S.%3NZ]
initial_position = start_of_file
buffer_duration = 5000
[/var/log/eb-commandprocessor.log]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "eb"]]}`
log_stream_name = {instance_id}_eb-commandprocessor.log
file = /var/log/eb-commandprocessor.log
datetime_format = [%Y-%m-%dT%H:%M:%S.%3NZ]
initial_position = start_of_file
buffer_duration = 5000
[/var/log/eb-publish-logs.log]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "eb"]]}`
log_stream_name = {instance_id}_eb-publish-logs.log
file = /var/log/eb-publish-logs.log
datetime_format = %Y-%m-%d %H:%M:%S,%3N
initial_position = start_of_file
buffer_duration = 5000
[/var/log/eb-tools.log]
log_group_name = `{"Fn::Join":["-", [{ "Ref":"AWSEBEnvironmentName" }, "eb"]]}`
log_stream_name = {instance_id}_eb-tools.log
file = /var/log/eb-tools.log
datetime_format = %Y-%m-%d %H:%M:%S,%3N
initial_position = start_of_file
buffer_duration = 5000
commands:
"01":
command: chkconfig awslogs on
"02":
command: service awslogs restart
---end---
and here is a simpler version to Add log to default CloudWatch logs streaming config
Warning: does not set retention policy, won't obey retention policy (e.g "delete when env is deleted)
---.ebextensions/log.config---
files:
/etc/awslogs/config/mylog.conf:
owner: root
group: root
mode: "000644"
content:
Fn::Sub: |
[/var/log/mylog.log]
log_group_name=/aws/elasticbeanstalk/${AWSEBEnvironmentName}/var/log/mylog.log
log_stream_name={instance_id}
file=/var/log/mylog.log
commands:
restart_awslogs:
command: service awslogs restart || service awslogs start
---end---
Примечание: не используйте предоставленный образец в производстве. Цель примера - проиллюстрировать функциональность. «Я не проверял это решение, но если кто-то будет тестировать это решение, прокомментируйте его и отметьте его как действительное. Если нет, я удалю свой ответ.
person
florins
schedule
05.09.2018