LoginSignup
7
7

More than 1 year has passed since last update.

EC2上で動くアプリケーションのログを、CloudWatchに送信してみる

Last updated at Posted at 2019-11-21

AmazonLinux2上で動かしているアプリケーションのログをCloudWatchから見れるようにするための手順を自分用にメモ。

ざっくり言うと、EC2にCloudWatch用の権限を持っているIAMロールをアタッチした上で、エージェントをインストールすればOK。

IAMロールの作成

IAMロールの作成画面

ロールの作成ボタンを押下。
image.png

このロールを使用するサービス

EC2を選択。
image.png

アタッチするポリシー

「CloudWatchLogsFullAccess」を選択。
ポリシー名はリンクになっていてクリックするとポリシー画面に遷移するので注意。
image.png

ロールの名前とか説明とか

あとはロール名とかロールの説明を適当に設定して、ロールの作成は完了。

ロールの割り当て

対象のEC2インスタンスにロールを割り当て。
image.png

ロールの設定は以上。

エージェントのインストール

エージェントのインストール。
「awslog」ではなく「awslogs」なので注意。

$ sudo yum install awslogs

confのリージョンをバージニア北部リージョン(us-east-1)から東京リージョン(ap-northeast-1)に変更。

$ sudo vim /etc/awslogs/awscli.conf
[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1

サービス起動。

$ sudo service awslogsd start

エージェントはデフォルトで「/var/log/messages」というログを送信するように設定されている。
そのため、サービスを起動するとそのログがAWSのコンソールから確認できるようになる。

image.png
※上三つのロググループは別のテストをしていた時の物なので関係なし。

取得するログの追加

取得対象を設定しているコンフィグファイルを修正する。
今回は[myapp]を追加した。

data_formatの設定方法は以下のサイト参照。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html

$ sudo vim /etc/awslogs/awslogs.conf
~略~
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages
[myapp]
datetime_format = %Y-%m-%d %H:%M:%S
file = ファイルのパス
buffer_duration = 5000
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = /var/log/myapps

追加したログが表示される。
image.png

おわり。
もっと細かい情報はamazonの公式サイト参照(丸投げ)

7
7
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
7
7