BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Amazon CloudWatchがログ監視とストレージを追加

Amazon CloudWatchがログ監視とストレージを追加

原文(投稿日:2014/10/31)へのリンク

Amazon CloudWatchは最近、アプリケーション、OS、カスタムログのためのログファイルの監視とストレージを追加した。また、Windows Server向けに幅広いログのサポートを拡張した。

Amazon CloudWatchはAWSクラウドリソースを監視し、"リソースの使用、アプリケーションの性能、運用状態を視覚的に確認できる"。EC2インスタンスDynamoDBのテーブルRDS DBインスタンスなどほとんどのリソースタイプで使え、アプリケーションやサービスのメトリクスを収集し、追跡することもできる。

ユーザはカスタムアラートを作成し、閾値を設定して、アラームの変化を捉えて、通知を受け取ったり、自動アクションを起こしたりさせることができる。注目すべきはAuto Scalingを使ってユーザが定義した条件でEC2を動的に拡大したり縮小したりできる(詳細は以前の記事を参照)。

Amazon CloudWatchはアプリケーション、オペレーティングシステム、カスタムログを監視し、保存する。"永続的ストレージ"の保持期間は、デフォルトで不定であり、最小で1日まで短くできる。期間、値、パターン、構成可能なフィルタでログを監視できる。検知はCloudWatchのメトリクスで確認でき、アラームを設定できる。例えば、特定の文字列("NullReferenceException"というような)やログデータの特定の位置に特定の文字列が発生した回数(例えば、Apacheのアクセスログの"404"ステータスコード)のような条件で監視できる。

フィルタによるログ監視と警告に注力しているのは、他のLogging as a Service (LaaS)との大きな違いだ。 LaaSのほとんどはリアルタイム検索を提供している。CloudWatchのログはAWS Management Consoleでストリーミングで見ることができるが、ログのリアルタイム検索はまだ提供されていない(AWSチームによれば検討中)。

 

CloudWatchのログ監視を理解するには次の4つの概念を把握する必要がある。

  • ログイベント – アプリケーションや監視対象のリソースが記録したレコード
  • ログストリーム – ログイベントの流れ
  • ログルグープ – ログストリームのグループ。保持しているログ、監視、アクセスコントロールの設定を共有する。
  • メトリクスフィルタ – 記録されたイベントからメトリクスを抽出し、CloudWatchのデータポイントに変換する方法を定義する。

メトリクスフィルタはログイベントを文字列や期間、値、CloudWatchで計測した発生回数で検索して、アクション可能なインサイトを提供する。フィルタはメトリクス名、名前空間、値、フィルタパターンで構成されており、期間や値で抽出をするだけでなく、ApacheのHTTPの転送バイトのようなスペースで区切ったログイベントから値を抽出できる。文字列("=, != and *")と数値(">, <, >=, <=, =, and !=")には条件演算子とワイルドカードを使って、値の抽出ができる。

フィルタはCloudWatchのコンソールで作成、検証できる。また、PutMetricFilterのAPI経由で作成し、TestMetricFilterで50のログイベントメッセージのサンプルを使って検証することもできる。次のではmAWS CLIを使ってフィルタを作成し、"4*"というワイルドカードを使って4xxのHTTPステータスコードをすべてカウントし、"$size"変数を使ってApacheのログの転送バイトを抽出している。

% aws logs put-metric-filter \
  --log-group-name MyApp/access.log \
  --filter-name BytesTransferred \
  --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \
  --metric-transformations \
      metricName=BytesTransferred,metricNamespace=YourNamespace,metricValue=$size

ログイベントはAWS CLI経由、またはAWS SDKのAPIを使って取得できる。ログイベントはLinuxとWindowsのCloudWatchログエージェントでも収集できる。エージェントはアプリケーションやOSのログを追跡し処理するように構成できる。エージェントはデフォルトで5秒に一度、ログを転送する

Linuxの場合は、ログエージェントはPythonベースのエージェントであり、EC2のユーザデータ経由で配置できる。また、コマンドラインでセットアップすることもできる。このブログ記事にはインストールと構成について書いてある。CloudWatchログはAmazonのアプリケーションマネジメントサービス、Amazon Elastic BeanstalkAWS CloudFormationAWS OpsWorksに統合されている。

Windowsの場合は、エージェントはEC2Configサービスに統合されており、Windowsのイベントログやパフォーマンスカウンタ(PCW)イベントトレーシング(ETW)ログ、 IISリクエストログ、その他のカスタムログファイルに基づいたログ送信をサポートする。mた、CloudWatchメトリクスを性能カウンタとして利用できるようにしている。このブログ記事では、構成の方法を説明しています。

Amazon CloudWatch Logsは現時点では、us-east-1、us-west-2、eu-west-1で利用可能。ただし、他のリージョンのログも収集はできる。CloudWatchのドキュメントには開発者ガイドCloudWatchCloudWatch LogsのAPIリファレンス、CloudWatch Logsエージェントのリファレンス、AWS CLIリファレンスのCloudWatch Logsの章が含まれている。Amazon CloudWatchフォーラムでサポートを受けられる。価格は従量課金。AWSはCloudWatchの無料枠を提供している。

この記事に星をつける

おすすめ度
スタイル

BT