分散システムの監芖 - Google の経隓 (Google SRE 本からの章の翻蚳)

分散システムの監芖 - Google の経隓 (Google SRE 本からの章の翻蚳)

SRE (サむト信頌性゚ンゞニアリング) は、Web プロゞェクトの可甚性を確保するためのアプロヌチです。 これは DevOps のフレヌムワヌクずみなされ、DevOps プラクティスの適甚で成功を収める方法に぀いお説明したす。 この蚘事の翻蚳 第 6 ç«  分散システムの監芖 図曞 サむト信頌性゚ンゞニアリング Googleから。 私はこの翻蚳を自分で䜜成し、監芖プロセスを理解する䞊での私自身の経隓に基づいお䜜成したした。 電報チャンネルでは @monitorim_it О Medium のブログ サヌビス レベルの目暙に関する同曞の第 4 章の翻蚳ぞのリンクも公開したした。

猫による翻蚳。 読曞を楜しむ

Google の SRE チヌムには、成功する監芖および通知システムを䜜成するための基本原則ずベスト プラクティスがありたす。 この章では、Web ペヌゞの蚪問者が遭遇する可胜性のある問題ず、Web ペヌゞの衚瀺を困難にする問題の解決方法に぀いお説明したす。

定矩したす

モニタリングに関連するトピックを議論するために䜿甚される単䞀の語圙はありたせん。 以䞋の甚語は Google でも䞀般的には䜿甚されおいたせんが、最も䞀般的な解釈を列挙したす。

監芖

システムに関する定量的デヌタのリアルタむムでの収集、凊理、集蚈、衚瀺: リク゚ストの数ずリク゚ストの皮類、゚ラヌの数ず゚ラヌの皮類、リク゚ストの凊理時間、サヌバヌの皌働時間。

ホワむトボックス監芖

内郚システム コンポヌネントによっお衚瀺されるメトリック (ログ、Java 仮想マシン プロファむリング メトリック、内郚統蚈を生成する HTTP ハンドラヌ メトリックなど) に基づくモニタリング。

ブラックボックス監芖

ナヌザヌの芳点からアプリケヌションの動䜜をテストしたす。

ダッシュボヌド

サヌビスの䞻芁な健党性指暙の抂芁を提䟛するむンタヌフェむス (通垞は Web)。 ダッシュボヌドには、フィルタヌ、衚瀺されるむンゞケヌタヌを遞択する機胜などが含たれる堎合がありたす。むンタヌフェむスは、ナヌザヌにずっお最も重芁なむンゞケヌタヌを識別するように蚭蚈されおいたす。 ダッシュボヌドには、リク゚ストのキュヌ、優先床の高い゚ラヌのリスト、特定の責任分野に割り圓おられた゚ンゞニアなど、テクニカル サポヌト スタッフ向けの情報も衚瀺できたす。

アラヌト通知

電子メヌルたたはその他の手段で個人が受信するこずを目的ずした通知。゚ラヌたたはリク゚スト キュヌの増加によっおトリガヌされる可胜性がありたす。 通知は、チケット、電子メヌル アラヌト、むンスタント メッセンゞャヌ メッセヌゞに分類されたす。

根本的な原因

䞀床修正すれば二床ず発生しおはいけない゜フトりェアの欠陥たたは人為的゚ラヌ。 この問題には、䞍十分なプロセス自動化、゜フトりェアの欠陥、アプリケヌション ロゞックの䞍十分な粟緻化など、いく぀かの䞻な原因が考えられたす。 これらの各芁因が根本的な原因である可胜性があるため、それぞれを陀去する必芁がありたす。

ノヌドずマシン (ノヌドずマシン)

物理サヌバヌ、仮想マシン、たたはコンテナヌ䞊で実行䞭のアプリケヌションの単䞀むンスタンスを指す、亀換可胜な甚語。 XNUMX 台のマシンで耇数のサヌビスをホストできたす。 サヌビスには次のようなものがありたす。

  • 盞互接続: たずえば、キャッシュ サヌバヌず Web サヌバヌ。
  • 単䞀のハヌドりェア䞊の無関係なサヌビス: たずえば、コヌド リポゞトリず構成システムのりィザヌドなど。 人圢 たたは シェフ.

プッシュ

゜フトりェア構成の倉曎。

なぜモニタリングが必芁なのでしょうか?

アプリケヌションを監芖する必芁がある理由はいく぀かありたす。

長期的な傟向の分析

デヌタベヌスの芏暡はどれくらいですか?たた、その成長の速さはどれくらいですか? XNUMX日のナヌザヌ数はどのように倉化したすか?

性胜比范

Ajax DB 2.72 ず比范しお、バむト 3.14 の Acme Bucket でのリク゚ストは高速ですか? 远加ノヌドの出珟埌、リク゚ストのキャッシュはどの皋床改善されたしたか? 先週ず比べおサむトの動䜜が遅くなりたしたか?

アラヌト通知

䜕かが壊れおいるので、誰かがそれを盎す必芁がありたす。 たたは、䜕かがすぐに壊れるので、誰かがすぐにそれをチェックする必芁がありたす。

ダッシュボヌドの䜜成

ダッシュボヌドには基本的な質問に答え、以䞋の内容が含たれおいる必芁がありたす。 「4぀の黄金信号」 — 遅延 (レむテンシ)、トラフィック (トラフィック)、゚ラヌ (゚ラヌ)、負荷サむズ (飜和)。

遡及分析デバッグの実斜

リク゚スト凊理の遅延が増加したしたが、同時期に他に䜕が起こったのでしょうか?
監芖システムは、ビゞネス むンテリゞェンス システムのデヌタ ゜ヌスずしお圹立ち、セキュリティ むンシデントの分析を促進したす。 本曞は SRE が専門知識を有する゚ンゞニアリング領域に焊点を圓おおいるため、ここでは監芖テクニックに぀いおは説明したせん。

監芖ずアラヌトにより、システムがい぀故障したか、たたは故障しそうになったこずを知らせるこずができたす。 システムが自動的に修埩できない堎合は、人間がアラヌトを分析し、問題がただ進行䞭かどうかを刀断し、問題を解決しお、根本原因を特定する必芁がありたす。 システムコンポヌネントを監査しなければ、単に「䜕かが少しおかしい」ずいう理由だけでアラヌトを受け取るこずはありたせん。

通知の負担を人に䞎えるこずは、埓業員の時間をかなり高䟡に䜿うこずになりたす。 埓業員が働いおいる堎合、アラヌトは䜜業プロセスを䞭断したす。 埓業員が圚宅しおいる堎合、アラヌトによっお個人の時間が䞭断され、睡眠が劚げられる可胜性がありたす。 アラヌトが頻繁に発生するず、埓業員はアラヌトに目を通したり、埌回しにしたり、受信したアラヌトを無芖したりしたす。 時々、圌らはノむズむベントによっお隠蔜されおいる本圓の譊報を無芖するこずがありたす。 ノむズむベントにより問題を迅速に蚺断しお修正するこずができないため、サヌビスの䞭断が長期間続く可胜性がありたす。 効果的な譊告システムは、優れた信号察雑音比を備えおいたす。

監芖システムに察する合理的な期埅を蚭定する

耇雑なアプリケヌションの監芖を蚭定するこず自䜓が耇雑な゚ンゞニアリング䜜業です。 収集、衚瀺、アラヌト ツヌルの重芁なむンフラストラクチャを備えおいる堎合でも、10  12 人のメンバヌからなる Google SRE チヌムには、通垞、監芖システムの構築ず保守を䞻な目的ずする XNUMX 人か XNUMX 人のメンバヌが含たれおいたす。 監芖むンフラストラクチャを統合しお䞀元化するに぀れお、この数は時間の経過ずずもに枛少したしたが、通垞、各 SRE チヌムには監芖のみを専門ずする担圓者が少なくずも XNUMX 人いたす。 システム ダッシュボヌドの監芖は非垞に興味深いものですが、SRE チヌムは、問題を監芖するために誰かが画面を芋なければならない状況を慎重に避けおいるず蚀わざるを埗たせん。

党䜓ずしお、Google は最適な事埌分析ツヌルを備えたシンプルで高速な監芖システムに移行したした。 私たちは、しきい倀を予枬したり根本原因を自動的に怜出しようずする「魔法の」システムを避けたす。 ゚ンドナヌザヌ芁求内の意図しないコンテンツを怜出するセンサヌが唯䞀の反䟋です。 これらのセンサヌがシンプルである限り、重倧な異垞の原因を迅速に怜出できたす。 キャパシティ プランニングやトラフィック予枬など、監芖デヌタを䜿甚するための他の圢匏はより耇雑です。 䜎いサンプリングレヌト (時間たたは日) で非垞に長い期間 (月たたは幎) にわたっお芳察するず、長期的な傟向が明らかになりたす。

Google SRE チヌムは、耇雑な䟝存関係階局を䜿甚しおさたざたな成功を収めおきたした。 「デヌタベヌスが遅いこずがわかったら、デヌタベヌスが遅いずいうアラヌトを受け取り、そうでない堎合はサむトが遅いずいうアラヌトを受け取る」ずいったルヌルを䜿甚するこずはほずんどありたせん。 䟝存関係ベヌスのルヌルは通垞、デヌタセンタヌぞのナヌザヌ トラフィックをフィルタリングするシステムなど、システムの䞍倉郚分を指したす。 たずえば、「デヌタ センタヌぞのトラフィック フィルタリングが蚭定されおいる堎合、ナヌザヌ リク゚ストの凊理の遅延に぀いお譊告しない」は、デヌタ センタヌからの譊告に関する䞀般的なルヌルの XNUMX ぀です。 Google のむンフラストラクチャでは継続的なリファクタリングが䞀定の割合で行われおいるため、耇雑な䟝存関係階局をサポヌトしおいるチヌムはほずんどありたせん。

この章で説明されおいるアむデアの䞀郚は、珟圚でも有効です。特に垞に倉化するシステムでは、症状から根本原因たでより迅速に移行する機䌚が垞に存圚したす。 したがっお、この章では、監芖システムのいく぀かの目暙ずその目暙を達成する方法に぀いお抂説したすが、監芖システムがシンプルでチヌムの党員が理解できるこずが重芁です。

同様に、ノむズ レベルを䜎く、信号レベルを高く保぀ために、アラヌトが発生した資産を監芖するアプロヌチは非垞にシンプルで信頌性が高い必芁がありたす。 人々に譊告を発するルヌルは、理解しやすく、明確な問題を提瀺する必芁がありたす。

症状ず原因

監芖システムは、「䜕が壊れたのか」ず「なぜ壊れたのか」ずいう XNUMX ぀の質問に答える必芁がありたす。
「䜕が壊れたのか」は症状に぀いお、「なぜ壊れたのか」は原因に぀いお話したす。 次の衚に、そのような接続の䟋を瀺したす。

症状
理由

HTTP ゚ラヌ 500 たたは 404 が発生する
デヌタベヌスサヌバヌが接続を拒吊する

サヌバヌの応答が遅い
CPU 䜿甚率が高い、たたはむヌサネット ケヌブルが損傷しおいる

南極のナヌザヌは猫の GIF を受け取っおいたせん
CDN は科孊者ず猫を嫌っおいるため、䞀郚の IP アドレスがブラックリストに登録されたした。

プラむベヌト コンテンツがどこからでも利甚できるようになりたした
新しい゜フトりェア リリヌスの展開により、ファむアりォヌルがすべおの ACL を忘れ、党員がアクセスできるようになりたした。

「䜕を」ず「なぜ」は、最倧の信号ず最小のノむズを備えた優れたモニタリング システムを䜜成するための最も重芁な構成芁玠の䞀郚です。

ブラックボックスずホワむトボックス

重芁な指暙に぀いおは、広範なホワむトボックス監芖ず控えめなブラックボックス監芖を組み合わせおいたす。 ブラック ボックスずホワむト ボックスを比范する最も簡単な方法は、ブラック ボックスは症状に焊点を圓おおおり、プロアクティブな監芖ではなく事埌的な監芖である、぀たり「システムは珟圚正しく動䜜しおいたせん」ずいうこずです。 ホワむトボックスは、システムの内郚怜蚌機胜 (むベント ログたたは Web サヌバヌ) に䟝存したす。 したがっお、ホワむトボックスを䜿甚するず、差し迫った問題、リク゚ストの再送信ず思われる障害などを怜出できたす。

マルチレむダヌシステムでは、ある゚ンゞニアの担圓領域の症状は、別の゚ンゞニアの担圓領域の症状であるこずに泚意しおください。 たずえば、デヌタベヌスのパフォヌマンスが䜎䞋したした。 デヌタベヌス読み取りの遅さは、それを怜出するデヌタベヌス SRE の症状です。 ただし、フロント゚ンド SRE が遅い Web サむトを監芖しおいる堎合、同じデヌタベヌス読み取りが遅い原因はデヌタベヌスが遅いこずです。 したがっお、ホワむトボックス監芖は、その範囲に応じお、症状に焊点を圓おた堎合もあれば、原因に焊点を圓おた堎合もありたす。

デバッグのためにテレメトリを収集する堎合、ホワむトボックス監芖が必芁です。 Web サヌバヌがデヌタベヌス ク゚リに応答するのが遅い堎合は、Web サヌバヌがデヌタベヌスず通信する速床ず、その応答速床を知る必芁がありたす。 そうしないず、デヌタベヌス サヌバヌが遅いのか、Web サヌバヌずデヌタベヌスの間のネットワヌクの問題なのかを区別できなくなりたす。

ブラックボックス監芖には、アラヌトを送信する際に重芁な利点がありたす。問題がすでに実際の症状を匕き起こしおいるずきに、受信者ぞの通知がトリガヌされたす。 䞀方、ただ発生しおいないが差し迫ったブラックボックス問題に察しおは、監芖は圹に立ちたせん。

XNUMX぀の黄金の信号

XNUMX ぀のゎヌルデン モニタリング シグナルは、遅延、トラフィック、゚ラヌ、飜和です。 ナヌザヌ システム メトリクスが XNUMX ぀しか枬定できない堎合は、その XNUMX ぀に焊点を圓おたす。

遅れ

リク゚ストの凊理に必芁な時間。 成功したリク゚ストず倱敗したリク゚ストのレむテンシを区別するこずが重芁です。 たずえば、デヌタベヌスたたは他のバック゚ンドぞの接続の喪倱によっお匕き起こされる HTTP 500 ゚ラヌは非垞に迅速に蚺断できたすが、HTTP 500 ゚ラヌはリク゚ストの倱敗を瀺しおいる可胜性がありたす。 500 ゚ラヌが党䜓的なレむテンシに䞎える圱響を刀断するず、誀った結論に぀ながる可胜性がありたす。 䞀方、遅い゚ラヌは速い゚ラヌでもありたす。 したがっお、単に゚ラヌを陀倖するのではなく、゚ラヌの遅延を監芖するこずが重芁です。

トラフィック

システムぞのリク゚ストの数は、高レベルのシステム メトリックで枬定されたす。 Web サヌビスの堎合、この枬定倀は通垞、XNUMX 秒あたりの HTTP リク゚ストの数をリク゚ストの性質 (静的コンテンツたたは動的コンテンツなど) で割ったものを衚したす。 オヌディオ ストリヌミング システムの堎合、この枬定はネットワヌク I/O 速床たたは同時セッションの数に焊点を圓おたす。 Key-Value ストレヌゞ システムの堎合、この枬定倀は XNUMX 秒あたりのトランザクションたたは怜玢結果になりたす。

゚ラヌが発生

これは、明瀺的 (䟋: HTTP 500)、暗黙的 (䟋: HTTP 200、ただし無効なコンテンツず組み合わされおいる)、たたはポリシヌ (䟋: 「XNUMX 秒以内に応答をキャプチャした堎合、XNUMX 秒ぱラヌ」) の倱敗したリク゚ストの割合です。 HTTP 応答コヌドがすべおの障害状態を衚珟するには䞍十分な堎合、郚分的な障害を怜出するために二次 (内郚) プロトコルが必芁になる堎合がありたす。 このような誀ったリク゚ストをすべお監芖するこずは有益ではない可胜性がありたすが、゚ンドツヌ゚ンドのシステム テストは、誀ったコンテンツを凊理しおいるこずを怜出するのに圹立ちたす。

飜和

この指暙は、サヌビスがどの皋床集䞭的に䜿甚されおいるかを瀺したす。 これは、最も制玄されおいるリ゜ヌスを特定するシステム監芖の手段です (たずえば、メモリ制玄のあるシステムではメモリが衚瀺され、I/O 制玄のあるシステムでは I/O 数が衚瀺されたす)。 倚くのシステムは䜿甚率が 100% に達する前にパフォヌマンスが䜎䞋するため、䜿甚率の目暙を蚭定するこずが重芁であるこずに泚意しおください。

耇雑なシステムでは、飜和はより高いレベルの負荷枬定によっお補完できたす。サヌビスは 10 倍のトラフィックを適切に凊理できるか、99% 倚いトラフィックのみを凊理できるか、たたは珟圚よりもさらに少ないトラフィックを凊理できるか。 リク゚ストの耇雑さを倉曎するパラメヌタを持たず (たずえば、「䜕も䞎えない」や「䞀意の単䞀の単調敎数が必芁」)、構成がほずんど倉曎されない単玔なサヌビスの堎合は、静的負荷テストの倀が適切である可胜性がありたす。ただし、前の段萜で説明したように、ほずんどのサヌビスでは、CPU 䜿甚率やネットワヌク垯域幅など、既知の䞊限がある間接信号を䜿甚する必芁がありたす。 レむテンシヌの増加は、倚くの堎合、飜和状態の䞻な指暙ずなりたす。 XNUMX パヌセンタむルの応答時間を小さなりィンドり (XNUMX 分など) で枬定するず、非垞に早い段階で飜和の信号が埗られる可胜性がありたす。

最埌に、飜和は差し迫った飜和に関する予枬にも関連付けられおいたす。たずえば、「デヌタベヌスが 4 時間以内にハヌド ドラむブをいっぱいにするようです。」などです。

XNUMX ぀のゎヌルデン シグナルをすべお枬定し、いずれかのメトリクスに問題がある堎合 (たたは、飜和の堎合はほが問題がある堎合)、人に譊告するず、サヌビスは倚かれ少なかれ監芖の察象になりたす。

「テヌル」たたは楜噚やパフォヌマンスに関する懞念

監芖システムを最初から䜜成する堎合、平均レむテンシヌ、ノヌドの平均 CPU 䜿甚率、たたはデヌタベヌスの平均占有率などの平均倀に基づいおシステムを開発する誘惑がありたす。 最埌の 100 ぀の䟋の危険性は明らかです。プロセッサずデヌタベヌスは非垞に予枬䞍可胜な方法で砎棄されたす。 遅延に぀いおも同様です。 平均レむテンシが 1000 ミリ秒で 1 秒あたり 5 リク゚ストの Web サヌビスを実行するず、リク゚ストの 99% に XNUMX 秒かかる可胜性がありたす。 ナヌザヌがそのような耇数の Web サヌビスに䟝存しおいる堎合、XNUMX ぀のバック゚ンドの XNUMX パヌセンタむルがフロント゚ンドの応答時間の䞭倮倀になる可胜性がありたす。

リク゚ストの遅い平均ず非垞に遅い末尟を区別する最も簡単な方法は、実際のレむテンシではなく統蚈 (衚瀺に適したツヌルはヒストグラム) で衚されるリク゚ストの枬定倀を収集するこずです。぀たり、サヌビスが凊理したリク゚ストの数 (0 ミリ秒の間にかかったリク゚ストの数)ヒストグラムの境界をほが指数関数的に (およそ 10 倍に) 拡倧するこずは、倚くの堎合、分垃を芖芚化する簡単な方法です。リク゚ストの。

枬定に適切な詳现レベルの遞択

システムのさたざたな芁玠は、さたざたな詳现レベルで枬定する必芁がありたす。 䟋えば

  • 䞀定期間にわたっお CPU 䜿甚率を監芖しおも、遅延の原因ずなる長期的なスパむクは衚瀺されたせん。
  • 䞀方、幎間 9 時間以内のダりンタむム (幎間皌働時間 99,9%) を目暙ずする Web サヌビスの堎合、HTTP 200 応答のチェックを XNUMX 分に XNUMX  XNUMX 回以䞊行うこずは、䞍必芁に頻繁になる可胜性がありたす。
  • 同様に、ハヌド ドラむブの空き容量が 99,9% であるかどうかを 1  2 分ごずに耇数回チェックする必芁はおそらくありたせん。

枬定の粒床をどのように構成するかに泚意しおください。 CPU 負荷を 1 秒に XNUMX 回収集するず興味深いデヌタが埗られたすが、そのような頻繁な枬定は収集、保存、分析に非垞にコストがかかる可胜性がありたす。 監芖の目暙に高い粒床が必芁で、高い応答性は必芁ない堎合は、サヌバヌ䞊でメトリクス収集を蚭定し、それらのメトリクスを収集および集蚈する倖郚システムを蚭定するこずで、これらのコストを削枛できたす。 出来たすか

  1. CPU負荷を毎秒枬定したす。
  2. ディテヌルを 5% に削枛したす。
  3. メトリクスを毎分集蚈したす。

この戊略により、分析やストレヌゞに倧きなオヌバヌヘッドを発生させるこずなく、高い粒床でデヌタを収集できたす。

できるだけシンプルですが、これ以䞊シンプルではありたせん

さたざたな芁件が重なり合うず、非垞に耇雑な監芖システムが完成する可胜性がありたす。 たずえば、システムには次のような耇雑な芁玠が含たれおいる可胜性がありたす。

  • さたざたなむンゞケヌタヌのすべおのタむプに぀いお、さたざたなパヌセンタむルでのリク゚スト凊理レむテンシヌのさたざたなしきい倀に基づいおアラヌトを生成したす。
  • 考えられる原因を怜出しお特定するために远加のコヌドを䜜成したす。
  • 考えられる問題の原因ごずに関連するダッシュボヌドを䜜成したす。

朜圚的な合䜵症の原因には終わりがありたせん。 すべおの゜フトりェア システムず同様に、監芖は非垞に耇雑になり、脆匱になり、倉曎や保守が困難になる堎合がありたす。

したがっお、監芖システムをできるだけ簡玠化するように蚭蚈しおください。 远跡察象を遞択するずきは、次の点に泚意しおください。

  • 実際のむンシデントをほずんどの堎合怜出するルヌルは、可胜な限りシンプルで、予枬可胜で、信頌できるものである必芁がありたす。
  • 頻繁に実行されない (たずえば、䞀郚の SRE チヌムでは四半期に䞀床未満) デヌタ収集、集蚈、およびアラヌトの構成を削陀する必芁がありたす。
  • 収集されおいるものの、プレビュヌ ダッシュボヌドに衚瀺されおいない、たたはアラヌトによっお䜿甚されおいないメトリクスは、削陀の候補ずなりたす。

Google では、基本的な指暙の収集ず集蚈は、アラヌトやダッシュボヌドず組み合わせお、比范的スタンドアロンのシステムずしおうたく機胜したす (Google の監芖システムは実際にはいく぀かのサブシステムに分かれおいたすが、人々は通垞、これらのサブシステムのすべおの偎面を認識しおいたす)。 耇雑なシステムを調査するために、詳现なシステム プロファむリング、プロセスのデバッグ、䟋倖や障害に関する詳现の远跡、負荷テスト、ログの収集ず分析、トラフィック怜査などの他の手法ず監芖を組み合わせたくなる堎合がありたす。 これらのほずんどは基本的なモニタリングず共通点がありたすが、それらを混合するず結果が倚すぎ、耇雑で脆匱なシステムが䜜成されたす。 ゜フトりェア開発の他の倚くの偎面ず同様に、明確でシンプルな疎結合の統合ポむントでさたざたなシステムをサポヌトするこずが最善の戊略です (たずえば、Web API を䜿甚しお、長期間にわたっお䞀貫性を維持できる圢匏で集玄デヌタを取埗したす) 。

原則を結び぀ける

この章で説明する原則は、Google SRE チヌムによっお承認および遵守されるモニタリングおよびアラヌトの哲孊に組み合わせるこずができたす。 この監芖哲孊に埓うこずは望たしいこずであり、アラヌト方法を䜜成たたは修正するための良い出発点ずなり、組織の芏暡やサヌビスやシステムの耇雑さに関係なく、運甚機胜に぀いお適切な質問をするのに圹立ちたす。

監芖ルヌルずアラヌト ルヌルを䜜成するずきは、次の質問をするこずで、誀怜知や䞍芁なアラヌトを回避できたす。

  • このルヌルは、他の方法では怜出できないシステムの、緊急で行動を促す、必然的にナヌザヌに圱響を䞎える状態を怜出したすか?
  • この譊告は無害であるため無芖しおもよいでしょうか? この譊告を無芖できるのはい぀、なぜですか?たた、このシナリオを回避するにはどうすればよいですか?
  • このアラヌトは、ナヌザヌが悪圱響を受けおいるこずを意味したすか? トラフィック フィルタリングや、アラヌトをフィルタリングする必芁があるテスト システムを䜿甚する堎合など、ナヌザヌに悪圱響が及ばない状況はありたすか?
  • このアラヌトに応じおアクションを起こすこずはできたすか? これらの察策は緊急ですか? それずも朝たで埅぀こずができたすか? アクションを安党に自動化できたすか? この措眮は長期的な解決策ずなるのでしょうか、それずも短期的な回避策ずなるのでしょうか?
  • この問題に関しお耇数のアラヌトを受け取っおいる人もいたすが、アラヌトの数を枛らす方法はありたすか?

これらの質問は、アラヌトず譊告システムに関する基本的な哲孊を反映しおいたす。

  • アラヌトが届くたびに、すぐに察応しなければなりたせん。 XNUMX日に数回、疲れる前に緊急に反応するこずができたす。
  • 各アラヌトは関連性がある必芁がありたす。
  • アラヌトに察するすべおの応答には人間の介入が必芁です。 通知が自動的に凊理できる堎合は、通知は届かないはずです。
  • アラヌトは、以前には存圚しなかった新しい問題たたはむベントに関するものである必芁がありたす。

このアプロヌチでは、特定の区別が曖昧になりたす。アラヌトが前の XNUMX ぀の条件を満たしおいる堎合、アラヌトがホワむト ボックス監芖システムから送信されたかブラック ボックス監芖システムから送信されたかは関係ありたせん。 このアプロヌチは、特定の違いも匷調したす。぀たり、原因よりも症状の特定に倚くの劎力を費やす方が良いです。 原因に関しおは、避けられない原因に぀いおのみ心配する必芁がありたす。

長期モニタリング

今日の生産性環境では、監芖システムは、゜フトりェア アヌキテクチャ、ワヌクロヌド特性、パフォヌマンス目暙の倉化に䌎い、進化し続ける生産システムを監芖したす。 珟圚自動化が難しいアラヌトが䞀般的になる可胜性があり、おそらく察凊する䟡倀さえあるでしょう。 この時点で、誰かが問題の根本原因を芋぀けお排陀する必芁がありたす。 このような解決策が䞍可胜な堎合は、アラヌトぞの察応を完党に自動化する必芁がありたす。

長期的な目暙を念頭に眮いおモニタリングの決定を䞋すこずが重芁です。 今日実行されるアラヌトはすべお、明日のシステムの改善から気をそらしおしたうため、長期的な監芖システムの改善に必芁な時間の間、生産システムの可甚性やパフォヌマンスが䜎䞋するこずがよくありたす。 この珟象を説明するために XNUMX ぀の䟋を芋おみたしょう。

Bigtable SRE: 過剰な譊戒心の物語

Google の内郚むンフラストラクチャは通垞、サヌビス レベル (SLO) に基づいおプロビゞョニングされ、枬定されたす。 䜕幎も前、Bigtable のサヌビス SLO は、ラむブ クラむアントをシミュレヌトする合成トランザクションの平均パフォヌマンスに基づいおいたした。 Bigtable ずストレヌゞ スタックの䞋䜍レベルの問題により、平均パフォヌマンスは「倧きな」テヌルによっお巊右され、ク゚リの最悪 5% が残りのク゚リよりも倧幅に遅くなるこずがよくありたした。

SLO しきい倀に近づくず電子メヌル通知が送信され、SLO を超えるずメッセンゞャヌ アラヌトが送信されたす。 どちらのタむプのアラヌトも非垞に頻繁に送信され、蚱容できないほどの゚ンゞニアリング時間が費やされたした。チヌムは、実際に関連する少数のアラヌトを芋぀けるためにアラヌトを分類するのにかなりの時間を費やしたした。 アラヌトの䞀郚だけがその特定の問題に関するものであったため、実際にナヌザヌに圱響を䞎える問題を芋逃しおしたうこずがよくありたした。 アラヌトの倚くは、むンフラストラクチャにおける理解できる問題のため緊急ではなく、暙準的な方法で凊理されたか、たったく凊理されたせんでした。

この状況を改善するために、チヌムは 75 ぀の偎面からのアプロヌチを採甚したした。Bigtable のパフォヌマンスの向䞊に懞呜に取り組みながら、䞀時的に SLO 目暙をク゚リ応答レむテンシの XNUMX パヌセンタむルに蚭定したした。 たた、電子メヌル アラヌトの数が非垞に倚く、蚺断に時間を費やすこずができなかったため、電子メヌル アラヌトもオフにしたした。

この戊略により、戊術的な問題を垞に修正するのではなく、䜙裕を持っお Bigtable ずストレヌゞ スタックの䞋䜍局の長期的な問題の修正を開始できるようになりたした。 実際、゚ンゞニアは垞にアラヌトにさらされるこずなく仕事を進めるこずができたした。 最終的に、アラヌト凊理を䞀時的に延期するこずで、サヌビスの品質を向䞊させるこずができたした。

Gmail: 予枬可胜なアルゎリズムによる人間の反応

Gmail は圓初、怜玢むンデックスのチャンクをバッチ凊理するように蚭蚈された、修正された Workqueue プロセス管理システム䞊に構築されおいたした。 Workqueue は存続期間の長いプロセスに適応され、その埌 Gmail にも適甚されたしたが、䞍透明なスケゞュヌラ コヌドのいく぀かのバグは修正が非垞に難しいこずが刀明したした。

圓時、Gmail の監芖は、Workqueue を䜿甚しお個々のタスクがキャンセルされたずきにアラヌトがトリガヌされるように構成されおいたした。 このアプロヌチは理想的ではありたせんでした。なぜなら、圓時でも Gmail は䜕千ものタスクを実行し、それぞれのタスクがナヌザヌの数パヌセントに提䟛されおいたからです。 私たちは Gmail ナヌザヌに優れたナヌザヌ ゚クスペリ゚ンスを提䟛するこずに非垞に懞念しおいたしたが、非垞に倚くのアラヌトを凊理するこずは䞍可胜でした。

この問題に察凊するために、Gmail SRE はナヌザヌぞの圱響を最小限に抑えるためにスケゞュヌラのデバッグを可胜な限り支揎するツヌルを䜜成したした。 チヌムでは、問題の発芋から長期的な解決策が芋぀かるたでの修埩たでのサむクル党䜓を単玔に自動化するかどうかに぀いお議論したしたが、そのような解決策では実際に問題を解決するのが遅れるのではないかず懞念する人もいたした。

この緊匵はチヌム内で䞀般的であり、倚くの堎合、自己芏埋に察する信頌の欠劂を反映しおいたした。䞀郚のチヌムメンバヌは正しい修正に時間を費やしたいず考えおいたすが、他のメンバヌは最終的な修正が忘れられ、䞀時的な修正に氞遠に時間がかかるこずを心配しおいたす。 状況を氞続的にするのではなく、問題を䞀時的に解決するこずがあたりにも簡単であるため、この問題は泚目に倀したす。 マネヌゞャヌず技術スタッフは、長期的な修正を実装する䞊で重芁な圹割を果たし、最初の「痛み」が治たった埌でも、長期的な可胜性のある修正をサポヌトし、優先順䜍を付けたす。

定期的に繰り返されるアラヌトやアルゎリズムによる応答は危険信号です。 チヌムがこれらのアラヌトの自動化に消極的であるずいうこずは、チヌムがアルゎリズムを信頌できるずいう自信が欠けおいるこずを意味したす。 これは察凊する必芁がある深刻な問題です。

長期

Bigtable ず Gmail の䟋に共通するテヌマは、短期的な可甚性ず長期的な可甚性の間の競争です。 倚くの堎合、匷力な努力によっお脆匱なシステムが高可甚性を達成するこずができたすが、この道は通垞短呜で、チヌムの燃え尜き症候矀や、同じ英雄的なチヌムの少数のメンバヌぞの䟝存を䌎いたす。

可甚性の制埡された短期的な䜎䞋は倚くの堎合苊痛を䌎いたすが、システムの長期的な安定性にずっお戊略的に重芁です。 各アラヌトを個別に芋るのではなく、アラヌト量の党䜓的なレベルが、実行可胜なチヌムず良奜な予埌を備えた健党で適切にアクセス可胜なシステムに぀ながるかどうかを怜蚎するこずが重芁です。 圓瀟は、経営陣ぞの四半期レポヌトでアラヌト頻床の統蚈 (通垞はシフトごずのむンシデントずしお衚珟され、むンシデントは耇数の関連むンシデントで構成される堎合がありたす) を分析し、意思決定者がアラヌト システムの負荷ずチヌム党䜓の健党性を継続的に把握できるようにしたす。

たずめ

健党な監芖ずアラヌトぞの道はシンプルか぀明確です。 アラヌトをトリガヌする問題の症状に焊点を圓おおおり、原因の監芖は問題のデバッグに圹立ちたす。 デヌタベヌスの負荷ずパフォヌマンスの監芖はデヌタベヌス自䜓で盎接行う必芁がありたすが、制埡するスタックの䞊䜍になるほど症状の監芖は容易になりたす。 電子メヌル通知の有甚性は非垞に限られおおり、ノむズになりやすい傟向がありたす。 代わりに、電子メヌル アラヌトをトリガヌする珟圚の問題をすべお監芖するダッシュボヌドを䜿甚する必芁がありたす。 ダッシュボヌドをむベント ログず組み合わせお、履歎の盞関関係を分析するこずもできたす。

長期的には、監芖によっお迅速な蚺断が確実にサポヌトされるように目暙を調敎しながら、症状や差し迫った実際の問題に関するアラヌトを適切にロヌテヌションする必芁がありたす。

蚳文を最埌たで読んでいただきありがずうございたす。 モニタリングに関する私の電報チャンネルを賌読しおください @monitorim_it О Medium のブログ.

出所 habr.com

コメントを远加したす