IT運用保守プラットフォームアルゴリズムの背後にある2つの「神の助け」

IT運用保守プラットフォームアルゴリズムの背後にある2つの「神の助け」

[51CTO.comからの原文] インテリジェント運用保守(AIops)は、IT運用保守の分野で最もホットな用語です。正式名称はアルゴリズムIT運用プラットフォームで、正式翻訳は「アルゴリズムベースのIT運用保守プラットフォーム」です。アルゴリズムは、インテリジェント運用保守のコア要素の1つであることがわかります。

[[192576]]

この記事では、主に運用と保守におけるアルゴリズムの役割について、異常検出と属性分析という 2 つの側面から説明します。また、運用保守システム Kale におけるスカイライン、Oculus モジュール、Opprentice システム、Granger 因果関係、FastDTW アルゴリズムなどの詳細についても説明します。

1. 異常検出

異常検出は、運用および保守エンジニアが最初に遭遇する可能性のあるものです。結局のところ、監視とアラームはすべての運用と保守作業の基礎です。アラームしきい値の設定は、時間と労力がかかる作業であり、作業を進める前に運用および保守担当者がビジネスを完全に理解する必要があります。また、ビジネスが着実に発展しているかどうかも考慮する必要があります。そうしないと、1 週間または 2 週間ごとに変更が行われると、運用および保守エンジニアは間違いなく気が狂ってしまいます。

この部分の作業をアルゴリズムに任せて解決できれば、間違いなく大きな進歩となるでしょう。機械学習は確かにこれを実現できます。ただし、機械学習がなくても、数理統計に基づくアルゴリズムを使用することもできます。その結果も同様に良好です。

異常検出: Skyline 異常検出モジュール

2013 年、Etsy は Kale と呼ばれる社内運用および保守システムをオープンソース化しました。スカイライン部分は異常検出用のモジュールであり、 9 つの異常検出アルゴリズムを提供します

  • 最初の1時間の平均、

  • 移動平均からの単純な標準偏差、

  • 移動平均からの標準偏差、

  • 平均減算累積、

  • 最小二乗法

  • ヒストグラムビン、

  • グラブス、

  • 中央絶対偏差、

  • コルモゴロフ-スミルノフ_テスト

簡単にまとめると、これら 9 つのアルゴリズムは次の 2 つのカテゴリに分類されます。

  1. 正規分布から始める: データがガウス分布に従うと仮定すると、標準偏差を使用してほとんどのデータ ポイントの間隔を決定できます。または、分布ヒストグラムに基づいて、ヒストグラムに含まれるデータが少なすぎる場合は異常です。または、ボックス プロット分析を使用してロングテール効果を回避できます。

  2. サンプル検証から始めます。Kolmogorov-Smirnov、Shapiro-Wilk、Lilliefor などのノンパラメトリック検証方法を使用します。

これらは機械学習ではなく、統計アルゴリズムです。もちろん、Etsy の Skyline プロジェクトは異常検出だけが目的ではありません。

まず、ここでは指標自体の状態のみを考慮し、垂直時系列の観点から異常検出を実行します。しかし、ビジネスの複雑さによって生じる横方向の異常は考慮されていません。第二に、提供されているアルゴリズムが非常に多い中で、どのアルゴリズムがより正確に指標を判断できるのでしょうか?これもまた判断が難しい点です。

質問 1:実装の選択肢。同じサンプル検証アルゴリズムを使用して、指標の現在の状態と過去の状態を比較したり、複数の指標のうちのどれが他の指標と異なるかを比較したりできます。

質問 2: Skyline は、実際には非常に単純でシンプルな方法を使用してこれを補足します。9 つのアルゴリズムのそれぞれに 1 つの投票があり、しきい値に達した場合にその投票がカウントされます。この閾値については、通常 6 または 7 が使用され、これが大多数を占めることを意味します。

異常検知オプレンティスシステム

それに比べて、同じ問題に直面した場合、Baidu SRE のインテリジェントな運用と保守はどのように対処するのでしょうか?昨年のAPMconで、Baiduのエンジニアたちはこの画像を使ってOpprenticeシステムの主要なアイデアを説明しました。


Opprentice システムの主なプロセスは次のとおりです。

  • KPI データはさまざまな検出器によって計算され、各ポイントの多くの特徴を取得します。

  • 特別なインタラクティブ ツールを使用して、運用および保守担当者は KPI データの異常な期間をマークします。

  • 異常分類にはランダム フォレスト アルゴリズムが使用されます。

検出器には、以下に示すように 14 個の異常検出アルゴリズムがあります。


これらのアルゴリズムの多くは Etsy の Skyline にも存在していることがわかります。ただし、多数のアルゴリズムのパラメータを調整するのを避けるための直接的なアプローチは、各パラメータの値の範囲を均等に分割することです。ランダム フォレストでは、特徴エンジニアリングは必要ありません。たとえば、検出器のタイプとして holt-winters を使用します。 Holt-wintersには、α、β、γの3つのパラメータがあり、すべて[0, 1]の範囲にあります。次に、(0.2、0.4、0.6、0.8) としてサンプリングされ、4 ** 3 = 64 の可能性があります。すると、各点には 64 個の固有値が割り当てられます。

異常検出

OpprenticeシステムはSkylineと非常によく似ている

Opprentice システムのプロセス全体は、最初にさまざまな統計アルゴリズムを通じて異常を見つけようとし、次に多数決方式/アルゴリズムを通じて最終的な判断結果を決定するという点で、スカイラインの考え方に似ています。

ただし、Baidu は投票の信頼性を高めるためにランダム フォレスト アルゴリズムを使用しています。 Etsy についてはどうですか? Skyline がオープンソース化されてから数か月後、社内で Thyme と呼ばれる新しいバージョンが実装されました。ウェーブレット分解、フーリエ変換、マン・ホイットニー検出などの技術を活用します。

さらに、コミュニティはSkylineに対してもその後のアップデートを行いました。EarthgeckoはTsfreshモジュールを使用して時系列データの特徴値を抽出し、複数の時系列間の異常検出を実行しました。後続の 2 つの Skylines では、依然として機械学習は使用されていませんが、時系列関連の統計アルゴリズムをさらに調査して調整していることがわかります。

Etsy に加えて、オープンソース コミュニティの他の多くの大手企業も、さまざまな時系列異常検出アルゴリズム ライブラリをオープンソース化しており、そのほとんどは 2015 年に開始されました。それらは以下の通りです:

  • Yahoo! は昨年、eGads ライブラリをオープンソース化しました。 (ジャワ)

  • Twitter は昨年、異常検出ライブラリをオープンソース化しました。 (右)

  • Surus ライブラリは 2015 年に Netflix によってオープンソース化されました。 (豚、PCAに基づく)

Twitter ライブラリも Python コミュニティに移植されており、興味のある読者は試すこともできます。

2. 帰属分析

属性分析は、アラーム受信後のトラブルシューティングである運用および保守作業の次の主要な部分です。単純な障害の場合、対応計画は一般的に単純で、サービス再起動エンジニアリングを使用します。ただし、大規模な IT 環境では、障害が発生すると、通常、広範囲にわたるアラームがトリガーまたは発生します。多数のアラームの中から最も緊急かつ重要なアラームを見つけることができれば、復旧時間(MTTR)を大幅に短縮できます。

この障害箇所特定要件は、通常、根本原因分析 (RCA) として分類されます。もちろん、RCA は障害箇所の特定以外にも使用できます。パフォーマンス最適化プロセスは通常、RCA の一種です。

アトリビューション分析 - Oculus モジュール

異常検出と同様に、RCA も統計と機械学習の手法を並行して使用して実行できます。統計の観点から始めましょう。これは依然として Etsy の Kale システムであり、異常検出用のスカイラインと Oculus と呼ばれる別の部分が含まれています。そして、Etsy が Kale 2.0 を再構築したとき、Oculus は 1.0 の中で最も成功した部分であると考えられ、そのまま保持されました。

Oculus の考え方は、一言で言えば、「ある監視指標の時間傾向グラフが別の監視指標の傾向グラフと似ている場合、それらは同じ根本原因の影響を受けやすい」ということです。したがって、IT 環境全体における時間同期が信頼でき、監視指標の粒度が比較的細かい場合、アラームに最も類似した最も古い監視指標が、特別な注意を必要とする根本原因であると大まかに推測できる可能性があります。

Oculus のスクリーンショットは次のとおりです。

この部分では 2 つの計算方法が使用されます。

  • ユークリッド距離は、異なる時系列データを同時に比較することです。 0 分 0 秒の場合、a と b の差は 1000 になり、0 分 5 秒の場合も差は 1000 になります。

  • FastDTW はオフセットのレイヤーを追加します。0:00 の a と 0:05 の b の差は 1000 です。0:05 の a と 0:10 の b の差も 1000 です。以下同様です。もちろん、この単純な仮定の背後には、アルゴリズムの計算の複雑さを軽減するための多くの具体的な実装がありますが、ここでは説明しません。

唯一残念なのは、Etsy が当初 Oculus を ES バージョン 0.20 に基づいて実装し、それ以降更新されていないことです。これほど古いバージョンをまだ使用している ES ユーザーはほとんどいないはずです。 Oculus 以外にも、さまざまな統計原理を使用して同様の効果を実現する製品が数多くあります。

帰属分析: グレンジャー因果関係

グレンジャー因果律はアルゴリズムです。簡単に言うと、「前瞬間の情報が全てわかっている場合の現時点でのXの確率分布」と「前瞬間のY以外の情報が全てわかっている場合の現時点でのXの確率分布」を比較して、YがXと因果関係があるかどうかを判定します。

機械学習について少し学んだ読者は驚くかもしれません。機械は相関関係には反応できるが因果関係には反応できないと言われているではないですか?ここでの因果関係は統計的な意味での因果関係であり、通常の哲学的な意味での因果関係ではないことに注意する必要があります。

因果関係の統計的定義は、「宇宙の他のすべてのイベントが一定であり、イベント A の発生または非発生が別のイベント B の発生確率に影響し、これら 2 つのイベントに時間的な順序 (A が B より前) がある場合、A は B の原因であると言えます。」です。 』

帰属分析のためのピアソン係数

よく使用される別のアルゴリズムはピアソン係数です。次の図は、ITOM ソフトウェアの実装を示しています。

その主な要素は、FastDTW アルゴリズムを使用する Oculus のものと似ていることがわかります。相関は相関スコアを表し、リード/ラグは時間軸上の異なる時系列データのオフセットを表します。

ピアソン係数は R 言語で非常に簡単に計算できます。たとえば、同じ期間の訪問数とサーバーの CPU 使用率を取得します。

次に、次のコマンドを実行します。

  1. acc_count<-scale(acc$acc_count,center=T,scale=T)
  2. CPU<-スケール(acc$cpuload5、中心=T、スケール=T)
  3. cor.test(acc_count,CPU) 関数

次の出力が表示されます。

対応する視覚化グラフィックは次のとおりです。

これは、Web サイトのデータ アクセス量と CPU の間に弱い相関関係があることを示しており、散布図からは、この 2 つが非線形の関係にあることがわかります。したがって、トラフィックの増加は実際には CPU 消費に影響を与えない可能性があります。

実際、R 言語は既存の運用・保守システムに組み込むのには適していません。 Elasticsearch を使用するエンジニアは幸運です。一般的に使用されるメトリック集計、バケット集計、パイプライン集計に加えて、ES はマトリックス集計も提供します。現在サポートされているのは、ピアソン係数の計算を使用する matrix_stats のみです。インターフェースのドキュメントについては、以下を参照してください。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-matrix-stats-aggregation.html

注意すべき唯一の点は、相関計算を必要とする 2 つのフィールドが、同じイベントに同時に存在する必要があることです。したがって、既存の ES データから異なる date_histograms を直接要求して計算することはできません。手動で整理し、ES にダンプして計算する必要があります。

[[192579]]

現在 Zhiluyi に勤務する Rao Chenlin 氏は、運用と保守の分野で 10 年の経験を持っています。 Weibo でシステム アーキテクトとして働いていたとき、彼は 11 人の SRE チームを率いていました。著書に『Webサイト運用保守技術と実践』『ELKstack権威ガイド』、共訳に『Puppet 3 Cookbook』『Learning Puppet 4』。彼は数多くの技術カンファレンスで、自動化された運用と保守、データ分析に関するトピックを共有してきました。

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  ディープニューラルネットワークを使用してNER固有表現抽出の問題を解決する

>>:  選択が難しいですか?最適な機械学習アルゴリズムの選び方を1つの記事で解説

ブログ    
ブログ    
ブログ    

推薦する

旅の途中+第2世代、「バルペンハイマー」完成までの7つのステップにカルパシーが驚愕 | 実際のテスト体験を添付

数日前、バービー・ハイモアがインターネットで話題になって以来、ネットユーザーたちは、MidJourn...

紆余曲折の続く教育+AI。舞台裏へのシフトは、巨大企業の拡大に向けた「新たな春」となるのか?

現在、人工知能技術は多くの産業に大きな影響を与えています。その中で、近年最もホットな産業である教育は...

機械学習における分類タスクの共通評価指標とPythonコード実装

データ ポイントを特定の数の定義済みクラスに分類するように ML モデルをトレーニングすることがタス...

...

UniVision: BEV 検出と Occ、デュアル SOTA の統合フレームワーク!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

ディープラーニングの一般化能力についての簡単な議論

1. DNNの一般化能力に関する問題この論文では主に、過剰パラメータ化されたニューラル ネットワー...

99行のコードでアナと雪の女王の特殊効果の太極拳の進化を実現

コンピュータシミュレーション技術の継続的な発展のおかげで、ますますリアルな現実世界をコンピュータで再...

統計と機械学習の違いは何ですか?

[[263249]]ビッグデータダイジェスト制作出典: medium編纂者:周嘉楽、郭小白、蒋宝尚...

早期がん検査、医療AI:2020年の医療の10の進歩は注目に値する

過ぎ去ろうとしている2020年、私たちが戦っているのは新型コロナウイルスだけではありません。人間の健...

戦闘計画システムにおける人工知能技術の応用に関する研究

近年、人工知能技術は飛躍的な進歩を遂げており、各国は人工知能技術の戦略的意義を認識し、国家戦略レベル...

障害検出におけるデータ機械学習の応用

はじめに: 従来の産業では、故障診断が機械メンテナンスで最も困難な段階であるため、メンテナンスに費や...

...

2021年から2030年までのドローン産業のトップ10の発展トレンド

民間ドローン産業は2010年頃から勢いを増し始め、特に2014年から2017年にかけて民生用ドローン...

自動運転車は本当に人間が運転する車よりも安全でしょうか?

自動運転車は、人工知能技術の最もエキサイティングで影響力のある応用例の 1 つです。米国だけでも、毎...