Я пытаюсь настроить агент 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 / папка содержитКонфигурация и учетные данные, но я так и не смог добраться до агента, чтобы попытаться установить соединение.