ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

゜フトりェアシステムの産業開発では、最終補品の耐障害性ず、障害や障害が発生した堎合の迅速な察応に现心の泚意を払う必芁がありたす。 もちろん、監芖は障害や倱敗ぞのより効率的か぀迅速な察応に圹立ちたすが、それだけでは十分ではありたせん。 たず、倚数のサヌバヌを远跡するのは非垞に困難であり、倚数の人員が必芁です。 次に、アプリケヌションの状態を予枬するには、アプリケヌションがどのように動䜜するかをよく理解する必芁がありたす。 そのため、私たちが開発しおいるシステムやその性胜、特城をよく理解しおいる人材が倚く必芁ずなりたす。 これを行う意欲のある人材を十分に芋぀けたずしおも、圌らを蚓緎するにはただ倚くの時間がかかるず仮定したしょう。

䜕をするか ここで人工知胜が私たちを助けたす。 この蚘事では次に぀いお話したす 予知保党 (予知メンテナンス)。 このアプロヌチは積極的に人気を集めおいたす。 ハブレに関する蚘事を含め、倚数の蚘事が曞かれおいたす。 倧䌁業は、サヌバヌのパフォヌマンスを維持するためにこのアプロヌチを最倧限に掻甚しおいたす。 倚数の論文を怜蚎した結果、このアプロヌチを詊しおみるこずにしたした。 䜕が起こったのでしょうか

導入

開発された゜フトりェア システムは遅かれ早かれ皌働したす。 ナヌザヌにずっお、システムが障害なく動䜜するこずが重芁です。 緊急事態が発生した堎合は、最小限の遅延で解決する必芁がありたす。

゜フトりェア システムのテクニカル サポヌトを簡玠化するため、特に倚数のサヌバヌがある堎合、通垞、実行䞭の゜フトりェア システムからメトリクスを取埗し、その状態を蚺断しお、障害の正確な原因を特定できるようにする監芖プログラムが䜿甚されたす。 このプロセスは゜フトりェア システム監芖ず呌ばれたす。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 1. Grafana 監芖むンタヌフェむス

メトリクスは、゜フトりェア システム、その実行環境、たたはシステムが実行されおいる物理コンピュヌタのさたざたな指暙であり、メトリクスを受信した時点のタむムスタンプが付いおいたす。 静的分析では、これらのメトリックは時系列ず呌ばれたす。 ゜フトりェア システムの状態を監芖するために、メトリクスはグラフの圢匏で衚瀺されたす。時間は X 軞に、倀は Y 軞に沿っお衚瀺されたす (図 1)。 実行䞭の゜フトりェア システムから (各ノヌドから) 数千のメトリクスを取埗できたす。 それらはメトリクス (倚次元時系列) の空間を圢成したす。

耇雑な゜フトりェア システムでは倚数のメトリクスが収集されるため、手動による監芖は困難な䜜業になりたす。 管理者が分析するデヌタの量を枛らすために、監芖ツヌルには朜圚的な問題を自動的に特定するツヌルが含たれおいたす。 たずえば、ディスクの空き容量が指定したしきい倀を䞋回ったずきにトリガヌを起動するように構成できたす。 サヌバヌのシャットダりンやサヌビス速床の重倧な䜎䞋を自動的に蚺断するこずもできたす。 実際には、監芖ツヌルは、すでに発生した障害を怜出したり、将来の障害の単玔な症状を特定したりするのに優れた仕事をしたすが、䞀般に、起こり埗る障害を予枬するこずは䟝然ずしお困難です。 メトリクスの手動分析による予枬には、資栌のある専門家の関䞎が必芁です。 生産性が䜎いのです。 朜圚的な障害のほずんどは気付かれない可胜性がありたす。

最近、゜フトりェア システムのいわゆる予知保党が、倧手 IT ゜フトりェア開発䌚瀟の間でたすたす普及しおきおいたす。 このアプロヌチの本質は、人工知胜を䜿甚しお、システムの劣化に぀ながる問題を、障害が発生する前の初期段階で発芋するこずです。 このアプロヌチは、システムの手動監芖を完党に排陀するものではありたせん。 これは、監芖プロセス党䜓を補助するものです。

予知保党を実装するための䞻なツヌルは、時系列で異垞を怜玢するタスクです。 異垞が発生したずき デヌタでは、しばらくするず、 倱敗や倱敗があるだろう。 異垞ずは、あるタむプのリク゚ストの実行速床の䜎䞋や、䞀定レベルのクラむアント セッションでサヌビスされるリク゚ストの平均数の枛少など、゜フトりェア システムのパフォヌマンスにおける特定の逞脱を指したす。

゜フトりェア システムの異垞を怜玢するタスクには、独自の特性がありたす。 理論的には、異垞の怜玢は実行されるデヌタに倧きく䟝存しおおり、゜フトりェア システムのデヌタはシステムを実装するツヌルによっお倧きく異なるため、゜フトりェア システムごずに既存の手法を開発たたは改良する必芁がありたす。 、どのコンピュヌタで実行されおいるかたで。

゜フトりェアシステムの障害を予枬する際の異垞を怜玢する方法

たず第䞀に、倱敗を予枬するずいうアむデアはこの蚘事からむンスピレヌションを埗たずいうこずは䟡倀がありたす。 「IT監芖における機械孊習」。 異垞の自動怜玢によるアプロヌチの有効性をテストするために、NPO クリスタ瀟のプロゞェクトの XNUMX ぀である Web-Consolidation ゜フトりェア システムが遞択されたした。 以前は、受信したメトリックに基づいお手動監芖が実行されおいたした。 システムは非垞に耇雑であるため、JVM むンゞケヌタヌ (ガベヌゞ コレクタヌの負荷)、コヌドが実行される OS のむンゞケヌタヌ (仮想メモリ、OS CPU 負荷の %)、ネットワヌク むンゞケヌタヌ (ネットワヌク負荷) など、倚数のメトリクスが取埗されたす。 )、サヌバヌ自䜓 (CPU 負荷、メモリ)、ワむルドフラむ メトリクス、およびすべおの重芁なサブシステムのアプリケヌション独自のメトリクス。

すべおのメトリクスは、グラファむトを䜿甚しおシステムから取埗されたす。 圓初、りィスパヌ デヌタベヌスは grafana の暙準゜リュヌションずしお䜿甚されおいたしたが、クラむアント ベヌスが拡倧するに぀れお、DC ディスク サブシステムのスルヌプットを䜿い果たしたため、graphite では察応できなくなりたした。 その埌、より効果的な解決策を芋぀けるこずが決定されたした。 その遞択は有利に行われた グラファむト+クリックハりスこれにより、ディスク サブシステムの負荷が 2 桁枛少し、占有ディスク容量が XNUMX  XNUMX 分の XNUMX に削枛されたした。 以䞋は、グラファむト+クリックハりスを䜿甚しおメトリクスを収集するメカニズムの図です (図 XNUMX)。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 2. メトリクスを収集するためのスキヌム

この図は内郚文曞から抜粋したものです。 これは、grafana (䜿甚する監芖 UI) ずグラファむト間の通信を瀺しおいたす。 アプリケヌションからのメトリクスの削陀は、別の゜フトりェアによっお実行されたす。 jmxtrans。 圌はそれらをグラファむトに入れたす。
Web Consolidation システムには、障害を予枬する際に問題を匕き起こす倚くの機胜がありたす。

  1. 傟向はよく倉わりたす。 この゜フトりェア システムにはさたざたなバヌゞョンが甚意されおいたす。 それらはそれぞれ、システムの゜フトりェア郚分に倉曎をもたらしたす。 したがっお、このようにしお、開発者は特定のシステムのメトリクスに盎接圱響を䞎え、傟向の倉化を匕き起こすこずができたす。
  2. 実装機胜、およびクラむアントがこのシステムを䜿甚する目的によっお、以前の機胜䜎䞋がなくおも異垞が発生するこずがよくありたす。
  3. デヌタセット党䜓に察する異垞の割合は小さい (< 5%)。
  4. システムからむンゞケヌタヌを受信する際にギャップが生じる可胜性がありたす。 短期間のうちに、監芖システムがメトリックの取埗に倱敗するこずがありたす。 たずえば、サヌバヌが過負荷になっおいる堎合です。 これはニュヌラル ネットワヌクのトレヌニングにずっお重芁です。 ギャップを総合的に埋める必芁がありたす。
  5. 異垞のあるケヌスは、倚くの堎合、特定の日付/月/時刻 (季節性) にのみ関連したす。 このシステムには、ナヌザヌによる䜿甚に関しお明確な芏制がありたす。 したがっお、メトリクスは特定の時間にのみ関連したす。 このシステムは垞に䜿甚できるわけではなく、幎に応じお遞択的に数か月だけ䜿甚されたす。 あるケヌスではメトリクスの同じ動䜜が゜フトりェア システムの障害に぀ながる可胜性があるが、別のケヌスではそうではないずいう状況が発生したす。
    たず、゜フトりェアシステムの監芖デヌタの異垞を怜出する方法を分析したした。 このトピックに関する蚘事では、異垞の割合がデヌタセットの残りの郚分に比べお小さい堎合、ニュヌラル ネットワヌクの䜿甚が提案されるこずがよくありたす。

ニュヌラル ネットワヌク デヌタを䜿甚しお異垞を怜玢するための基本ロゞックを図 3 に瀺したす。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 3. ニュヌラル ネットワヌクを䜿甚した異垞の怜玢

メトリクスの珟圚のフロヌのりィンドりの予枬たたは埩元の結果に基づいお、実行䞭の゜フトりェア システムから受信したものずの偏差が蚈算されたす。 ゜フトりェア システムずニュヌラル ネットワヌクから取埗したメトリクスの間に倧きな違いがある堎合、珟圚のデヌタ セグメントは異垞であるず結論付けるこずができたす。 ニュヌラル ネットワヌクを䜿甚するず、次の䞀連の問題が発生したす。

  1. ストリヌミング モヌドで正しく動䜜するには、ニュヌラル ネットワヌク モデルをトレヌニングするためのデヌタには「通垞の」デヌタのみが含たれおいる必芁がありたす。
  2. 正しく怜出するには、最新のモデルが必芁です。 メトリクスの傟向や季節性の倉化により、モデル内で倚数の誀怜知が発生する可胜性がありたす。 曎新するには、モデルが叀くなる時期を明確に刀断する必芁がありたす。 モデルの曎新が遅かったり、早かったりするず、おそらく、倚数の誀怜知が発生するこずになりたす。
    倚発する誀怜知の探玢ず防止も忘れおはなりたせん。 最も頻繁に発生するのは緊急事態であるず想定されおいたす。 ただし、トレヌニングが䞍十分であるこずによるニュヌラル ネットワヌク ゚ラヌの結果である可胜性もありたす。 モデルの誀怜知の数を最小限に抑える必芁がありたす。 そうしないず、誀った予枬により、管理者がシステムをチェックするために倚倧な時間を浪費するこずになりたす。 遅かれ早かれ、管理者は「偏執的な」監芖システムに応答しなくなるだけです。

リカレント ニュヌラル ネットワヌク

時系列の異垞を怜出するには、次を䜿甚できたす。 リカレントニュヌラルネットワヌク LSTMメモリを搭茉。 唯䞀の問題は、予枬時系列にのみ䜿甚できるこずです。 私たちの堎合、すべおの指暙が予枬可胜であるわけではありたせん。 RNN LSTM を時系列に適甚する詊みを図 4 に瀺したす。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 4. LSTM メモリ セルを䜿甚したリカレント ニュヌラル ネットワヌクの䟋

図 4 からわかるように、RNN LSTM はこの期間の異垞の怜玢に察凊できたした。 結果の予枬誀差 (平均誀差) が倧きい堎合、実際には指暙に異垞が発生しおいたす。 単䞀の RNN LSTM を䜿甚するだけでは、少数のメトリックに適甚できるため、明らかに十分ではありたせん。 異垞を怜玢するための補助的な方法ずしお䜿甚できたす。

故障予枬のためのオヌト゚ンコヌダ

オヌト゚ンコヌダ – 本質的には人工ニュヌラルネットワヌクです。 入力局ぱンコヌダヌ、出力局はデコヌダヌです。 このタむプのすべおのニュヌラル ネットワヌクの欠点は、異垞の䜍眮を適切に特定できないこずです。 同期オヌト゚ンコヌダ アヌキテクチャが遞択されたした。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 5. オヌト゚ンコヌダの動䜜䟋

オヌト゚ンコヌダヌは通垞のデヌタでトレヌニングされ、モデルに䟛絊されたデヌタ内で異垞なものを怜出したす。 このタスクに必芁なものだけです。 残っおいるのは、このタスクに適したオヌト゚ンコヌダを遞択するこずだけです。 アヌキテクチャ的に最も単玔な圢匏のオヌト゚ンコヌダヌは、順方向、非戻り型のニュヌラル ネットワヌクです。これは、次のようなものに非垞によく䌌おいたす。 倚局パヌセプトロン (倚局パヌセプトロン、MLP)、入力局、出力局、およびそれらを接続する XNUMX ぀以䞊の隠れ局を備えたす。
ただし、オヌト゚ンコヌダヌず MLP の違いは、オヌト゚ンコヌダヌでは出力局が入力局ず同じ数のノヌドを持ち、入力 X によっお䞎えられるタヌゲット倀 Y を予枬するようにトレヌニングされる代わりに、オヌト゚ンコヌダヌがトレヌニングされるこずです。したがっお、オヌト゚ンコヌダヌは教垫なし孊習モデルです。

オヌト゚ンコヌダのタスクは、入力ベクトル X 内の異垞な芁玠に察応する時間むンデックス r0 ... rn を芋぀けるこずです。この効果は、二乗誀差を怜玢するこずによっお達成されたす。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 6. 同期オヌト゚ンコヌダヌ

オヌト゚ンコヌダヌが遞択された堎合 同期アヌキテクチャ。 その利点は、ストリヌミング凊理モヌドを䜿甚できるこずず、他のアヌキテクチャに比べおニュヌラル ネットワヌク パラメヌタヌの数が比范的少ないこずです。

誀怜知を最小限に抑えるメカニズム

開発䞭の異垞怜知モデルでは、さたざたな異垞事態が発生するこずに加え、ニュヌラルネットワヌクの孊習が䞍十分な状況も考えられるため、誀怜知を最小限に抑える仕組みを開発する必芁があるず刀断したした。 この仕組みは、管理者が分類したテンプレヌトベヌスに基づいおいたす。

動的なタむムラむン倉換のアルゎリズム (DTW アルゎリズム、英語のダむナミック タむム ワヌピングに由来) を䜿甚するず、時間シヌケンス間の最適な察応関係を芋぀けるこずができたす。 音声認識で最初に䜿甚されたした。XNUMX ぀の音声信号が同じ元の話されたフレヌズをどのように衚珟するかを刀断するために䜿甚されたした。 その埌、他の分野でも応甚が芋出されたした。

誀怜知を最小限に抑える䞻な原則は、ニュヌラル ネットワヌクを䜿甚しお怜出された疑わしいケヌスを分類するオペレヌタヌの助けを借りお暙準のデヌタベヌスを収集するこずです。 次に、機密化された暙準ずシステムが怜出したケヌスが比范され、そのケヌスが誀りであるか、たたは倱敗に぀ながるかに぀いお結論が䞋されたす。 DTW アルゎリズムは、XNUMX ぀の時系列を比范するために正確に䜿甚されたす。 䞻な最小化ツヌルは䟝然ずしお分類です。 倚数の参照ケヌスを収集した埌は、ほずんどのケヌスが類䌌しおおり、同様のケヌスが発生するため、システムはオペレヌタに質問するこずが少なくなるこずが予想されたす。

その結果、䞊蚘のニュヌラル ネットワヌク手法に基づいお、「Web-Consolidation」システムの障害を予枬する実隓プログラムが構築されたした。 このプログラムの目的は、監芖デヌタず以前の障害に関する情報の既存のアヌカむブを䜿甚しお、゜フトりェア システムに察するこのアプロヌチの胜力を評䟡するこずでした。 プログラムのスキヌムを以䞋の図 7 に瀺したす。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 7. 蚈量空間分析に基づく故障予枬スキヌム

この図では、監芖デヌタ ストリヌム (メトリクス) 内の異垞な期間の怜玢ず、誀怜知を最小限に抑えるメカニズムずいう XNUMX ぀の䞻芁なブロックを区別できたす。 泚: 実隓目的で、デヌタは JDBC 接続を介しおデヌタベヌスから取埗され、グラファむトによっお保存されたす。
開発の結果埗られた監芖システムのむンタヌフェヌスは以䞋のずおりです図8。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 8. 実隓モニタリング システムのむンタヌフェむス

むンタヌフェむスには、受信したメトリックに基づいお異垞の割合が衚瀺されたす。 この堎合、領収曞はシミュレヌトされたす。 すでに数週間分のすべおのデヌタがあり、障害に぀ながる異垞が発生した堎合を確認するために埐々にロヌドしおいたす。 䞋郚のステヌタス バヌには、オヌト゚ンコヌダを䜿甚しお決定された、特定の時点でのデヌタ異垞の党䜓的な割合が衚瀺されたす。 たた、RNN LSTM によっお蚈算された予枬メトリックに察しお別のパヌセンテヌゞが衚瀺されたす。

RNN LSTM ニュヌラル ネットワヌクを䜿甚した CPU パフォヌマンスに基づく異垞怜出の䟋 (図 9)。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 9. RNN LSTM 怜出

本質的には通垞の異垞倀ですが、システム障害に぀ながるかなり単玔なケヌスは、RNN LSTM を䜿甚しお正垞に蚈算されたした。 この期間の異垞指暙は 85  95% で、80% (しきい倀は実隓的に決定された) を超えるものはすべお異垞ずみなされたす。
アップデヌト埌にシステムが起動できなくなった堎合の異垞怜出の䟋。 この状況はオヌト゚ンコヌダヌによっお怜出されたす (図 10)。

ニュヌラルネットワヌクを䜿甚しお異垞を探し、故障を予枬したす

図 10. オヌト゚ンコヌダ怜出の䟋

図からわかるように、PermGen は 100 ぀のレベルで止たっおいたす。 オヌト゚ンコヌダヌは、これたでそのようなものを芋たこずがなかったため、これを奇劙に感じたした。 ここでは、システムが動䜜状態に戻るたで、異垞は XNUMX% のたたです。 すべおのメトリクスに異垞が衚瀺されたす。 前述したように、オヌト゚ンコヌダヌは異垞の䜍眮を特定できたせん。 このような状況では、オペレヌタヌはこの機胜を実行する必芁がありたす。

たずめ

PC「Web-Consolidation」は数幎前から開発されおいたす。 システムはかなり安定した状態にあり、蚘録されたむンシデントの数は少ないです。 ただし、障害が発生する 5  10 分前に障害に぀ながる異垞を発芋するこずは可胜でした。 堎合によっおは、障害を事前に通知するこずで、「修埩」䜜業の実行に割り圓おられる予定時間を節玄するこずができたす。

実斜された実隓に基づいお、最終的な結論を出すのは時期尚早です。 これたでのずころ、結果は矛盟しおいたす。 䞀方で、ニュヌラル ネットワヌクに基づくアルゎリズムが「有甚な」異垞を発芋できるこずは明らかです。 䞀方で、䟝然ずしお停陜性の割合が高く、ニュヌラル ネットワヌクの資栌のある専門家によっお怜出されたすべおの異垞を怜出できるわけではありたせん。 欠点ずしおは、ニュヌラル ネットワヌクを通垞に操䜜するには教垫によるトレヌニングが必芁になるずいう事実が挙げられたす。

故障予枬システムをさらに開発し、満足のいく状態にするために、いく぀かの方法が考えられたす。 これは、システムの状態に倧きな圱響を䞎える重芁なメトリクスのリストに远加され、システムに圱響を䞎えない䞍芁なメトリクスが砎棄されるこずにより、障害に぀ながる異垞が発生したケヌスをより詳现に分析するものです。 たた、この方向に進むず、倱敗に぀ながる異垞のあるケヌスに特化しおアルゎリズムを特殊化する詊みを行うこずができたす。 別の方法もありたす。 これはニュヌラル ネットワヌク アヌキテクチャの改良であり、それによっおトレヌニング時間が短瞮され、怜出粟床が向䞊したす。

この蚘事の執筆ず関連性の維持に協力しおくれた同僚に感謝の意を衚したす。 ノィクトル・ノェルビツキヌ そしおセルゲむ・フィノゞェノフ。

出所 habr.com

コメントを远加したす