質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Amazon VPC

Amazon VPC(Amazon Virtual Private Cloud) は、仮想的なネットワークです。 独自の IP アドレスレンジの選択、サブネットの作成、ルートテーブル、 ネットワークゲートウェイの設定など、仮想ネットワーク環境を完全にコントロール可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1597閲覧

【AWS】CloudWatchにweb-serverのアクセスログを転送させたい

narururu

総合スコア170

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Amazon VPC

Amazon VPC(Amazon Virtual Private Cloud) は、仮想的なネットワークです。 独自の IP アドレスレンジの選択、サブネットの作成、ルートテーブル、 ネットワークゲートウェイの設定など、仮想ネットワーク環境を完全にコントロール可能です。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/07/05 07:04

解決したい課題

web-serverのアクセスログ(/var/log/nginx/access.log)をCloudWatchへ転送したい。

設定内容

◆CloudWatch画面

・ロググループ(/var/log/nginx/access.log)を作成し、ログストリーム(test)を作成。

◆EC2画面

・web-serverのフローログを作成。

Filter: All Destination log group: /var/log/nginx/access.log IAM role: AWSServiceRoleForCloudWatchEvents

現状

・CloudWatch画面のインサイトを選択後、ロググループに/var/log/nginx/access.logを選択し、クエリの実行ボタンを押したが、画面にはなんにも表示されないまま。(´・_・`)

・フローログのステータスについては、作成直後は「アクティブ」だが、時間が経過後「アクセスエラー」となる。

試したこと

◆S3へデータのエクスポート

下記のサイトでS3にエクスポートしたらログが見れるようになる可能性があると記載されていたので試したが、、、
https://qiita.com/shinichi-takahashi/items/3f845e4042f6122174b3
ここでもエラーとなる。
イメージ説明

◆セキュリティグループの設定変更
すべてのトラフィックを許可にし、フローログのステータスを確認したが、「アクセスエラー」のまま。

◆IAMロールの設定確認
イメージ説明

◆IAMロールの作成&適用
下記の内容で新規にIAMロール(test-logs-export)を作成したが、フローログの設定でIAMロールを選択することはできなかった。
イメージ説明

恐らくフローログのステータスで「アクセスエラー」になっていることが原因だと思いますが、解決できず。。。

特にCloudWatchにこだわっているわけではないので、アクセスログが確認できる方法として別の案がありましたら、アドバイスいただけますと幸いです。

以上、よろしくお願いいたします(>_<)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そもそもフローログとはサーバ内の特定のログではなく、ENIに対するトラフィックのログです。
VPC フローログ
なので、そもそもやり方が間違っています。フローログは関係ありません。

CloudWatch Logsにサーバ内のログを転送したいなら、CloudWatch Agentで送るかfluentdやlogstashなどのOSSを使って送るかでしょう。

CloudWatch Agentではインスタンスのメトリクスを送るだけでなく、ログファイルをCloudWatch Logsに送ることもできます。
CloudWatch Agentでのログの送り方についてはドキュメントをご参照ください。
CloudWatch Agentのインストールはなにげにハマりどころが多いので

CloudWatchではなくS3に出力したい場合は悩みどころですが、CloudWatch AgentでCloudWatchにログを送るのとは別にfluentd等のOSSを使うのが一番シンプルです。
CloudWatch LogsからKinesis Firehoseを使ってS3に出力することもできるのですが、CloudWatch Logsにサブスクリプションフィルタの設定をする必要があります。
サブスクリプションフィルタは現在のところロググループごとに一つしか設定できないので、もし他のものと連携させたい場合に困ります。

CloudWatch Logs→S3へのエクスポートについては今回の問題にあまり関係ないのであくまで補足ですが、そこがうまく行かないのはバケットポリシーの設定が足りない可能性が高いでしょう。
コンソールを使用したログデータの Amazon S3 へのエクスポート
不明点があったらまず公式ドキュメントを調べてみましょう。意外とそのまま載ってます。

投稿2020/07/05 15:46

yu_1985

総合スコア7440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

narururu

2020/07/06 03:41

ご回答ありがとうございます!yu_1985さん☺ とても詳しく教えていただき、勉強になります。 フローログ関係なかたですね、失礼しました。 CloudWatch Agent、fluentd、logstashを候補に試してみます。 今回、CloudFrontとweb-serverのどちらにアクセスしているか確認できるようにするために構築を試みているのですが、今思うと、web-serverのアクセスログをわざわざ別の場所に転送しなくても、そのままアクセスログを見れば、CloudFrontとweb-serverのどちらにアクセスされているか判別できる気がしました('_') しかし、yu_1985さんのおかげで、視野が広がりました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問