DEVELOPER BLOG

開発者ブログ

HOME > 開発者ブログ > 【分析入門】CloudWatch Logs insightでアクセス分析をやってみる - PrismScaler

【分析入門】CloudWatch Logs insightでアクセス分析をやってみる - PrismScaler

1. はじめに

こんにちは!株式会社Definerのライターチームです! 今回は、CloudWatch Logs insightでログを用いたアクセス分析を行う方法について気になりますよね。 実際の画面や、資源を見ながら詳しく解説していきましょう。

2. 目的・ユースケース

この記事では、CloudWatch Logs insightでログを用いたアクセス分析をしたいときに、参考になる情報やプラクティスをまとめています。

3. セットアップ

まずは、Cloudwatch Logs Insightを用いてWebサーバのログを分析するためのセットアップをしていきます。 Webサーバはnginxを使っているものとします。   ①Cloudwatch logs agentのインストール 以下コマンドで、エージェントをインストールします。   ②設定ファイルの作成 コマンドでウィザードを起動し、設定することもできます。 今回は、以下のようなJsonファイルを直接「/opt/aws/amazon-cloudwatch-agent/bin/config.json」に作成しました。   これでセットアップは完了です!  
## エージェントのインストール
wget https://s3.<region>.amazonaws.com/amazoncloudwatch-agent-<region>/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm

## 設定ファイル作成用のウィザード実行
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard                
 

設定ファイル
{
   "agent": {
      "metrics_collection_interval": 60,
      "region": "ap-northeast-1"
   },
   "logs": {
      "logs_collected": {
         "files": {
            "collect_list": [
               {
                  "file_path": "/var/log/nginx/access.log",
                  "log_group_name": "nginx",
                  "log_stream_name": "accessLog"
               }
            ]
         }
      }
   }
}                  

4. Cloudwatch Logs Insightを用いたログ分析

それでは早速、Cloudwatch Logs Insightでアクセスログを分析してみます。   ①Cloudwatch Logs Insightへのアクセス Cloudwatchの画面へ移動し、「ログ」→「ログのインサイト」へ移動します。   ②取得するログの時間範囲指定 右上のカレンダーマークから、時間範囲を指定します。   ③nginxログの取得 まずは、対象範囲内の全てのnginxログを表示してみます。 以下クエリを実行しました!
fields @timestamp, @message
| sort @timestamp desc
| parse @message '* - - [*] "* * *" * * "*" "*" "*" "*" "*"' as host, ts, method, path, http, code, size, referer, ua, restime, forwarded, schema
| fields @host,@ts,@method,@path,@code,@referer,@size,@restime                
 

また、以下コマンドでは40X系のエラーごとに集計ができます。
fields @timestamp, @message
| sort @timestamp desc
| parse @message '* - - [*] "* * *" * * "*" "*" "*" "*" "*"' as host, ts, method, path, http, code, size, referer, ua, restime, forwarded, schema
| fields @host,@ts,@method,@path,@code,@referer,@size,@restime
| filter code like /40*/
| stats count(host) by code                  

5. 引用・参考記事

6. 独自ソリューション「PrismScaler」について

PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。 エンジニアの大変な作業を肩代わり ・自動構築 ・自動監視 ・構成可視化 クラウド基盤に関わる作業を以上のように効率化します。 SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。 高品質な汎用クラウド基盤の実現 ・クラウド基盤構築/クラウド移行 ・クラウドの保守運用・コスト最適化 など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。 興味を持たれた方には、無料で資料を提供しております。 お気軽にご相談ください。

7. お問合せ

株式会社Definerでは、 ・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。 ・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。 ・少ないエンジニアで事業が成長する仕組みづくりの実現。 ・エンジニアが喜ぶ、採用しやすい環境づくりの実現。 ・高速なアジャイル開発環境の実現。 ・自社プロダクトとしてPrismScalerを展開。 上記事業内容を進行しております。 ※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。 ご相談やお問い合わせは「株式会社Definer」へ。

8. Definerに関して。

・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。 ・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。 ・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。 ・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。