Amazon Web Services ブログ

新機能 – Amazon CloudWatch Logs Insights – 高速でインタラクティブなログ分析

多くのAWSサービスがログを生成します。すぐに思いつくものだけで VPC Flow ログRoute 53 ログLambda ログCloudTail ログ (AWS API 呼び出しのログ)、RDS ログIoT ログECS ログAPI Gateway ログS3 サーバーアクセス ログ、EC2 インスタンスログ (CloudWatch Agent 経由)があります。EC2インスタンスの上で動くサービス(ApacheTomcatNGINXなど)もログを生成します。そしてあなたのアプリケーションコードもおそらく同じでしょう。

それらのログに含まれる、データ、パターン、傾向、洞察により、あなたのアプリケーションや AWS リソースの、振る舞い、改善すべき点、運用上の問題の検出が可能になります。しかし、いつものことですが落とし穴があります。フォーマットやデータ要素数が多様化し、生ログデータサイズが増加することで分析は困難になります。個別の AWS 利用者が定常的に100テラバイト以上のログファイルを毎日生成した場合、findgrepといった従来のツールではもはや分析することはできません。

CloudWatch Logs Insights

新しいサービス CloudWatch Logs Insights がお役に立ちます。これはクラウドスケールで動作するよう設計され、セットアップやメンテナンスが不要なフルマネージドのサービスです。これは大量のログを数秒で走査し、インタラクティブなクエリの実行と可視化を提供します。あらゆるログフォーマットや、JSON ログから自動検出したフィールドを扱えます。使ってみると分かるように、これは大変フレキシブルであり、ログを調査するためのお気に入りのツールの一つになるでしょう。

CloudWatch Logs Insightsは洗練されたアドホッククエリ言語をサポートしており、希望するフィールドを取得するためのコマンドや、フィルタベースの条件指定、統計データの計算(パーセンタイルや時系列集計など)、希望するフィールドでのソート、クエリで返されるイベント件数の制限が行えます。データをイベントのフィールドから取り出すには正規表現が利用できます。クエリ結果は折れ線グラフやスタックエリアチャートで可視化でき、それを CloudWatch ダッシュボード に追加することが可能です。すぐに使い始められる多数のサンプルクエリもあります。

Insights を使ってみる

CloudWatch Logs Insights を使ってみましょう。CloudWatch コンソール を開き、Insights をクリックします。

次にメニューの一覧から、分析対象のロググループを選択します。

これでクエリを入力できます。サンプルクエリから選択することもできます。

ご覧のように、いくつかの異なるタイプのログに対してサンプルクエリを提供しています。ここでは CloudTrail の最初のクエリを選択し、Run query をクリックします。ログが検索され、数秒のうちに結果が可視化されます。

 

クエリにフィルタを追加して再度実行します。ここでは EC2 の API 呼び出しのログに絞り込みたいのでパイプ (|) と filter コマンドを使います。

絶対時刻あるいは相対時間でのフィルタも可能です。

グラフを生成することもできます。ここでは簡単な例として、Amazon RDS のメモリ使用量の 1分間平均値を過去30分間分表示しています。

CloudWatch Logs Insights はイベントの中にあるすべてのフィールドを検出し、そのフィールドが選択したログの中でどれだけ頻出するか教えてくれます。

サジェストを活用してクエリをインタラクティブに作成することもできます。

集計を行なっていないクエリの場合は、イベントを展開して全てのフィールドを確認することができます。


クエリ言語は6種類のコマンドをサポートしています。

fields – 1つ以上のログフィールドを取得します。これには abssqrtstrlentrim などの関数も使えます

filter – ログフィールドを1つ以上の条件に基づいて絞り込みます。条件には真偽値、比較演算子、正規表現が使用できます

stats – ログフィールドに対し、集計計算、つまり sumavgcountminmax そして percentile が行えます。集計単位時間は by 修飾子で指定します。

sort – 昇順、降順でログイベントをソートします

limit – クエリで返されるログイベントの数を制限します

parse – ログフィールドからデータを取り出します。一時的なフィールドを作成し、クエリ内でさらに処理することもできます。

このほか、クエリ言語は多様な算術&比較演算子、数値関数、文字列関数、日付/時刻関数、集計関数もサポートしています。

 

いつものように、ここでは比較的シンプルな機能を紹介してきましたが、このほかにも多くの機能がありますのでぜひお試しください。

Add to Dashboard – 洞察にあふれたクエリを作成したあと、「Add to dashboard」をクリックすることで、既存のダッシュボードに追加したり、新しいダッシュボードを作ることができます。

Copy Query Results – CloudWatch Logs Insightsを使って問題を発見したあと、Actions メニューをクリックし、Copy query results を選択すると結果をクリップボードへコピーできます。チケット管理システムに検索結果を貼り付けるといったことが行えます。

API と CLI アクセス – コンソールアクセスに加え、CloudWatch Logs Insights は AWS Command Line Interface (CLI) または AWS SDK でアクセスも可能です。

CloudWatch との統合 – クエリを実行する小さなコードを作成し、その結果を CloudWatch のカスタムメトリックに発行し、可視化し、アラームを設定するといった流れで、トラブルシュートをシンプルに、効率よく行うことができます。

今すぐ利用可能です

CloudWatch Logs Insights は次のリージョンで、本日から利用可能です。US East (N. Virginia)、US East (Ohio)、 US West (N. California)、 US West (Oregon)、 Canada (Central)、 Europe (Ireland)、 Europe (Frankfurt)、 Europe (London)、 Europe (Paris)、 Asia Pacific (Tokyo)、 Asia Pacific (Mumbai)、 Asia Pacific (Seoul)、 Asia Pacific (Sydney)、South America (São Paulo) 。

料金はクエリごとに走査したログデータの量に対してかかります。US East (N. Virginia)の場合、$0.005/GB で、他のリージョンも同様の料金です。

原文は New – Amazon CloudWatch Logs Insights – Fast, Interactive Log Analytics です。翻訳はSA大村が担当しました。