LoginSignup
26
14

More than 5 years have passed since last update.

CloudWatch Logs Agent の設定について調べたことのまとめ

Posted at

CloudWatch Logs Agent の設定について、調べたことをまとめました。

はじめに

Agentの設定ファイルは、/var/awslogs/etc/awslogs.confにあります。

/var/log/messagesをログ送信するだけの、簡単な設定ファイルはこんな感じです。
とってもシンプルですね。

[general]
state_file = /var/awslogs/state/agent-state

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

log_stream_name で使えるプレースホルダー

log_stream_name には、{instance_id}の他に、 {hostname} と {ip_address} が使えます。

ベタで書かなくていいのは嬉しいですね。

file にwildcardを使う

file = /var/log/messages*の様にワイルドカードで指定することが可能です。

ファイル名が日付でインクリメントされるようなログをハンドリングしたい場合に有効ですが、
性質が違うログ(access_log_80, access_log_443)を誤ってハンドリングするかもしれないので注意が必要です。

Only the latest file is pushed to CloudWatch Logs based on file modification time.

指定されたパスに該当するファイルが複数あっても、
ログ送信の対象は、mtimeがもっとも新しいファイルになります。

datetime_formatを指定して、Creation Timeの表示を変える

datetime_formatには、ログから時刻を抽出する際のフォーマットを指定します。

datetime_formatが正しく指定されている場合、
Web Consoleで確認できるCreation Timeに、ログから抽出した時刻を表示させることができます。

datetime_formatが指定されなかったり、Syntaxが間違っていたり、
Syntaxが正しくてもログから時刻が抽出できない場合は現在時刻になります。

生ログの時刻をdatetime_formatでパースできないと現在時刻が使われるようです。

【緩募】
一点困ったのは、フォーマットの中にUnix Time Stampの指定する方法がわかりませんでした。
/var/log/audit/audit.logなどで利用したいのですが、誰か知っている方いらっしゃったら教えて下さい。

参考

http://aws.typepad.com/aws_japan/2014/07/cloudwatch-log-service.html
https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AgentReference.html

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