【发布时间】:2020-04-26 14:22:21
【问题描述】:
AWS 云手表的配置如下:
awslogs.conf
[/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 命令:
userdata.sh
# 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 外部运行):
spin_up_ec2.sh
# 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 有用吗?与元数据服务对话
【问题讨论】:
-
在脚本中使用 instance_id 之前,您是否尝试过打印该值?
-
@bdcloud 这行得通吗?在我的用户数据脚本中...
echo {instance_id}因为 {...} 不是 shell 语法 -
@bdcloud 您认为
{instance_id}应该显示什么值? -
你是如何从用户数据中解析这个实例ID的?
-
@bdcloud 查询已更新为我们尝试读取 {instance_id} 的方式
标签: amazon-web-services amazon-ec2 aws-cli amazon-cloudwatch amazon-cloudwatchlogs