読者です 読者をやめる 読者になる 読者になる

Lチカ開発ブログ

https://l-chika.com/の開発ブログ

CloudWatch Logsのログファイルを監視メモ

アプリケーション・サーバーのログをCloudWatchで集約するための設定時のメモ。

基本的には以下を参考にする。

dev.classmethod.jp

AccessDeniedExceptionが発生

この際、インスタンスに設定したロールにCloudWatchポリシーを設定するのを失念した為、ログの転送がされずに、以下のエラーがログ・ファイルに出力された。

$ sudo cat /var/log/awslogs.log
2017-01-16 05:30:07,690 - cwlogs.push.publisher - WARNING - 3947 - Thread-3 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati

・・・中略・・・

ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:sts::913687097810:assumed-role/ec2_hoge/i-8aa0ff05 is not author
ized to perform: logs:PutLogEvents on resource: arn:aws:logs:ap-northeast-1:913687097810:log-group:api_/var/log/syslog:log-stream:hoge.com
2017-01-16 05:30:07,693 - cwlogs.push.publisher - WARNING - 3947 - Thread-5 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati

CloudWatchポリシーをアタッチ

インスタンスのロールに、CloudWatchポリシーをアタッチしてログエージェントを再起動でOK。

CloudWatchLogポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}
$ sudo service awslogs restart

関連本

AWSのオススメ本。

Amazon Web Services完全ソリューションガイド

Amazon Web Services完全ソリューションガイド