Amazon cloudformation 启动时引导EC2实例以安装awslogs
我正在尝试将以下脚本实现到Launchtemplate中,以启动已安装并准备好AWSLOG的EC2实例:Amazon cloudformation 启动时引导EC2实例以安装awslogs,amazon-cloudformation,Amazon Cloudformation,我正在尝试将以下脚本实现到Launchtemplate中,以启动已安装并准备好AWSLOG的EC2实例: UserData: "Fn::Base64": !Sub >- #!/bin/bash -xe yum install -y aws-cfn-bootstrap /opt/aws/bin/cfn-init -v --region ${AWS::Region} --stack ${AWS::StackName
UserData:
"Fn::Base64": !Sub >-
#!/bin/bash -xe
yum install -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --region ${AWS::Region} --stack ${AWS::StackName} --resource BastionHostLaunchtemplate --region ${AWS::Region}
# Install the CloudWatch Logs agent
yum -y install awslogs
service awslogs start
chkconfig awslogs on
但是,当我随后通过SSH连接到实例并进行检查时,我得到以下结果:
[ec2-user@ip-172-16-47-249 ~]$ sudo service awslogsd status
Redirecting to /bin/systemctl status awslogsd.service
Unit awslogsd.service could not be found.
[ec2-user@ip-172-16-47-249 ~]$
如何正确引导EC2实例
谢天谢地,现在,您应该使用CloudWatch代理,它已经取代了CloudWatch日志代理(
awslogs
)
请参阅:这可能是由于cfn init上重复的
region
参数造成的吗?你真的在用AWS::CloudFormation::Init做任何事情吗?如果您尝试在新实例上逐个运行这些行,会发生什么情况?@tyron实际上是的,我需要AWS::CloudFormation::Init,我想将EFS存储装载到实例中,但想逐步进行设置-因此现在删除了元数据部分..您是否有一个“已测试”的脚本,我可以使用UserData安装它?谢谢你提前用安装脚本更新了答案。谢谢;我是否也应该添加以下内容:服务awslogs启动chkconfig awslogs on
或者这是否也仅适用于旧版本;如果有,是否有新版本?我要确保的是,如果实例重新启动,服务将启动并重新启动。谢天谢地,我的代码(上面)的最后一行显然配置并启动了代理。您不应该使用过时的awslogs
。
wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
yum install amazon-cloudwatch-agent.rpm
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:configuration-file-path -s