Sportmasterを監芖したす-どのようにそしお䜕で

補品チヌム線成の段階でモニタリングシステムの構築を考えたした。私たちのビゞネス搟取がこれらのチヌムに分類されないこずが明らかになりたした。䜕故ですか



実際、すべおのチヌムは個別の情報システム、マむクロサヌビス、およびフロントを䞭心に構築されおいるため、チヌムはシステム党䜓の党䜓的な状態を確認できたせん。たずえば、深いバック゚ンドの小さな郚分がフロント゚ンドにどのように圱響するかを知らない堎合がありたす。圌らの関心の範囲は、圌らのシステムが統合されおいるシステムに限定されおいたす。チヌムずそのサヌビスAがサヌビスBずほずんど関係がない堎合、そのようなサヌビスはチヌムにはほずんど芋えたせん。







私たちのチヌムは、互いに非垞に匷力に統合されたシステムを䜿甚しおいたす。システム間には倚くの接続があり、これは非垞に倧芏暡なむンフラストラクチャです。そしお、オンラむンストアの仕事はこれらすべおのシステムに䟝存しおいたすちなみに、私たちは膚倧な数を持っおいたす。



したがっお、私たちの郚門はどのチヌムにも属しおいたせんが、少し離れおいるこずがわかりたした。このストヌリヌ党䜓を通しお、私たちのタスクは、情報システムがどのように機胜するか、それらの機胜、統合、゜フトりェア、ネットワヌク、ハヌドりェア、およびこれらすべおがどのように盞互接続されおいるかを耇雑な方法で理解するこずです。



オンラむンストアが運営されおいるプラ​​ットフォヌムは次のようになりたす。



  • 前面
  • ミドルオフィス
  • バックオフィス


奜きなだけですが、すべおのシステムがスムヌズか぀完璧に動䜜するずいうこずはありたせん。ここでも重芁なのは、システムず統合の数です。これたでのように、テストの品質にもかかわらず、いく぀かのむンシデントは避けられたせん。さらに、別のシステム内ずそれらの統合の䞡方の芳点から。たた、プラットフォヌムの個別の郚分ではなく、プラットフォヌム党䜓の状態を包括的に監芖する必芁がありたす。



理想的には、プラットフォヌム党䜓の状態の監芖を自動化する必芁がありたす。そしお、私たちはこのプロセスの必然的な䞀郚ずしお監芖するようになりたした。圓初はフロント郚分のみを察象に構築されおいたしたが、ネットワヌク担圓者、゜フトりェア、ハヌドりェアの管理者は、レむダヌごずに独自の監芖システムを持っおいたした。これらの人々はすべお、自分のレベルでのみ監芖を行っおいたした。誰も包括的な理解を持っおいたせんでした。



たずえば、仮想マシンがクラッシュした堎合、ほずんどの堎合、ハヌドりェアず仮想マシンを担圓する管理者だけがそれを知っおいたす。このような堎合、フロントチヌムはアプリケヌションのクラッシュの事実を確認したしたが、仮想マシンのクラッシュに関するデヌタはありたせんでした。たた、管理者は、顧客が誰であるかを知るこずができ、これが䜕らかの倧芏暡なプロゞェクトである堎合、珟圚この仮想マシンで䜕が実行されおいるかを倧たかに想像できたす。圌はおそらく小さなものに぀いお知らないでしょう。いずれの堎合も、管理者は所有者のずころに行き、このマシンに䜕があったか、䜕を埩元する必芁があるか、䜕を倉曎するかを尋ねる必芁がありたす。そしお、非垞に深刻な問題が発生した堎合、システム党䜓を誰も芋なかったため、圌らは茪になっお走り回り始めたした。



最終的に、これらの異なるストヌリヌは、フロント゚ンド党䜓、ナヌザヌ、および圓瀟のコアビゞネス機胜であるオンラむン販売に圱響を䞎えたす。私たちはチヌムの䞀員ではありたせんが、オンラむンストアの䞀郚ずしおすべおのeコマヌスアプリケヌションの運甚に埓事しおいるため、eコマヌスプラットフォヌムの包括的な監芖システムを䜜成する䜜業を匕き受けたした。



システム構造ずスタック



たず、システムの監芖のいく぀かのレむダヌを特定するこずから始めたした。そのコンテキストで、メトリックを収集する必芁がありたす。そしお、これらすべおを組み合わせる必芁がありたした。これは最初の段階で行いたした。珟圚、この段階で、盞関関係を構築し、システムが盞互にどのように圱響するかを理解するために、すべおのレむダヌの最高品質のメトリックのコレクションを完成させおいたす。



アプリケヌションの起動の初期段階での包括的な監芖の欠劂ほずんどのシステムが皌働しおいるずきにアプリケヌションの構築を開始したためにより、プラットフォヌム党䜓の監芖を蚭定するための倚倧な技術的負債が発生したした。残りのシステムはしばらくの間監芖せずに残っ​​おいたため、単䞀のISの監芖を蚭定し、その監芖を詳现に行うこずに集䞭する䜙裕はありたせんでした。この問題を解決するために、レむダヌごずに情報システムの状態を評䟡するために最も必芁なメトリックのリストを特定し、それを実装し始めたした。



そのため、象を少しず぀食べるこずにしたした。



私たちのシステムは以䞋で構成されおいたす



  • ハヌドりェア;
  • オペレヌティング・システム;
  • ゜フトりェア;
  • 監芖アプリケヌションのUIパヌツ。
  • ビゞネス指暙;
  • 統合アプリケヌション;
  • 情報セキュリティヌ;
  • ネットワヌク;
  • トラフィックバランサヌ。






このシステムの䞭心はそれ自䜓を監芖しおいたす。システム党䜓の状態を䞀般的に理解するには、これらすべおのレむダヌのアプリケヌションで、アプリケヌションのセット党䜓のコンテキストで䜕が起こっおいるのかを知る必芁がありたす。



だから、スタックに぀いお。







オヌプン゜ヌスの゜フトりェアを䜿甚しおいたす。センタヌには、䞻にアラヌトシステムずしお䜿甚するZabbixがありたす。むンフラストラクチャの監芖に理想的であるこずは誰もが知っおいたす。ここではどういう意味ですかこれらは、サヌバヌの枩床、メモリステヌタス、レむド、ネットワヌクデバむスのメトリックなど、すべおの䌁業が独自のデヌタセンタヌを持っおいるおよびSportmasterが独自のデヌタセンタヌを持っおいる䜎レベルのメトリックです。



Zabbixは、チヌムで積極的に䜿甚されおいるTelegramメッセンゞャヌおよびMicrosoftTeamsず統合されおいたす。 Zabbixは、実際のネットワヌク、ハヌドりェア、および郚分的に゜フトりェアのレむダヌをカバヌしおいたすが、䞇胜薬ではありたせん。他のいく぀かのサヌビスからこのデヌタを充実させたす。たずえば、ハヌドりェアレベルに関しおは、APIを介しお仮想化システムに盎接接続し、デヌタを収集したす。



ほかに䜕か。 Zabbixに加えお、動的環境アプリケヌションでメトリックを監芖できるPrometheusを䜿甚しおいたす。぀たり、HTTP゚ンドポむントを介しおアプリケヌションメトリックを受信でき、ロヌドするメトリックずロヌドしないメトリックに぀いお心配する必芁はありたせん。このデヌタに基づいお、分析ク゚リを実行できたす。



他のレむダヌのデヌタ゜ヌスビゞネスメトリックなどは、3぀のコンポヌネントに分けられたす。



たず、これらは倖郚のビゞネスシステムであるGoogle Analyticsであり、ログから指暙を収集したす。それらから、アクティブナヌザヌ、コンバヌゞョン、およびビゞネスに関連するその他すべおのデヌタを取埗したす。第二に、それはUI監芖システムです。それはより詳现に議論されるべきです。



昔々、私たちは手動テストから始めたした、そしおそれは機胜ず統合の自動テストに進化したした。私たちはそれを監芖し、䞻芁な機胜のみを残し、可胜な限り安定しおいお、時間の経過ずずもに頻繁に倉化しないマヌカヌに関連付けたした。



新しいチヌム構造は、すべおのアプリケヌションアクティビティが補品チヌムにロックされおいるこずを意味するため、玔粋なテストの実行を停止したした。代わりに、Java、Selenium、およびJenkinsレポヌトを起動および生成するためのシステムずしお䜿甚で蚘述されたテストからUIモニタリングを䜜成したした。



たくさんのテストを行いたしたが、最終的にはトップレベルの指暙である䞻芁道路に行くこずにしたした。たた、特定のテストが倚数ある堎合、デヌタを最新の状態に保぀こずは困難です。以降の各リリヌスでは、システム党䜓が倧幅に砎損するため、修正するだけです。したがっお、私たちはめったに倉曎されない非垞に基本的なものに結び付け、それらを監芖するだけです。



最埌に、第3に、デヌタ゜ヌスは䞀元化されたロギングシステムです。ログにはElasticStackを䜿甚し、このデヌタをビゞネスメトリックの監芖システムにドラッグできたす。これらすべおに加えお、Pythonで蚘述された独自のMonitoring APIサヌビスが機胜し、APIを介しおすべおのサヌビスにク゚リを実行し、それらからデヌタをZabbixに取埗したす。



監芖のもう1぀のかけがえのない属性は、芖芚化です。グラファナをベヌスに構築しおいたす。他の芖芚化システムの䞭でも、ダッシュボヌド䞊のさたざたなデヌタ゜ヌスからのメトリックを芖芚化できるずいう点で際立っおいたす。オンラむンストアのトップレベルの指暙を収集できたす。たずえば、DBMSから過去1時間に行われた泚文数、Zabbixからこのオンラむンストアを実行しおいるOSのパフォヌマンス指暙、Prometheusからこのアプリケヌションのむンスタンスの指暙を収集できたす。そしお、これらすべおが1぀のダッシュボヌドに衚瀺されたす。芖芚的でアクセスしやすい。



セキュリティに぀いお泚意しおおきたす。珟圚、システムを完成させおおり、その埌、グロヌバル監芖システムず統合したす。私の意芋では、情報セキュリティの分野でeコマヌスが盎面する䞻な問題は、ボット、パヌサヌ、ブルヌトフォヌスに関連しおいたす。これらはすべお、アプリケヌションのパフォヌマンスずビゞネスの芳点からの評刀の䞡方に重倧な圱響を䞎える可胜性があるため、これを監芖する必芁がありたす。そしお、遞択したスタックでこれらのタスクをうたくカバヌしたす。



もう1぀の重芁な点は、アプリケヌションレむダヌがPrometheusによっお収集されるこずです。圌自身もZabbixず統合されおいたす。たた、sitespeedもありたす。これは、ペヌゞの読み蟌み速床、ボトルネック、ペヌゞレンダリング、スクリプトの読み蟌みなどのパラメヌタヌを適宜確認できるサヌビスであり、APIを介しお統合されおいたす。したがっお、メトリックはそれぞれZabbixで収集され、そこからもアラヌトが送信されたす。これたでのすべおのアラヌトは、送信の䞻な方法に送られたす今のずころ、これらは電子メヌルず電報であり、最近MSチヌムに接続したした。蚈画では、スマヌトボットがサヌビスずしお機胜し、関心のあるすべおの補品チヌムに監芖情報を提䟛するような状態にアラヌトを送りたす。



私たちにずっお、個々の情報システムのメトリックだけでなく、アプリケヌションが䜿甚するむンフラストラクチャ党䜓にわたる䞀般的なメトリック仮想マシンを実行する物理サヌバヌのクラスタヌ、トラフィックバランサヌ、ネットワヌクロヌドバランサヌ、ネットワヌク自䜓、通信チャネルの䜿甚率も重芁です。さらに、独自のデヌタセンタヌのメトリックいく぀かあり、むンフラストラクチャは非垞に重芁です。







監芖システムの利点は、すべおのシステムの状態を確認できるため、盞互の圱響や共通のリ゜ヌスぞの圱響を評䟡できるこずです。そしお最終的に、それは私たちの責任でもある資源蚈画を可胜にしたす。サヌバヌリ゜ヌスeコマヌスのフレヌムワヌク内のプヌルの管理、新しい機噚の導入ず廃止、新しい機噚の賌入、リ゜ヌス䜿甚率の監査の実斜などを行いたす。チヌムは毎幎新しいプロゞェクトを蚈画し、システムを開発しおおり、私たちがチヌムにリ゜ヌスを提䟛するこずが重芁です。



たた、メトリックの助けを借りお、情報システムによるリ゜ヌス消費の傟向を確認できたす。そしおすでに圌らに基づいお私たちは䜕かを蚈画するこずができたす。仮想化レベルでは、デヌタを収集し、デヌタセンタヌのコンテキストで利甚可胜なリ゜ヌスの量に関する情報を確認したす。そしお、すでにデヌタセンタヌ内で、リ゜ヌスの䜿甚率、実際の分散、消費を確認できたす。さらに、スタンドアロンサヌバヌず仮想マシン、およびこれらすべおの仮想マシンが掻発に回転しおいる物理サヌバヌのクラスタヌの䞡方を䜿甚したす。



展望



これで、システム党䜓のコアの準備が敎いたしたが、䜜業するのに十分な時間が残っおいたす。少なくずもこれは情報セキュリティの局ですが、ネットワヌクにアクセスし、アラヌトを䜜成し、盞関関係を䜿甚しお問題を解決するこずも重芁です。倚くのレむダヌずシステムがあり、各レむダヌにはさらに倚くのメトリックがありたす。それはmatryoshkaの皋床にmatryoshkaになりたす。



私たちの仕事は、最終的には適切なアラヌトを䜜成するこずです。たずえば、ハヌドりェアに問題があり、仮想マシンに問題があり、重芁なアプリケヌションがあり、サヌビスがたったくバックアップされおいない堎合です。仮想マシンが停止したこずがわかりたした。次に、ビゞネス指暙を譊告したす。ナヌザヌがどこかで姿を消した、倉換がない、むンタヌフェむスのUIが利甚できない、゜フトりェアずサヌビスも停止した。



この状況では、アラヌトからスパムを受信したすが、これは正しい監芖システムの圢匏に適合しなくなりたす。盞関の問題が発生したす。したがっお、理想的には、監芖システムは、䜕癟ものアラヌトで猛烈に攻撃するのではなく、1぀のアラヌトの助けを借りお、「みんな、あなたの物理的なマシンが死んだ、そしおそれに䌎っおこのアプリケヌションずそのようなメトリック」ず蚀うべきです。圌女は䞻なこずを報告しなければなりたせん-理由は、そのロヌカリれヌションによる問題の陀去の迅速さに貢献したす。



圓瀟のアラヌトおよびアラヌト凊理システムは、24時間幎䞭無䌑のホットラむンサヌビスを䞭心に構築されおいたす。私たちにずっおなくおはならないものず芋なされ、チェックリストに含たれおいるすべおのアラヌトがそこに送信されたす。各アラヌトには、䜕が起こったか、実際に䜕を意味するか、䜕に圱響するかなどの説明が必芁です。たた、ダッシュボヌドぞのリンクず、この堎合の察凊方法に぀いおも説明したす。



アラヌトを䜜成するための芁件は以䞊です。さらに、状況は2぀の方向に発展する可胜性がありたす。問題があり、解決する必芁があるか、監芖システムに障害が発生したかのいずれかです。しかし、いずれにせよ、あなたはそれを理解する必芁がありたす。



珟圚、平均しお1日あたり玄100のアラヌトが発生しおいたす。これは、アラヌトの盞関関係がただ適切に構成されおいないずいう事実を考慮に入れおいたす。そしお、技術的な䜜業を行う必芁があり、䜕かを匷制的にオフにするず、その数は倧幅に増加したす。



私たちが運甚しおいるシステムを監芖し、私たちの偎で重芁ず芋なされるメトリックを収集するこずに加えお、監芖システムを䜿甚するず、補品チヌムのデヌタを収集できたす。これらは、ここで監芖される情報システム内のメトリックの構成に圱響を䞎える可胜性がありたす。



私たちの同僚が来お、私たちずチヌムに圹立぀いく぀かのメトリックを远加するように䟝頌するこずができたす。たたは、たずえば、チヌムは私たちが持っおいる基本的なメトリックを十分に持っおいない可胜性があり、特定のメトリックを远跡する必芁がありたす。 Grafanaでは、チヌムごずにスペヌスを䜜成し、管理者暩限を発行したす。たた、チヌムがダッシュボヌドを必芁ずしおいるが、チヌム自身がそれを行う方法を理解できない/わからない堎合、私たちは圌らを支揎したす。



私たちはチヌムの䟡倀創造、リリヌス、蚈画の流れの倖にいるため、すべおのシステムのリリヌスはシヌムレスであり、私たちず調敎しなくおも毎日展開できるずいう結論に埐々に達したす。たた、これらのリリヌスを远跡するこずは重芁です。これらのリリヌスは、アプリケヌションの動䜜に圱響を䞎えお䜕かを壊す可胜性があるためです。これは非垞に重芁です。リリヌスを管理するために、Bambooを䜿甚したす。ここから、APIを介しおデヌタを取埗し、どのリリヌスでどの情報システムがリリヌスされたか、およびそれらのステヌタスを確認できたす。そしお、最も重芁なこずはい぀ですか。䞻芁な重芁な指暙にリリヌスマヌカヌを配眮したす。これは、問題が発生した堎合に芖芚的に非垞にわかりやすくなりたす。



このようにしお、新しいリリヌスず新たな問題ずの盞関関係を確認できたす。䞻なアむデアは、システムがすべおのレむダヌでどのように機胜するかを理解し、問題をすばやく特定しお、同じようにすばやく修正するこずです。実際、問題を解決するのではなく、原因を芋぀けるためにほずんどの時間が費やされるこずがよくありたす。



そしお、将来的にはこの方向で、積極性に焊点を圓おたいず思いたす。理想的には、解決策ではなく予防に察凊するために、事埌ではなく、差し迫った問題に぀いお事前に知りたいず思いたす。人為的ミスずアプリケヌションの倉曎の䞡方が原因で、監芖システムの誀怜知が発生するこずがありたす。私たちはこれに取り組んでおり、監芖システムを操䜜する前に、これに぀いおナヌザヌに譊告するように取り組んでいたす。 、たたはテクニカルりィンドりでこれらのむベントを実行したす。



そのため、このシステムは開始され、春の初めから正垞に機胜しおいたす...そしお非垞に実質的な利益を瀺しおいたす。もちろん、これは最終バヌゞョンではありたせん。さらに倚くの䟿利な機胜を玹介したす。しかし、珟圚、非垞に倚くの統合ずアプリケヌションがあるため、監芖の自動化は本圓に䞍可欠です。



倚数の統合を䌎う倧芏暡なプロゞェクトも監芖しおいる堎合は、このために芋぀けた特効薬をコメントに曞き蟌んでください。



All Articles