LoginSignup
37
35

More than 5 years have passed since last update.

awslogsでログをCloudWatchに連携する方法

Posted at

awscliやlambdaなど、いろいろなところからCloudWatchに連携できますが、Amazon Linuxにたまったログをそのまま連携したい時もあります。
そんなときはawslogsが利用できるようです。

logのputだけじゃなくgetもできるようです。

準備

EC2へのIAMロールの関連付け

ログを出力するサーバにCloudWatchにログが出力可能なロールを紐付けておきます。
とりあえずCloudWatchFullAccessを紐付けました。

いつの頃からか、後からでも紐付けできるようになりました。
awslogsはEC2以外だと利用できないのですかね。。。できたら便利なのですが。

awslogsのインストール

sudo yum install awslogs

リージョンの設定 /etc/awslogs/awscli.conf

awscli.conf
[plugins]
cwlogs = cwlogs
[default]
-region = us-east-1
+region = ap-northeast-1

出力ログの設定 /etc/awslogs/awslogs.conf

デフォルトで[/var/log/messages]が追加されています。削除してもそのままでもいいかと思いますが、とりあえず、以下を追加します。
自分用のカスタムログです。ファイル名とかそういうのはお好みで。

datetime_formatを指定することで、ログの時間とCloudWatch上の表示を一致させてくれます(過去も含む)。
指定しなかったり、ミスマッチだったりすると、過去ログの時間は、取込時になるようです(当然ですがログ内のTimestampは書き換わりません)。

awslogs.conf

[/var/log/mysystem.log]
#[2018-05-12 18:25:15.982] 流し込みたいログのTimestamp
datetime_format = %Y-%m-%d %H:%M:%S.%f
file = /var/log/mysystem.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/mysystem.log

利用

awslogsのstart

serviceコマンドで制御できるようです。

sudo service awslogs start

awslogsの永続化

chkconfigで永続化します。

sudo chkconfig awslogs on

ログの確認

うまくいっているとCloudWatchのログに出力されています(割愛)。
いや。ほんとに便利。

参考

以下のサイトが大変参考になりました。ありがとうございます。

37
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
35