Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon_CloudWatch_ログ異常検出_導入ガイド

tsujiba
November 01, 2024

 Amazon_CloudWatch_ログ異常検出_導入ガイド

tsujiba

November 01, 2024
Tweet

More Decks by tsujiba

Other Decks in Technology

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Amazon CloudWatch ログ異常検出 導⼊ガイド AWS ではじめる AIOps の第⼀歩 辻林 侑 アマゾンウェブサービスジャパン合同会社 ソリューションアーキテクト AWS 秋の Observability 祭り ~明⽇使えるアセット祭り~
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ⽬次 2 • AWS のおける AIOps を利⽤したモニタリング • Amazon CloudWatch のログ異常検出 • CloudWatch Logs Anomaly Detection とは︖ • 導⼊ステップ • FAQ
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. AWS のおける AIOps を利⽤したモニタリング 3
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ログ分析の課題 ログが多すぎる.. プロアクティブな検出 何が変わった︖ 未知の未知 ログデータの量の多様性 は増加していく 時間の経過とともにログ がどのように変化したか を特定するのが困難 アプリケーションログ内 の異常の特定 予期せぬ問題への 監視が困難 ログの異常検出機能などの AIOps で上記課題解決へアプローチ
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. アプリケーション & インフラストラクチャ モニタリング (メトリクス,ログ,トレース) AIOps (異常検出, 拡張されたインサイト) Amazon EC2ベース アプリケーション サーバレス アプリケーション Amazon RDS Amazon CloudWatch (vended & custom metrics) Amazon CloudWatch Logs AWS CloudTrail AWS X-Ray Amazon CloudWatch 異常検出機能 Amazon DevOps Guru AWS X-Ray Insights ダ ッ シ ュ ボ ー ド & アラーム Amazon CloudWatch Dashboard Amazon CloudWatch Alarms Amazon EventBridge (notification) Amazon SNS (notification) RDS Performance Insights AWS のおける AIOps を利⽤したモニタリング OpsCenter Automated Actions ChatOps PagerDuty OpsGenie Slack 5 運⽤
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Amazon CloudWatch ログ異常検出 6
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Amazon CloudWatch における異常検出 7 [メトリクス] CloudWatch Metrics [ログ] CloudWatch Logs メトリクスを送信 ログを送信 AWSサービス オンプレミス/EC2 CloudWatch Agent [メトリクス異常検出] CloudWatch Anomaly Detection [ログ異常検出] CloudWatch Logs Anomaly Detection 2023/11 GA
  8. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Amazon CloudWatch における異常検出 8 [メトリクス] CloudWatch Metrics [ログ] CloudWatch Logs メトリクスを送信 ログを送信 AWSサービス オンプレミス/EC2 CloudWatch Agent [メトリクス異常検出] CloudWatch Anomaly Detection [ログ異常検出] CloudWatch Logs Anomaly Detection 2023/11 GA
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ログ異常検出︓CloudWatch Logs Anomaly Detection 9 CloudWatch Logs Anomaly Detection とは︖ CloudWatch Logs に取り込まれたログを継続的にスキャンし、組み込みの機械学習モデルで⾃動的に注⽬すべきコンテ ンツと傾向を抽出し、異常を検出 コストは︖ 追加コストなし(CloudWatch Logs 取り込み料⾦に含まれる) ※低頻度アクセス (Infrequent Access) ログクラスでは利⽤できない どのようなログが適している︖ 異常検出はアプリケーションの問題を発⾒することを⽬的としている ・INFO、ERROR、DEBUG などのログレベルまたは重⼤度のキーワードを含むイベントのログ ※ JSON 構造が⾮常に⻑いログイベントには適していない。パターン分析では、ログ⾏の最初の 1500 ⽂字までしか 分析されない。この制限を超える⽂字はすべてスキップされる。 (例︓CloudTrail Logs 、 VPC フローログなどの監査ログやアクセスログ、ネットワークやアクセスの異常には適して いない可能性がある。) 導⼊のメリットは︖ 異常が発⽣する可能性がある傾向の理解やアプリケーションの問題箇所の早期特定 静的な閾値ベースの検出では難しかったケースに対応可能
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. ログ異常検出︓CloudWatch Logs Anomaly Detection [ 導⼊ステップ ] 10 [ステップ1] 対象のロググループを決定 [ステップ2] 異常ディテクターの作成 [ステップ3] 異常検出結果の確認・分析
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ1 ]︓対象ロググループの決定 11 <ログ異常検出機能が特定のロググループに適しているかどうかを判断するには︖> CloudWatch Logs パターン分析を使⽤して、グループ内のログイベントのパターン数を確認。 → パターン数が300以下であれば、異常検出がうまくいく可能性がある。 <CloudWatch Logs ⾃動パターン検出> [Logs Insights] ページの [パターン] タブで、クエリ 結果で繰り返し発⽣するパターンを⾒つけて詳細に分 析 この3つのログは以下のパターン 例えば、こんなログが出⼒された場合、 そもそもパターンとは︖ ※パターン内のフィールドはトークンと呼ばれます。 リクエスト ID やタイムスタンプなど、パターン内で変化するフィールドは動的 トークンです。 CloudWatch Logs で表⽰される場合、各動的トークンは <*> で表されます。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ 補⾜ ]︓CloudWatch Logs Insight でどのようにパターンを調べる︖ 12 まずは以下のクエリで簡単にログパターンを調査できます︕ https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-Pattern.html pattern @message Logs Insight のクエリの書き⽅に不安な⽅も⾃然⾔語を利⽤したクエリ⽣成機能が活⽤可能︕ ① Query generator のプロンプト欄に、⽣成したいクエリの内容を書 く。今回はパターンを調査したいので、 “list log pattern” のように記述して、[新しいクエリの⽣成]を実⾏ ※ 現在、英語のみ利⽤可能 ② クエリ⼊⼒画⾯に⾃動的にクエリが⽣成。 [クエリの実⾏] で実際のクエリが実⾏される
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ2 ]︓異常ディテクターの作成(1/3) 13 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-Enable.html ① CloudWatch 管理コンソール 左ペインの [異常を ログ記録] を選択 設定は [CloudWatch] の管理コンソール画⾯から︕ ② [異常ディテクターを作成] を選択
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ2 ]︓異常ディテクターの作成(2/3) 14 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-Enable.html ① ステップ1で決定した CloudWatch ロググループを選択 異常ディテクター設定画⾯︓必須設定項⽬(必須項⽬はこれだけ︕︕) ② 異常ディテクター の名前を⼊⼒ ③ 評価頻度を選択(デフォルト5分) ロググループが新しいログを受信する頻度に従って設定。 例えば、ロググループが 10 分ごとに新しいログイベントをバッチ で受信する場合、評価頻度を 15 分に設定するのが適切な 場合がある。
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ2 ]︓異常ディテクターの作成(3/3) 15 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-Enable.html (オプション) ロググループ内の特定のログに絞って、異常検 出を⾏う場合のフィルターパターンを設定 パターン構⽂の詳細については、こちらを参照 異常ディテクター設定画⾯︓オプション設定項⽬(チューニングのために利⽤) (オプション)設定したフィルター内容をテストすることが可能 前⼿順で設定したロググループの実際のログやカスタムログデー タ(マニュアル⼊⼒)を利⽤可能 (オプション)その他 詳細設定として、 異常可視性時間と暗号化に利⽤するKMSキーの設定 (特に要件がなければデフォルトで設定) ④ 設定が完了したら [異常検出のアクティブ化] を選択
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ3 ]︓異常検出結果の確認 16 検出した異常の 概要 ・異常ディテクター作成後、過去2週間のログを利⽤し、ログMLモデルトレーニングが開始 ・完了後、受信ログを分析して異常を識別し、検出された場合に以下のように表⽰される https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-View.html 異常の優先度。優先度は⾃動的に計算され、 パターンの重⼤度レベルと期待値からの逸脱量 の両⽅に基づいて決定。 詳細はこちら 異常検出対象の ログパターン パターンに⼀致するログの量を ⽰すヒストグラムが表⽰
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [ ステップ3 ]︓異常検出結果の分析 18 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-View.html ③ 選択した動的トークンの値やカウント、⽐率 などを確認できる ①調査対象の検出 結果の [Inspect] をク リック ②ログパターンから、分析した い動的トークンを選択 ・ログパターンの動的トークンの値や数、⽐率の分析も可能
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [補⾜]︓異常検出結果の抑制 19 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-View.html ③ [異常を抑制] をクリック ① 抑制対象を検出 結果を選択 ② 抑制期間や同ログパターン での検出結果も含め抑制を⾏ うかを選択 ・検出結果として問題ない場合は、検出の抑制が可能 ④ [抑制済み]のリストの⽅へ追加され る。再度、抑制の解除も可能
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [FAQ]︓CloudWatch ログ異常検出(1/2) 20 [Q] AWS はログデータを AWS や他のお客様向けの機械学習アルゴリズムのトレーニングに使⽤しますか? [A] いいえ。トレーニングによって作成された異常検出モデルは、ロググループのログイベントに基づいて おり、そのロググループとその AWS アカウント内でのみ使⽤されます。 [Q] 異常検知にはどのような種類のログイベントが適していますか? [A] ログ異常検出は、ほとんどのログエントリが⼀般的なパターンに当てはまるアプリケーションログやそ の他の種類のログに適しています。INFO、ERROR、DEBUG などのログレベルまたは重要度キーワードを含 むイベントを含むロググループは、ログの異常検出に特に適しています。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html#LogsAnomalyDetection-FAQ
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. [FAQ]︓CloudWatch ログ異常検出(2/2) 21 [Q]異常としてフラグが⽴てられるのは何ですか︖ [A] 次の状況が発⽣すると、ログイベントに異常のフラグが付けられることがあります。 ・ロググループでこれまで⾒られなかったパターンのログイベントが発⽣ ・既知のパターンに対する⼤きな変化 ・通常の値セットと異なる動的トークンの新しい値の発⽣ ・動的トークンの値の出現回数の⼤幅な変化 [Q] マスクされている機密データはどうなりますか︖ [A] 機密データとしてマスクされたログイベントの⼀部は、異常についてスキャンされません。機密データ のマスキングの詳細については、「マスキングによる機密データの保護に役⽴つ」を参照してください。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html#LogsAnomalyDetection-FAQ
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Thank you︕ 22
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. デモの概要 23
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. 24 デモ環境について • ペットの⾥親募集・申込サイトができる アプリケーション • フロントエンド・各 API がコンテナ管 理・モジュール化されたマイクロサービ スアーキテクチャで構成 § 主な機能︓ • ペットの検索・⼀覧表⽰機能 • ⾥親が既に決まったペットの⼀覧表⽰ • ⾥親がまだ決まってないペットの⾥親申請 各マイクロサービスから CloudWatch Logs でログを収集し、 パターン分析や異常検出機能を活⽤するデモ Amazon SNS Amazon SQS PriceGreaterThan 55 PriceLessThan 55 ReadDynamo DB AWS Step Functions Users ALB PetSite-FrontEnd (Amazon EKS) PetListAdoptions-API (AWS Fargate) PayForAdoptions-API (AWS Fargate) PetAdoptionStatusUpdate r-API (Amazon API Gateway) Amazon DynamoDB Amazon S3 Amazon Aurora PostgreSQL ALB ALB ALB PetSearch- API (AWS Fargate) PetAdoptionsStatusUpdater (AWS Lambda) Amazon CloudWatch AWS X-Ray PetAdoptions History API
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. CloudWatch Logs Anomaly Detectionの分析結果 25
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Log Anomaliesの内容解説(再掲) 26 検出した異常の 概要 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/LogsAnomalyDetection-View.html 異常の優先度。優先度は⾃動的に計算され、 パターンの重⼤度レベルと期待値からの逸脱量 の両⽅に基づいて決定。 詳細はこちら 異常検出対象の ログパターン パターンに⼀致するログの量を ⽰すヒストグラムが表⽰
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. CloudWatch Logs InsightsでPattern分析 27
  27. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Insights機能の活⽤︓パターン検出 28 クエリ結果で繰り返し発⽣するパターンを⾒つけて詳細に分析 ※パターン内のフィールドはトークンと呼ばれます。 リクエスト ID やタイムスタンプなど、パターン内で変化するフィールドは動的 トークンです。 CloudWatch Logs で表⽰される場合、各動的トークンは <*> で表されます。 例えば、以下のようなログが出⼒された場合、 3つのログは以下のパターン 分析イメージ 時系列に[ERROR]のパターン のログサンプルを表⽰ ⾃動的に認識された、 Token1の値で分析
  28. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Pattern分析 29 例)/ecs/PayForAdaptionでは、puppyについてのPOSTが多い
  29. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Insights機能の活⽤︓パターン検出-⽐較モード 30 [Compare] ボタンを選択し、[previous day] を選択すると、昨⽇と⽐較して何が 変化したかがわかる ←[ERROR]のパターンが 10%減った事がわかる ↑[ERROR]のパターンの⾍眼鏡 ボタンをクリックしてEvent数を 先週と⽐較するグラフを確認
  30. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Insights機能の活⽤︓パターン検出-⽐較モード 33 例)/ecs/PetSearchでは、ERRORログが1週間前と⽐べて増えている
  31. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Confidential and Trademark. Insights機能の活⽤︓パターン検出-⽐較モード 34 例)/ecs/PayForAdaptionでは、POSTリクエストに増加傾向がある