ログを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": "*"
}
]
}