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