EC2(Linux)上のログをCloudWatchLogsへ連携する
1.対象EC2のIAMにポリシー追加
policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
2.Linuxサーバで次のシェルを実行
※リージョンの指定とawslogs.confの作成部分を編集して下さい
LaunchConfigurations.sh
#リージョン指定
REGION_NAME='ap-northeast-1'
mkdir /etc/awslogs/
cd /etc/awslogs
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
cat << 'EOW' >/etc/awslogs/awslogs.conf
# 下記URLの公式ドキュメント見てawslogs.confを作成してください
#http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html
[general]
state_file = /var/awslogs/state/agent-state
[file_name_1]
file =
log_group_name =
log_stream_name =
#datetime_format = #指定しない場合は、自動で読み取ってくれる
#multi_line_start_pattern = {datetime_format} #トレースが出力されるログの場合は必要
[file_name_2]
file =
log_group_name =
log_stream_name =
EOW
chmod +x /etc/awslogs/awslogs-agent-setup.py
chmod +x /etc/awslogs/awslogs.conf
./awslogs-agent-setup.py -n -r ${REGION_NAME} -c awslogs.conf
chkconfig awslogs on
AWSコンソールから確認すると2.で指定したロググループとログストリームが作成されているので、以下の様な事ができます。
・連携したログを監視(ERRORが出たらメール通知など)する
・障害調査に使用する