どうもこんにちは。新卒エンジニアの@Tooonoooです。
AWSのCloudWatchLogsを使って、ログ出力の設定をすることがあったので、紹介していこうと思います。
僕は
- AWSについての知識がほぼない
- ログの設定なんてしたことがない
という状態で取り組みました。
僕みたいな経験の浅いエンジニアでもできるので、似たような新卒エンジニアの方でもこれを読めばできるようになると思いますよ。
CloudWatchLogsとは
Amazon CloudWatch Logs を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、AWS CloudTrail、Route 53、およびその他のソースのログファイルの監視、保存、アクセスができます。その後、CloudWatch Logs から、関連するログデータを取得できます。
ポリシーの設定
IAMユーザーもしくはIAMロールでポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:CreateLogGroups"
"logs:DescribeLogStreams",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:[リージョン]:[awsのアカウントID]:log-group:[ロググループ名]:log-stream:*",
"arn:aws:logs:[リージョン]:[awsのアカウントID]:log-group:[ロググループ名]"
]
}
]
}
CloudWatchLogsエージェントのインストール
sudo yum install -y awslogs
CloudWatchLogsエージェントの設定
AWSのコマンドラインインターフェイスであるCLIの設定をする。
リージョンは任意。
[plugins]
cwlogs = cwlogs
[default]
region = リージョン
次にawslogsエージェントの設定をする。
- log_group_name
- log_stream_name
は任意の名前をつけてください。
[CloudWatachLogsに出力したいlogファイル]
log_group_name = ロググループ名
log_stream_name = ログストリーム名
file = CloudWatachLogsに出力したいlogファイル
datetime_format = "%Y %m %d %H:%M:%S"
initial_position = start_of_file
buffer_duration = 5000
CloudWatchLogsエージェントの起動
エージェントを起動します。
sudo service awslogsd start
最後に
これでログがCloudWatchLogs上で見れるようになりました。
本番環境のログを出力すれば、本番環境に入らずともログ確認ができるので便利ですね!
参考資料
これらの記事を参考にしました。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html
https://dev.classmethod.jp/cloud/cloudwatch-logs/