使用以下AWS Cloud Watch配置:
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 2500
log_group_name = /var/log/messages
log_stream_name = {cluster}{instance_id}
及以下与--userdata
命令的aws ec2
选项一起使用的脚本:
# Above agentlogs.conf file is copied to /etc/awslogs/awslogs.conf in AWS EC2 instance
# Configure cloudwatch config file
cat > /etc/cloudwatch-logs.ini <<EOF
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 2500
log_stream_name = {cluster}{instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages
EOF
从此脚本启动EC2(在EC2外部运行):
# Using AWS CLI, we spin up EC2 instance using userdata.sh,
# Using metadata service How to read values of {cluster} & {instance_id} syntax, shown above:
aws logs describe-log-streams --log-group-name /var/log/messages --log-stream-name-prefix <grab_cluster_name_value><grab_instance_id_value> --region us-east-1
spin_up_ec2.sh
位于EC2外部,位于同一VPC中的不同子网中。因此,不确定如何使用EC2元数据服务?
EC2在专用子网中运行。
{cluster}
的值类似于clust1
{instance_id}
的值类似于i-1a52627268bc
1)
shell脚本(spin_up_ec2.sh
)客户端如何与EC2元数据服务对话,以检索{cluster}
和{instance_id}
的值?
2)
在公共子网中启动EC2会有所帮助吗?与元数据服务通话
答案 0 :(得分:2)
实例外部不不提供Amazon EC2实例元数据。
您可以对AWS服务进行API调用以获得类似信息(例如,检索EC2实例所在的子网)。