ヤマムギ

growing hard days.

*

AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する

   


参考ページ

クイックスタート: 実行中の EC2 インスタンスに CloudWatch Logs エージェントをインストールして設定する – Amazon CloudWatch ログ

EC2用のIAMロールを作成する

※既にEC2に設定しているIAMロールがありましたので次のポリシーを追加しました。

新たに作成する場合は下記のポリシーを設定したIAMロールをEC2に設定します。

EC2に CloudWatch Logsをインストールする

EC2にSSHログインシて作業します。

CloudWatch Logsを設定する

リージョンを設定します。

取得したいログファイルの設定をします。

datetime_formatについて

2017-08-12 05:04:03,618 – cwlogs.push.reader – WARNING – 2458 – Thread-4 – Fall back to current time: {‘timestamp’: 1502481843618, ‘start_position’: 25765L, ‘end_position’: 26029L}, reason: timestamp could not be parsed from message.

適切な設定をしないと上記のような警告ログが出力されてタイムスタンプが正常に反映されません。

それぞれのログファイルのタイムスタンプは確認したところ、下記のようになっていました。

ログファイル タイムスタンプ datetime_format
Nginx error.log 2017/08/12 05:04:00 %Y/%m/%d %H:%M:%S
Nginx access.log 12/Aug/2017:06:19:17 +0900 %d/%b/%Y:%H:%M:%S %z
php-fpm error.log 12-Aug-2017 05:24:38 %d-%b-%Y %H:%M:%S
php-fpm www-error.log 10-Aug-2017 23:40:46 UTC %d-%b-%Y %H:%M:%S
messages Aug 12 06:13:36 %b %d %H:%M:%S
secure Aug 11 04:03:33 %b %d %H:%M:%S

datetime_formatのフォーマット記号

記号 備考
%a Sun, Mon, …, Sat (en_US)
%A Sunday, Monday, …, Saturday (en_US)
%w 0, 1, …, 6 日~土までの数字
%d 01, 02, …, 31
%b Jan, Feb, …, Dec (en_US)
%B January, February, …, December (en_US)
%m 01, 02, …, 12
%y 00, 01, …, 99 西暦下2桁
%Y 1970, 1988, 2001, 2013
%H 00, 01, …, 23 24時間表記の時間
%I 01, 02, …, 12 12時間表記の時間
%p AM, PM (en_US)
%M 00, 01, …, 59
%S 00, 01, …, 59
%f 000000, 000001, …, 999999 マイクロ秒
%z (empty), +0000, -0400, +1030 標準時との差
%j 001, 002, …, 365 年における日
%U 00, 01, …, 53 年における週連番(最初の日曜日から0)
%W 00, 01, …, 53 年における週連番(最初の月曜日から0)

サービス起動

AWS CloudWatchのログを確認

ログが出来てます。

Nginxのaccess.logを見るとそれなりに攻撃されているのが分かりました。

対策は別記事で。


最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

 - AWS , , ,

ad

ad

  関連記事

AWS Expert Online at JAWS-UG首都圏エリアに参加して「Amazon EC2 スポットインスタンス再入門」を聞いてきた

AWS Expert Onlineという勉強会がありまして、AWS ソリューショ …

WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する

当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Am …

ACM(AWS Certificate Manager)の承認メールを受け取るためにAmazon SESを設定する

何のためでもいいのですが、ドメインは持っているけど、そのドメイン宛にメールを送ら …

AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night

AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …

Amazon Connectの新規作成からプッシュボタン入力と発信元電話番号をLambdaで処理するまで

とりあえずやりたいことはタイトルに書いたとおり、「電話をかけて、プッシュボタンに …

AWS EC2 インスタンスステータスのチェックで失敗 原因はPHP-FPMのOOM-KILLER

目次 先週に引き続きEC2のインスタンスステータスチェックで失敗とはいえまたスペ …

AWS Step Functions まずはパラレルでLambdaを並列実行してみました

複数のlambdaの実行制御をLambdaでやってましたが、その部分をStep …

サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する

すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからF …

JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会

「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …

RDS + VPC + Lambda + API Gateway + CloudFront + WAF + ACMでAPIを構築する

RDSのMySQLの情報を与えられたリクエストをキーにしてjsonで返すAPIを …