Агент AWS Cloudwatch в док-контейнере - PullRequest
1 голос
/ 27 сентября 2019

Я пытаюсь настроить агент Amazon Cloudwatch для своего докера в качестве контейнера.Это установка OnPremise , поэтому она запускается локально, а не внутри AWS Kubernetes или чего-либо в этом роде.

Я установил базовый файл dockerfile, agent.json и .aws / дляучетные данные и использование docker-compose build для его фактической настройки, а затем запуска, но у меня постоянно возникают проблемы, потому что Docker не содержит или не запускает systemctl, поэтому я не могу запустить службу с помощью собственной команды документации AWS:

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s

Это приведет к ошибке при попытке запустить контейнер:

cloudwatch_1  | /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl: line 262: systemctl: command not found
cloudwatch_1  | unknown init system

Я попытался запустить / start-amazon-cloudwatch-agent внутри / bin, но нетудачи.Никакой документации по этому вопросу.

По сути, проблема заключается в как я могу запустить это как службу или процесс на переднем плане? У кого-нибудь есть какие-либо подсказки?В противном случае контейнер не останется.Ниже мой код:

dockerfile

FROM amazonlinux:2.0.20190508
RUN yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
COPY agent.json /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
CMD /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m onPremise -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

agent.json

{
    "agent": {
        "metrics_collection_interval": 60,
        "region": "eu-west-1",
        "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log",
        "debug": true
    }
}

.aws / папка содержитКонфигурация и учетные данные, но я так и не смог добраться до агента, чтобы попытаться установить соединение.

1 Ответ

1 голос
/ 27 сентября 2019

просто используйте официальное изображение docker pull amazon/cloudwatch-agent оно будет все для вас обрабатывать

здесь

если вы настаиваете на использовании своего, попробуйте следующее:

FROM amazonlinux:2.0.20190508
RUN yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
COPY agent.json  /opt/aws/amazon-cloudwatch-agent/bin/default_linux_config.json
ENV RUN_IN_CONTAINER=True
ENTRYPOINT ["/opt/aws/amazon-cloudwatch-agent/bin/start-amazon-cloudwatch-agent"]
...