11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CloudWatch Logsを使ってログを集める!

Last updated at Posted at 2014-08-20

CloudWatch Logsを試してみる

先月発表されたCloudWatch Logsを今更ながら試してみます。

CloudWatch Logsはまだ米国東部(北バージニア)リージョンしか対応していませんが、ログを送る側はどのリージョンでも構いません。
今回は、東京リージョンのインスタンスのログをバージニアのCloudWatch Logsに流し込んでみます。

インストール

インストールの方法は3つほど提供されています。

  1. 既存のインスタンスにインストールする
  2. 新規EC2の起動時にインストールを行う(UserDataに設定)
  3. OpsWorks+Chefを使用してインストールを行う
  4. CloudFormationを使用してインストールを行う

今回は、1の既存のインスタンスに設定してみます。

wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py

[ec2-user@ip-xxx-xx-xx-xxx ~]$ wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py
--2014-08-20 08:02:59--  https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py
Resolving s3.amazonaws.com (s3.amazonaws.com)... 207.171.187.117
Connecting to s3.amazonaws.com (s3.amazonaws.com)|207.171.187.117|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 44028 (43K) [application/x-python]
Saving to: ‘awslogs-agent-setup.py’

100%[==============================================================================>] 44,028       217KB/s   in 0.2s

2014-08-20 08:03:00 (217 KB/s) - ‘awslogs-agent-setup.py’ saved [44028/44028]

sudo python ./awslogs-agent-setup.py --region us-east-1

今回は、ディフォルトで設定されている /var/log/message と、Apacheのログも送ってみることにします。

[ec2-user@ip-xxx-xx-xx-xxx ~]$ sudo python ./awslogs-agent-setup.py --region us-east-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]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:

Step 4 of 5: Configuring the CloudWatch Logs Agent ...
Path of log file to upload [/var/log/messages]:
Destination Log Group name [/var/log/messages]:

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]: 3

Choose initial position of upload:
  1. From start of file.
  2. From end of file.
Enter choice [1]:
More log files to configure? [Y]:
Path of log file to upload [/var/log/messages]: /var/log/httpd/access_log
Destination Log Group name [/var/log/httpd/access_log]:

Choose Log Stream name:
  1. Use EC2 instance id.
  2. Use hostname.
  3. Custom.
Enter choice [1]: 2

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]: 3

Choose initial position of upload:
  1. From start of file.
  2. From end of file.
Enter choice [1]: 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 us-east-1 --only-generate-config'
------------------------------------------------------

インストールはとても簡単ですね。

ログを確認してみる

スクリーンショット 2014-08-20 17.18.57.png

2つのログが取得できています。

スクリーンショット 2014-08-20 17.19.06.png

/var/log/message のログです。こちらはStream NameにUse EC2 instance id を指定したものです。

スクリーンショット 2014-08-20 17.19.12.png

ログの中身を見ることができます。

スクリーンショット 2014-08-20 17.19.21.png

こちらは、/var/log/httpd/access_log になります。Apacheのログファイルを送っています。 Stream NameにはUse hostname を選択しました。

スクリーンショット 2014-08-20 17.19.26.png

すべてのログがアップされているようです。

注意点

Log Agentは自動で起動するようになっていないため、再起動した時に停止してしまうことに注意してください。

[ec2-user@ip-xxx-xx-xx-xxx init.d]$ chkconfig --list | grep awslogs
awslogs         0:off   1:off   2:off   3:off   4:off   5:off   6:off
[ec2-user@ip-xxx-xx-xx-xxx init.d]$ sudo chkconfig awslogs on
[ec2-user@ip-xxx-xx-xx-xxx init.d]$ chkconfig --list | grep awslogs
awslogs         0:off   1:off   2:on    3:on    4:on    5:on    6:off

これで、自動起動の設定ができました。

感想

Fluentdなどを使用して、ログを収集している人も多かったかと思いますが、とても簡単にログを集めることができるようになりました。

CloudWatch Logsでは、フィルタを作成したり、アラートを設定したりできるようです。この辺りの機能はまた試して更新したいと思います。

残念な点は以下のとおり

  • ログの検索ができない
  • ログを横断的に扱えない

CloudWatch Logsからログを取得するAPIもあるようなので、ログをCloudWatch Logsを使用して上げてAPIを使用して可視化とか面白いかもしれません。

CloudWatch Logsにデータを投入するFluentd Pluginもあるようなので次回はそちらを試してみようと思います。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?