Help us understand the problem. What is going on with this article?

EC2(Amazon Linux) に構築したアプリのログを CloudWatch に転送する

More than 1 year has passed since last update.

事前準備

EC2 から CloudWatch へアクセスできるように、EC2 に適用されているロールに CloudWatchLogsFullAccess を追加する。

image.png

awslogs のインストール

  • EC2 に SSH 接続
  • awslogs をインストール
    >sudo yum install awslogs -y
    

awslogs の設定変更

念のため既存設定をバックアップしておく

>cd /etc/awslogs/
>sudo cp awscli.conf awscli.conf.org
>sudo cp awslogs.conf awslogs.conf.org

awscli.conf の編集

>sudo vi awscli.conf

リージョン変更(おそらく転送先の CloudWatch のリージョンのこと)
  region = ap-northeast-1

終わったら、上書き保存する

awslogs.conf の編集

CloudWatch Logs エージェントのリファレンス - Amazon CloudWatch ログ
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html

>sudo vi awslogs.conf

末尾のほうのセクションごと以下に書き換える。
元々存在する [/var/log/message] のセクションごと上書きして、以下のような設定にする。

例)ログファイルごと
[/logs/MyApp/MyAppLogin]
datetime_format = %Y-%m-%d %H:%M:%S
file = /logs/MyApp/MyAppLogin.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /logs/MyApp/MyAppLogin

例)ログファイルまとめて
[/logs/MyApp]       
datetime_format = %Y-%m-%d %H:%M:%S     
file = /logs/MyApp/MyApp*.log       
buffer_duration = 5000      
log_stream_name = {instance_id}     
initial_position = start_of_file        
log_group_name = /logs/MyApp        

それぞれ以下のような意味
[]  セクション名(CloudWatch Logs のロググループ名とあわせておくとよさげ)
datetime_format = ログの日時フォーマット
file = ログファイルパス
buffer_duration = バッファ(おそらくこの時間分貯めて、送信している?)
log_stream_name = ロググループ内のストリーム名
initial_position = 初期ポジション(特に変える必要はないかな、、)
log _group_name = CloudWatch Logs のロググループ名

編集が終わったら、上書き保存する。

awslogs サービス制御

>sudo /etc/init.d/awslogs start
Starting awslogs:                                          [  OK  ]

>sudo chkconfig awslogs on
>sudo chkconfig --list | grep awslogs
awslogs         0:off   1:off   2:on    3:on    4:on    5:on    6:off

料金例

調べた時の料金です。(参考)
リージョン:ap-north-east1

サービス  料金 補足
S3 0.025 $/GB 標準ストレージ、最初の 50 TB/月
CloudWatch Logs 0.760 $/GB 取り込み GB あたり
CloudWatch Logs 0.033 $/GB GB あたりのアーカイブ
  • アーカイブ料金は S3 とそこまで大差ない
  • 取込料金が若干かかるので、ログ量が膨大な場合は料金に注意が必要

参考資料

AmazonLinux2のシスログをCloudWatch Logs に転送させてみた | Developers.IO
https://dev.classmethod.jp/cloud/aws/awslogs-amazonlinux2/

Amazon CloudWatch Logsを試してみる | 株式会社ビヨンド
https://beyondjapan.com/blog/2016/07/amazon-cloudwatch-logs

qt6hy
jrits
信頼と魅力のある先進のITをもとに、お客様のワークスタイル・イノベーションの実現を目指します。
http://www.jrits.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away