【AWS】EC2内のログを CloudWatch Logs で管理する

 ■ はじめに

 * Auto Scaling だと、EC2が破棄された際、
   ログが残らなくなるので、EC2内のログを残して、
   管理する方法の一つとして、CloudWatch Logsを使ってみる

 ■ 環境構築

すごく簡単!!!! 
【1】 IAM ユーザ作成
【2】 EC2 に CloudWatch Logs エージェントをインストール
【3】 マネジメントコンソールから確認

設定環境

 * OS : CentOS7

 【1】 IAM ユーザ作成

[1-1] AWSログイン後に [IAM]-[ユーザー]-[ユーザーを追加]を選択
[1-2] 「ユーザーを追加」で以下を入力すると、
        「次のステップ:アクセス権限」ボタン押下
 + ユーザー名:任意のユーザー名
 + アクセス種類:「プログラムによるアクセス」にチェック入れる
[1-3] IAMユーザー名のアクセス権限において、
      「CloudWatchFullAccess」にチェックを入れ、
      「次のステップ:確認」ボタン押下
[1-4] 「ユーザーの作成」ボタン押下
[1-5] 「表示」リンク押下で
        「アクセスキーID」「シークレットアクセスキー」を
         コピーしたりして取っておき、「閉じる」ボタン押下
       (後で使う)

 【2】 EC2 に CloudWatch Logs エージェントをインストール

[2-1] 以下を実行し、EC2 に CloudWatch Logs エージェントを
        インストール
~~~~~
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
sudo python ./awslogs-agent-setup.py --region ap-northeast-1
~~~~
 => サービス「awslogs」が立ち上がり、
       ログをCloudWatch Logsにアップする
     「sudo python ./awslogs-agent-setup.py --region ap-northeast-1」実行後 
Launching interactive setup of CloudWatch Logs agent ...
 
Step 1 of 5: Installing pip ...DONE
 
Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE
 
Step 3 of 5: Configuring AWS CLI ...
AWS Access Key ID [None]: AKIAXXXXXXXXXXXXXXXXX # ★[1-5]の「アクセスキーID」★
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXX # ★[1-5]の「シークレットアクセスキー」★
Default region name [None]: ap-northeast-1
Default output format [None]:
 
Step 4 of 5: Configuring the CloudWatch Logs Agent ...
Path of log file to upload [/var/log/messages]: /var/log/messages
Destination Log Group name [/var/log/messages]: ec2-/var/log/messages # ★[1-5]の「シークレットアクセスキー」★
 
Choose Log Stream name:
  1. Use EC2 instance id.
  2. Use hostname.
  3. Custom.
Enter choice [1]: 1
 
Choose Log Event timestamp format:
  1. %b %d %H:%M:%S    (Dec 31 23:59:59)
  2. %d/%b/%Y:%H:%M:%S (10/Oct/2000:13:55:36)
  3. %Y-%m-%d %H:%M:%S (2008-09-08 11:52:54)
  4. Custom
Enter choice [1]: 1
 
Choose initial position of upload:
  1. From start of file.
  2. From end of file.
Enter choice [1]:
More log files to configure? [Y]: N
 
Step 5 of 5: Setting up agent as a daemon ...DONE
 
------------------------------------------------------
- Configuration file successfully saved at: /var/awslogs/etc/awslogs.conf
- You can begin accessing new log events after a few moments at https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logs:
- You can use 'sudo service awslogs start|stop|status|restart' to control the daemon.
- To see diagnostic information for the CloudWatch Logs Agent, see /var/log/awslogs.log
- You can rerun interactive setup using 'sudo ./awslogs-agent-setup.py --region ap-northeast-1 --only-generate-config'
------------------------------------------------------

 【3】 マネジメントコンソールから確認

[3-1] AWS Management Console の
        [CloudWatch]-[ログ]から/var/log/messagesを確認

 ■ CloudWatch Logs のその他の事項

 * CloudWatch Logs のその他の事項やトラブルシュートについては、
   以下の関連記事を参照のこと。

CloudWatch Logs に関する あれこれ

 参考文献

 公式サイト

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html

 一般サイト

https://dev.classmethod.jp/cloud/aws/amazon-cloudwatch-logs/

 関連記事

CloudWatch Logs に関する あれこれ