#!/bin/bash -eux

if [ $# -eq 0 ]; then

command=$(basename "$0")
echo "Usage: $command LOG_GROUP_NAME"
echo "Examples:"
echo "  $command aws-ec2"
echo "  $command ec2"
exit 1

fi LOG_GROUP_NAME=$1

if [ “$OS” == “ubuntu” ]; then

CONFIG_FILE=/var/awslogs/etc/awslogs.conf
STATE_FILE=/var/awslogs/state/agent-state

else # amazonlinux2

CONFIG_FILE=/etc/awslogs/awslogs.conf
STATE_FILE=/var/lib/awslogs/agent-state

fi

# Inject the CloudWatch Logs configuration file contents cat > $CONFIG_FILE <<- EOF

general

state_file = $STATE_FILE

/var/log/dmesg

file = /var/log/dmesg log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/dmesg

/var/log/messages

file = /var/log/messages log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/messages datetime_format = %b %d %H:%M:%S

/var/log/cloud-init.log

file = /var/log/cloud-init.log log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/cloud-init.log datetime_format =

/var/log/cloud-init-output.log

file = /var/log/cloud-init-output.log log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/cloud-init-output.log datetime_format =

/var/log/secure

file = /var/log/secure log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/secure datetime_format =

/var/log/audit/audit.log

file = /var/log/audit/audit.log log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/audit/audit.log datetime_format =

/var/lib/cloud/instance/user-data.txt

file = /var/lib/cloud/instance/user-data.txt log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/lib/cloud/instance/user-data.txt datetime_format =

/var/log/messages

file = /var/log/messages log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/messages datetime_format =

/var/log/auto-terminate.log

file = /var/log/auto-terminate.log log_group_name = ${LOG_GROUP_NAME} log_stream_name = {instance_id}/var/log/auto-terminate.log datetime_format =

EOF

if [ -f /etc/awslogs/awscli.conf ]; then

region=$(curl -s 169.254.169.254/latest/meta-data/placement/availability-zone | sed s'/.$//')
sed -i -e "s/region = us-east-1/region = $region/g" /etc/awslogs/awscli.conf

fi