BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AIを有効にしたトラブルシューティングにより、リカバリ時間を短縮

AIを有効にしたトラブルシューティングにより、リカバリ時間を短縮

原文(投稿日:2021/10/21)へのリンク

異常検出の機械学習アルゴリズムは、一般化された ML モデルをトレーニングし、隠れたパターンを検出して疑わしい動作を特定するために適用し、日常業務の中でDevOpsを支援する。IT運用 (AIOP) に適用される機械学習は、企業の研究環境からプロダクション環境に移行し始めている。

Technische Universität Berlin のポストドクター研究員である Florian Schmidt 氏は、DevOpsCon Berlin 2021 でログファイルトラブルシューティングの AI 主導のサポートについて講演した。

Schmidt 氏によると、ログファイルのトラブルシューティングで専門家を活用している企業は、DevOps/SRE が不足していることからコストが高すぎる一方で、アプリケーションはコンテナ化されたサービスや機能を通じて単一にホストされたコンポーネントの数を増やしている。

Schmidt 氏は、機械学習を使用してトラブルシューティング時間を短縮する方法について説明した:

機械学習モデルの主な役割は、洞察に満ちたレポートを組み合わせて DevOps/SRE が異常を検出するのを支援するものだと思います。このプロセスには、根本の原因コンポーネント (ネットワークスイッチ構成、実行中のサービス内のメモリリーク、ハードウェアの問題など) の特定、重要な異常ログメッセージの配信、同時に発生するインシデントの優先順位付け、具体的な問題の解決に役立つ変数解析などの詳細情報の強化が含まれます。

機械学習モデルはログデータ内の隠れたパターンを検出し疑わしい動作を特定できると、Schmidt 氏は説明している:

より詳細には、ログデータには2種類の異常があります。最初のタイプはフロー異常と呼ばれます。フロー異常とは、到着するログメッセージの頻度と順序で示される問題を捉える異常を指します。ML モデルは、予期されるログメッセージ、新しく派生したメッセージの欠落、およびメッセージ数の変化を検出するために、到着するログメッセージテンプレートの頻度、比率、および順序を学習します。

2番目のタイプは認知異常と呼ばれます。認知異常は、ログメッセージ内の問題の識別を表します。ログメッセージは通常、開発者が開発者に提供する非構造化テキストで記述されるため、異常はテキストのセマンティクス内で表されます。ML モデルは、NLP 技術を通じて、通常、例外、タイムアウト、失敗などの異常な動作に関連付けられている単語のグループを検出するために、これらのセマンティクスを学習します。さらに、メッセージ内の変数は、異常を示す貴重な洞察 (HTTP応答コードなど) も提供します。このような異常も認知異常として分類されますが、ログメッセージ内の変数を検出と時系列分析を適用できる追加の ML モデルのタイプが必要です。

InfoQ は、AI を有効にしたトラブルシューティングについて Florian Schmidt 氏にインタビューした。

InfoQ: ログを使用して複雑なアプリケーションのトラブルシューティングを行う際の実際の状況はどのようなものですか?

Florian Schmidt氏: 企業は、Elastic-Stack などのログ管理フレームワークを活用して、すべてのアプリケーションコンポーネントを体系的に監視し、ログデータをデータウェアハウスに保存し、アプリケーション固有のパフォーマンス KPI を構成可能なアラート機能を適用して視覚化しています。

このようなフレームワークにより、アプリケーションのトラブルシューティングを体系的に自動化できます。DevOps/SRE は、自己定義のクエリを追加して、ログメッセージ内の疑わしい正規表現パターンで自動的に検索し、さらに、アラートを受け取るためのしきい値を追加できます。

それでも、ログ管理フレームワークを運用プロセスにまだ統合していない企業はたくさんありますが、ログファイルを手動で検索して多くの専門家で問題を解決し、平均修復時間 (MTTR) を短縮しようとしています。

InfoQ: これらのアプローチの長所と短所は何でしょうか?

Schmidt氏: ログ管理の主要なインフラストラクチャコンポーネントをすでに確立している企業は、分析ツールを追加することで、それに基づいて構築できます。利点は、アプリケーションの根本原因コンポーネントを特定し、最も疑わしいログメッセージを週7日24時間、専門家に配信することにより、アラートプロセスを確実に自動化することです。このような支援により、専門家は、識別プロセスで貴重な時間を失うことなく、問題の修正に集中することができます。

ログデータと対話し、機械学習を通じてさらに非常に複雑な分析を適用できるプラグインをさらに統合するための標準化されたAPIを提供する、ログ管理フレームワークへの移行を信じています。これはさらに、DevOps が正しい根本原因を迅速に特定し、MTTR を加速するのに役立ちます。

InfoQ: トラブルシューティングにおいて機械学習モデルはどのような役割を果たすことができますか?

Schmidt氏: Anomaly Detection in Cloud Computing Environments (クラウドコンピューティング環境での異常検出) の博士課程の研究で、私は一般化された ML モデルのトラブルシューティングの手順をトレーニングしてプロダクション環境に適用できることを示しました。

ML 主導の異常検出により、手動検索と比較して検索時間を 98% 短縮できることを示すことができたケーススタディを実施しました。異常検出の重要なアイデアは、「通常の」動作を、日常の運用における監視対象サービスの高次元分布としてキャプチャすることです。分布は、サービスの操作時に (監視されていない異常検出のフレームワーク AutoAD4j を使用して) 自動的に学習し、異常/非典型的な状況 (学習した「通常の」操作に適合しないデータ) を警告します。

監視メトリックス (CPU、メモリ、ネットワークなど) の時系列データの分布は、オートエンコーダなどの再構築モデルや ARIMA などの予測モデルによってキャプチャできますが、ログデータは通常時間とともに現れるログメッセージ内の単語を通じてオートエンコーダモデルによって記述されます。「正規」分布への偏差を通じて異常な動作を警告する場合、異常の重大度を示す再構成エラーが計算されます。次に、具体的なサービスとログメッセージを示すことにより、最も深刻な異常が DevOps に報告されます。

InfoQ: 何を学びましたか?

Schmidt氏: 機械学習を IT 運用に提供しようとする際の重要な学びは、次のとおりです:

  1. DevOps とデータサイエンティストの両方のチームを構築して、お互いから効率的に学習します。
  2. データは重要なリソースです。ほとんどの ML ドメインと同様に、ラベル付きデータは、適用可能なモデルを作成するための最も重要な値です。DevOps に具体的なログメッセージにラベルを付けるように依頼します。これは主に、根本的な問題を特定したり、問題を解決したりするのに役立ちます。カオスエンジニアリング技術を使用してテスト環境をさらに構築すると、問題のある動作をより効率的にキャプチャするのにより役立ちます。
  3. 実際には、ML モデルの単純さとそれらの管理に焦点を当てることが重要です。長いトレーニング時間を必要とするモデル、または DevOps フィードバックを使用して再トレーニングする必要があるモデルは、保守が難しいことがよくあります。AutoML または教師なし手法を一般化して使用するモデルは、インフラストラクチャでの運用に関して、メンテナンスを容易にします。

InfoQ: トラブルシューティングに適用される AI に将来何がもたらされると思われますか?

Schmidt氏: 現在の研究と logsight.ai のような初期のアプリケーションは、ログ内のフロー異常と認知異常を検出する可能性を示しており、かなり正確な結果が得られます。ログの場合、将来は構造化ログの方向に進み、ログの書き込み方法を標準化します。さらに、企業はより複雑なディープラーニングモデルを活用して異常を自動的に検出します。

長期的には、完全に自動化された自己修復パイプラインがいつか登場することを期待しています。これにより、異常を検出できるだけでなく、リカバリと異常を軽減することもできます。これはエンドツーエンドのソリューションであり、私はコンピュータ用に構築される免疫システムと考えています。

この記事に星をつける

おすすめ度
スタイル

BT