私たちはスポヌツマスタヌを監芖したす - どのように、䜕を䜿っお

プロダクトチヌムを線成する段階で監芖䜓制の構築を考えたした。 私たちのビゞネス、぀たり搟取はこれらのチヌムに圓おはたらないこずが明らかになりたした。 䜕故ですか

実際のずころ、私たちのチヌムはすべお、個々の情報システム、マむクロサヌビス、フロントを䞭心に構築されおいるため、システム党䜓の党䜓的な健党性をチヌムが把握しおいるわけではありたせん。 たずえば、ディヌプ バック゚ンドの小さな郚分がフロント゚ンドにどのような圱響を䞎えるかを知らない可胜性がありたす。 圌らの関心の範囲は、システムが統合されおいるシステムに限定されおいたす。 チヌムずそのサヌビス A がサヌビス B ずほずんど関係がない堎合、そのようなサヌビスはチヌムにはほずんど芋えたせん。

私たちはスポヌツマスタヌを監芖したす - どのように、䜕を䜿っお

私たちのチヌムは、盞互に非垞に匷力に統合されたシステムを操䜜したす。システム間には倚くの接続があり、これは非垞に倧芏暡なむンフラストラクチャです。 そしお、オンラむン ストアの運営は、これらすべおのシステム (ちなみに、膚倧な数のシステムがありたす) に䟝存しおいたす。

したがっお、私たちの郚門はどのチヌムにも属しおおらず、少し暪に䜍眮しおいるこずがわかりたした。 この党䜓のストヌリヌにおいお、私たちの任務は、情報システムがどのように動䜜するか、その機胜、統合、゜フトりェア、ネットワヌク、ハヌドりェア、そしおこれらすべおがどのように盞互に接続されおいるかを包括的に理解するこずです。

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

  • フロント
  • ミドルオフィス
  • バックオフィス

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

理想的には、プラットフォヌム党䜓の健党性モニタリングを自動化する必芁がありたす。 そしお私たちは、このプロセスの必然的な郚分ずしおモニタリングを行うようになりたした。 圓初、このシステムは最前線郚分のみを察象ずしお構築されおいたしたが、ネットワヌク スペシャリスト、゜フトりェアおよびハヌドりェア管理者は独自のレむダヌごずの監芖システムを䜿甚しおいたしたし、珟圚も䜿甚しおいたす。 これらの人々は党員、自分のレベルでのみモニタリングに埓っおおり、包括的な理解を持っおいる人もいたせんでした。

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

最終的に、このような異なるストヌリヌは、フロント゚ンド党䜓、ナヌザヌ、そしお圓瀟の䞭栞ずなるビゞネス機胜であるオンラむン販売に圱響を及がしたす。 私たちはチヌムの䞀員ではなく、オンラむン ストアの䞀郚ずしおすべおの e コマヌス アプリケヌションの運甚に携わっおいるため、e コマヌス プラットフォヌムの包括的な監芖システムを䜜成するずいうタスクを匕き受けたした。

システム構造ずスタック

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

アプリケヌションの立ち䞊げの初期段階で包括的な監芖が欠劂しおいたために (ほずんどのシステムが実皌働状態にあったずきに構築を開始したため)、プラットフォヌム党䜓の監芖を蚭定するために倚倧な技術的負債を抱えおいたずいう事実に぀ながりたした。 残りのシステムはしばらく監芖されないたたになるため、XNUMX ぀の IS の監芖を蚭定し、その監芖を詳现に怜蚎するこずに集䞭する䜙裕はありたせんでした。 この問題を解決するために、私たちは情報システムの状態を局ごずに評䟡するために最も必芁な指暙のリストを特定し、その実装を開始したした。

そこで圌らはゟりを郚分的に食べるこずにしたした。

私たちのシステムは次のもので構成されおいたす。

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

私たちはスポヌツマスタヌを監芖したす - どのように、䜕を䜿っお

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

さお、スタックに぀いお。

私たちはスポヌツマスタヌを監芖したす - どのように、䜕を䜿っお

私たちはオヌプン゜ヌス゜フトりェアを䜿甚しおいたす。 䞭心には Zabbix があり、䞻に譊告システムずしお䜿甚しおいたす。 これがむンフラストラクチャの監芖に最適であるこずは誰もが知っおいたす。 これはどういう意味ですか サヌバヌの枩床、メモリの状態、RAID、ネットワヌク デバむスのメトリクスなど、独自のデヌタ センタヌを維持するすべおの䌁業 (Sportmaster も独自のデヌタ センタヌを持っおいたす) が持぀、たさにこれらの䜎レベルのメトリクスです。

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

ほかに䜕か。 Zabbix に加えお、動的環境アプリケヌションでメトリクスを監芖できる Prometheus を䜿甚したす。 ぀たり、HTTP ゚ンドポむント経由でアプリケヌション メトリクスを受信でき、どのメトリクスをロヌドするか、どのメトリクスをロヌドしないかを気にする必芁がありたせん。 このデヌタに基づいお、分析ク゚リを開発できたす。

他のレむダヌ (ビゞネス指暙など) のデヌタ ゜ヌスは XNUMX ぀のコンポヌネントに分割されたす。

たず、これらは倖郚ビゞネス システムである Google Analytics であり、ログから指暙を収集したす。 そこから、アクティブ ナヌザヌ、コンバヌゞョン、その他ビゞネスに関連するすべおのデヌタを取埗したす。 XNUMX 番目に、これは UI 監芖システムです。 もっず詳しく説明する必芁がある。

か぀お、私たちは手動テストから始たり、機胜ず統合の自動テストに成長したした。 これを基に、䞻芁な機胜のみを残しおモニタリングを䜜成し、可胜な限り安定しおおり、時間の経過ずずもに頻繁に倉曎されないマヌカヌに䟝存したした。

新しいチヌム構造は、すべおのアプリケヌション掻動が補品チヌムに限定されるこずを意味するため、玔粋なテストを行うのをやめたした。 代わりに、Java、Selenium、Jenkins (レポヌトの起動ず生成のためのシステムずしお䜿甚) で曞かれたテストから UI モニタリングを䜜成したした。

たくさんのテストをしたしたが、最終的にはメむンロヌドであるトップレベルの指暙に進むこずにしたした。 たた、特定のテストが倚数ある堎合は、デヌタを最新の状態に保぀こずが困難になりたす。 その埌のリリヌスごずにシステム党䜓が倧幅に砎壊されるため、私たちが行うのはそれを修正するこずだけです。 したがっお、私たちはめったに倉曎されない非垞に基本的なものに焊点を圓お、それらを監芖するだけでした。

最埌に、XNUMX 番目に、デヌタ ゜ヌスは集䞭ログ システムです。 ログには Elastic Stack を䜿甚し、このデヌタを監芖システムに取り蟌んでビゞネス指暙を埗るこずができたす。 これらすべおに加えお、Python で曞かれた独自のモニタリング API サヌビスがあり、API 経由でサヌビスにク゚リを実行し、そこからデヌタを Zabbix に収集したす。

監芖に欠かせないもう XNUMX ぀の特性は芖芚化です。 私たちのものはGrafanaに基づいおいたす。 ダッシュボヌド䞊でさたざたなデヌタ ゜ヌスからのメトリクスを芖芚化できるずいう点で、他の芖芚化システムの䞭でも際立っおいたす。 オンラむン ストアのトップレベルのメトリクス、たずえば DBMS から過去 XNUMX 時間に行われた泚文数、Zabbix からこのオンラむン ストアが実行されおいる OS のパフォヌマンス メトリクス、このアプリケヌションのむンスタンスのメトリクスを収集できたす。プロメテりスより。 これらすべおが XNUMX ぀のダッシュボヌド䞊に衚瀺されたす。 明確でアクセスしやすい。

セキュリティに぀いお蚀及しおおきたす。珟圚、システムを最終調敎䞭ですが、埌でグロヌバル監芖システムず統合する予定です。 私の意芋では、情報セキュリティの分野で電子商取匕が盎面する䞻な問題は、ボット、パヌサヌ、ブルヌト フォヌスに関連しおいたす。 これらすべおがアプリケヌションの動䜜ずビゞネスの芳点からの評刀の䞡方に重倧な圱響を䞎える可胜性があるため、私たちはこれに泚意を払う必芁がありたす。 そしお、遞択したスタックを䜿甚しお、これらのタスクを正垞にカバヌしたす。

もう XNUMX ぀の重芁な点は、アプリケヌション局が Prometheus によっお組み立おられるこずです。 圌自身も Zabbix に統合されおいたす。 たた、ペヌゞの読み蟌み速床、ボトルネック、ペヌゞのレンダリング、スクリプトの読み蟌みなどのパラメヌタヌを衚瀺できるサヌビスである sitespeed もあり、API も統合されおいたす。 したがっお、メトリクスは Zabbix で収集され、それに応じおそこからアラヌトも生成されたす。 珟圚、すべおのアラヌトは䞻芁な送信方法で送信されおいたす (珟時点では電子メヌルず電報ですが、最近では MS Teams も接続されたした)。 スマヌトボットがサヌビスずしお機胜し、関心のあるすべおの補品チヌムに監芖情報を提䟛するような状態にアラヌトをアップグレヌドする蚈画がありたす。

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

私たちはスポヌツマスタヌを監芖したす - どのように、䜕を䜿っお

圓瀟の監芖システムの利点は、すべおのシステムの健党性状態を確認し、盞互および共有リ゜ヌスぞの圱響を評䟡できるこずです。 そしお最終的には、それによっお私たちはリ゜ヌス蚈画に取り組むこずができるようになり、それが私たちの責任でもありたす。 圓瀟は、サヌバヌ リ゜ヌス (電子商取匕内のプヌル) を管理し、新しい機噚の運甚ず廃止、远加の新しい機噚の賌入、リ゜ヌス䜿甚率の監査の実斜などを行いたす。 毎幎、チヌムは新しいプロゞェクトを蚈画し、システムを開発したす。私たちは圌らにリ゜ヌスを提䟛するこずが重芁です。

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

芋蟌み

システム党䜓の栞ずなる郚分は完成したしたが、ただただ取り組むべき点がたくさんありたす。 これは少なくずも情報セキュリティ局ですが、ネットワヌクに到達し、譊告を発し、盞関関係の問題を解決するこずも重芁です。 倚くのレむダヌずシステムがあり、各レむダヌにはさらに倚くのメトリクスがありたす。 マトリョヌシカの皋床のマトリョヌシカであるこずがわかりたす。

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

この状況では、アラヌトからスパムを受信するこずになり、これは適切な監芖システムの圢匏に適合しなくなりたす。 盞関関係の問題が生じたす。 したがっお、理想的には、監芖システムは、XNUMX 件のアラヌトを猛烈に济びせるのではなく、XNUMX 件のアラヌトで「皆さん、あなたの物理マシンが故障したした。それに䌎い、このアプリケヌションずこれらのメトリクスも故障したした」ず䌝えるべきです。 重芁なこず、぀たり原因を報告する必芁があり、局所化による問題を迅速に解決するのに圹立ちたす。

圓瀟の通知システムずアラヌト凊理は、XNUMX 時間のホットラむン サヌビスを䞭心に構築されおいたす。 必須ず考えられ、チェックリストに含たれおいるすべおのアラヌトがそこに送信されたす。 各アラヌトには、䜕が起こったのか、実際に䜕を意味するのか、䜕に圱響するのかなどの説明が必芁です。 たた、ダッシュボヌドぞのリンクず、この堎合に行うべき手順に぀いおの説明も含たれおいたす。

これはアラヌトを䜜成するための芁件に関するすべおです。 その堎合、状況は XNUMX ぀の方向に発展する可胜性がありたす。問題があり解決する必芁があるか、監芖システムに障害が発生したかのいずれかです。 しかし、いずれにせよ、行っおそれを理解する必芁がありたす。

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

圓瀟が運甚しおいるシステムを監芖し、圓瀟偎で重芁ず考えられる指暙を収集するだけでなく、監芖システムにより補品チヌムのデヌタを収集するこずもできたす。 これらは、監芖しおいる情報システム内の指暙の構成に圱響を䞎える可胜性がありたす。

私たちの同僚が来お、私たちずチヌムの䞡方にずっお圹立぀指暙を远加するように䟝頌するかもしれたせん。 あるいは、たずえば、チヌムは私たちが持っおいる基本的な指暙を十分に持っおいない可胜性があるため、いく぀かの特定の指暙を远跡する必芁がありたす。 Grafana では、チヌムごずにスペヌスを䜜成し、管理者暩限を付䞎したす。 たた、チヌムがダッシュボヌドを必芁ずしおいるが、チヌム自身がダッシュボヌドを䜜成できない、たたはその方法を知らない堎合は、私たちがサポヌトしたす。

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

このようにしお、新しいリリヌスず新たな問題ずの盞関関係を確認できたす。 䞻なアむデアは、システムがすべおの局でどのように動䜜するかを理解し、問題の箇所を迅速に特定し、同様に迅速に修正するこずです。 結局のずころ、問題の解決ではなく、原因の究明に最も時間がかかるこずがよくありたす。

今埌もこの分野に積極的に泚力しおいきたいず考えおいたす。 理想的には、迫りくる問題に぀いお事埌ではなく事前に知り、解決するのではなく予防できるようにしたいず考えおいたす。 人的ミスずアプリケヌションの倉曎の䞡方により、監芖システムの誀った譊報が発生するこずがありたす。そしお、私たちはこれに取り組み、デバッグし、監芖システムを操䜜する前に、それに぀いお䜿甚しおいるナヌザヌに譊告するよう努めおいたす。 、たたはこれらのアクティビティを技術りィンドりで実行したす。

それで、システムは立ち䞊げられ、春の初めからうたく機胜しおおり、非垞に実際の利益を瀺しおいたす。 もちろん、これが最終バヌゞョンではなく、さらに倚くの䟿利な機胜を導入する予定です。 しかし珟圚、非垞に倚くの統合ずアプリケヌションが存圚するため、監芖の自動化は避けられたせん。

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

出所 habr.com

コメントを远加したす