LoginSignup
27

More than 5 years have passed since last update.

AWS EC2インスタンス CloudWatch Logs(awslogs)インストールとCloudWatch保存対象ログの追加

Posted at

はじめに

EC2インスタンス(AmazonLinux)に対して、CloudWatch Logs(awslogs)をインストールして、CloudWatchに保存するログファイルとして/var/log/maillogや/var/log/unbound.logを追加する手順です。

使用したAMI

・Amazon Linux AMI 2014.09.1 (HVM) - ami-4985b048

CloudWatch Logs(awslogs)のインストール手順

・EC2インスタンス(AmazonLinux)にIAMロールを設定し、以下のようなIAMポリシーを設定します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

・EC2インスタンス(AmazonLinux)にCloudWatch Logs(awslogs)をインストールします。

$ sudo su -

# cd /usr/local/src
# pwd
/usr/local/src

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

# python ./awslogs-agent-setup-v1.0.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]: 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'
------------------------------------------------------
#

・/var/awslogs/etc/awslogs.confにCloudWatchに記録したいログファイルを追加します。

例えば、以下のログファイルをCloudWatchに記録したい場合、/var/awslogs/etc/awslogs.confに設定を追加します。

# ll /var/log/maillog
-rw------- 1 root root 1194 Jan 20 02:42 /var/log/maillog
#

# ll /var/log/unbound.log
-rw-r--r-- 1 unbound unbound 49131 Jan 20 02:55 /var/log/unbound.log
#
# cp -p /var/awslogs/etc/awslogs.conf /var/awslogs/etc/awslogs.conf.ORG
# diff /var/awslogs/etc/awslogs.conf /var/awslogs/etc/awslogs.conf.ORG
#

# vi /var/awslogs/etc/awslogs.conf
 (末尾に以下を追加する)

[/var/log/maillog]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/log/maillog
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/mailog

[/var/log/unbound.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/log/unbound.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/unbound.log

・awslogsプロセスを再起動して、awslogs.confに追加した設定を反映します。

# ps awux | grep -v grep | grep awslogs
root      2721  0.0  0.1 112916  1188 pts/0    S    02:50   0:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh
root      2726  0.5  2.8 439252 29480 pts/0    SNl  02:50   0:01 /var/awslogs/bin/python26 /var/awslogs/bin/aws logs push --config-file /var/awslogs/etc/awslogs.conf
#

# /etc/init.d/awslogs stop
Stopping system awslogs daemon
#

# ps awux | grep -v grep | grep awslogs
#

# /etc/init.d/awslogs start
Starting system awslogs daemon
Starting awslogs daemon
#                          [  OK  ]
#

# ps awux | grep -v grep | grep awslogs
root      2799  0.0  0.1 112916  1184 pts/0    S    02:55   0:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh
root      2801 17.0  2.4 730132 24544 pts/0    SNl  02:55   0:00 /var/awslogs/bin/python26 /var/awslogs/bin/aws logs push --config-file /var/awslogs/etc/awslogs.conf
#

・awslogsプロセスが自動起動するようにしておきます。

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

CloudWatch上でのログファイル確認

・CloudWatchにログが記録されているか確認します。

AWS Management Consoleにログインします。
「CloudWatch」を選択します。リージョンは「US East (N. Virginia)」を選択します。

WS000011.JPG

「CloudWatch」を開いたら、画面左側の「Logs」をクリックします。Log Groupsにawslogs.confに設定したログファイル名が表示されていると思います。ログファイル名をクリックします。

WS000008.JPG

Log StreamsにCloudWatch Logs経由でログを記録しているインスタンスIDが表示されます。ログを確認したいインスタンスIDをクリックします。

WS000009.JPG

先ほどawslogs.confに設定したログファイルの内容がCloudWatch上に表示されている事を確認します。

WS000012.JPG

CloudWatch上に記録したログファイルの保存期間設定

CloudWatch上に記録したログファイルのログデータ保存期間を設定する事も可能です。
例えば/var/log/messagesのログデータ保存期間を変更する場合、以下のように「Never Expire」の部分をクリックします。

WS000013.JPG

「Retention」でログデータの保存期間を「Never Expire」から変更します。この例では「3 days」を選択しています。

ログファイル保存期間を変更すると、CloudWatchの対象ログファイルの保存期間以前のログデータが消えてしまいますので、それで問題なければOKをクリックして保存期間を変更します。

WS000015.JPG

以上になります。

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
27