Как обрабатывать журналы докера контейнера агента ECS? - PullRequest
0 голосов
/ 13 сентября 2018

Я использую пакет aws с ECS.

Задачи ECS могут быть настроены в определении задачи для использования awslogs logDriver и отправки журналов в cloudwatch, что не позволяет им занимать место в экземпляре EC2. Но сам агент контейнера ECS также находится в док-контейнере, и все журналы док-контейнера для него хранятся в экземпляре EC2, который очень быстро заполняет память. Есть ли способ настроить logDriver для самого агента контейнера ECS?

Также агент ECS хранит журналы в /var/log/ecs/ecs-agent.log.timestamp, которые также занимают много места. Есть идеи, как перенаправить их в cloudwatch?

1 Ответ

0 голосов
/ 13 сентября 2018

У вас может быть небольшой скрипт в UserData (как часть LaunchConfiguration) для установки awslogs и его настройки.Ниже приведен образец фрагмента.

        # Install awslogs and the jq JSON parser
        yum install -y awslogs jq

        # Inject the CloudWatch Logs configuration file contents
        cat > /etc/awslogs/awslogs.conf <<- ''EOF''
        [general]
        state_file = /var/lib/awslogs/agent-state

        [/var/log/dmesg]
        file = /var/log/dmesg
        log_group_name = ${EnvName}-${EnvNumber}#ecs#dmesg
        log_stream_name = {cluster}/{container_instance_id}

        [/var/log/messages]
        file = /var/log/messages
        log_group_name = ${EnvName}-${EnvNumber}#ecs#messages
        log_stream_name = {cluster}/{container_instance_id}

        datetime_format = %b %d %H:%M:%S

        [/var/log/docker]
        file = /var/log/docker
        log_group_name = ${EnvName}-${EnvNumber}#ecs#docker
        log_stream_name = {cluster}/{container_instance_id}
        datetime_format = %Y-%m-%dT%H:%M:%S.%f

        [/var/log/ecs/ecs-init.log]
        file = /var/log/ecs/ecs-init.log.*
        log_group_name = ${EnvName}-${EnvNumber}#ecs#ecs-init.log
        log_stream_name = {cluster}/{container_instance_id}
        datetime_format = %Y-%m-%dT%H:%M:%SZ

        [/var/log/ecs/ecs-agent.log]
        file = /var/log/ecs/ecs-agent.log.*
        log_group_name = ${EnvName}-${EnvNumber}#ecs#ecs-agent.log
        log_stream_name = {cluster}/{container_instance_id}
        datetime_format = %Y-%m-%dT%H:%M:%SZ
...