presents by IT Consulting 109

AWS CloudWatch – Log転送

概要


ログをAWSLogsに転送する事によってログのアーカイブを行う方法について記載しています。

 

 

手順


1.awslogsをインストールします。

次のコマンドを実行します。

yum install awslogs -y

実行結果

読み込んだプラグイン:priorities, update-motd, upgrade-helper

....省略

完了しました!

 

2.環境設定。

次のコマンドを実行します。

vi /etc/awslogs/awscli.conf

実行結果

[plugins]
cwlogs = cwlogs
[default]
region = us-east-1

以下の内容に修正して保存します。
※aws_accessの値は、IAMで「CloudWatch」のユーザーを作成してアクセスキーを取得します。

[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1
aws_access_key_id = **********
aws_secret_access_key = **********

 

3.ログ取得用設定ファイルの修正。

次のコマンドを実行します。

vi /etc/awslogs/awslogs.conf

実行結果

#
# ------------------------------------------
# CLOUDWATCH LOGS AGENT CONFIGURATION FILE
# ------------------------------------------
#

...省略

# -------------------------------------------------------------------------------------------------
#  %c           Locale's appropriate date and time representation. Tue Aug 16 21:30:00 1988 (en_US)
# -------------------------------------------------------------------------------------------------

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

以下の値を修正・追加して保存します。
※例として [ sv01 ] サーバーの「 cron / httpd / secure 」ログを追加で取得するように設定。

#
# ------------------------------------------
# CLOUDWATCH LOGS AGENT CONFIGURATION FILE
# ------------------------------------------
#

...省略

# -------------------------------------------------------------------------------------------------
#  %c           Locale's appropriate date and time representation. Tue Aug 16 21:30:00 1988 (en_US)
# -------------------------------------------------------------------------------------------------

# *** 修正 ***
[sv01-/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 = sv01-/var/log/messages

# *** 追加 ***
[sv01-/var/log/cron]
datetime_format = %b %d %H:%M:%S
file = /var/log/cron
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = sv01-/var/log/cron

[sv01-/var/log/secure]
datetime_format = %b %d %H:%M:%S
file = /var/log/secure
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = sv01-/var/log/secure

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

[sv01-/var/log/httpd/access.log]
datetime_format = [%d/%b/%Y:%H:%M:%S %z]
file = /var/log/httpd/access_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = sv01-/var/log/httpd/access.log

[sv01-/var/log/httpd/error.log]
datetime_format = [%a %b %d %H:%M:%S %Y]
file = /var/log/httpd/error.log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = sv01-/var/log/httpd/error.log

 

4.awslogsサービスの自動起動設定。

次のコマンドを実行します。

chkconfig awslogs on

実行結果

#

確認

chkconfig --list | grep awslogs

実行結果

awslogs         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

5.awslogsサービスの起動。

次のコマンドを実行します。

service awslogs start

実行結果

awslogs を起動中:     [  OK  ]

 

6.ログの転送確認。
AWSコンソールに接続して[ CloudWatch > ログ ]を確認します。
※ロググループに項目が表示されてこない場合、設定したIAMユーザーのアクセス権を確認します。

 

 

補足


IAMでの「CloudWatch Logs」アクションのアクセス権の例。
※「CloudWatchLogsFullAccess」を選択しても同じ

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
この記事を書いた人
名前:TRUE's。 千葉県育ち、神奈川県在住のIT系フリーエンジニア。 IT系のナレッジサイトを不定期で更新中。 フォトグラファー兼エンジニアとして日々勤しんでいる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です