ヤマムギ

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 クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

ad

ad

  関連記事

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる

Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …

AWS 認定クラウドプラクティショナーのサンプル問題

AWS認定クラウドプラクティショナのサンプル問題2018年9月25日現在で、英語 …

AWS複数アカウントのリソースをLambda(Python)から一括操作したくて

AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …

Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot

Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …

VPCピア接続ではピア先VPCのセキュリティグループIDを指定できる

タイトルどおりです。 できることは知ってたのですが、試したことがなかったので、確 …

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …

ALBのヘルスチェックでPHPとMySQL接続をチェック

当ブログで504エラーが発生して、オートスケーリングにより自動でインスタンスが置 …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …