SberServiceは、連邦政府にとって重要な最大のサービス会社であり、幅広い情報通信機器、ワークステーション、オフィス機器、サーバー、電話に包括的なメンテナンスサービスを提供しています。同社はCISにおけるZabbixの唯一のプレミアムパートナーです。IT監視の分野でロシア最大のチームを採用し、高負荷のITインフラストラクチャを備えた組織向けの監視システムの統合実装の分野で独自の技術ソリューションを開発しています。この事実は、SberServiceがメインの監視プラットフォームとしてZabbixを選択する理由を説明しています。
この記事は何についてですか?
名前が示すように、この記事では、高可用性で監視を整理するための概念を提案します。 Zabbixサーバーは「実験的」として機能し、CorosyncとPacemakerはアクティブ-アクティブクラスターを編成するために使用され、これはすべてLinuxで機能します。このソフトウェアはオープンソースであるため、このようなソリューションは誰でも利用できます。
高負荷のITインフラストラクチャを監視するためのZabbixの操作中(データ項目の数の増加、ホストの数の増加、生データの大きなストレージ深度、絶えず増大するユーザーニーズ)、多くの場合、起動時または再起動時にZabbixサーバーのパフォーマンスの問題に直面します。高負荷(> 60k NVPS)の条件下では、通常のZabbixサーバーの再起動は、通常ではありますが、かなり長い手順になります。サービスの開始からデータが監視に表示されるまでの時間は、15〜20分に達する可能性があります。
これに直面し、状況を分析した後、監視チームは、アクティブ-アクティブの原則に従ったクラスタリングが役立つという解決策に到達しました。さらに、目標は、災害復旧を別のデータセンターに転送することによって達成することでした。
仕事
アクティブ-アクティブモードで動作し、制御、記録の継続性を提供し、データベースへの書き込み時に情報が重複する可能性を排除する、フォールトトレラントで可用性の高い2アームZabbixサーバークラスターの作成。
サービスのネットワーク環境を低下から保護するための多くのスキームと方法があります。チームは、強力で高負荷の監視システムZabbixをIT市場に存在するハードウェアおよびソフトウェアのクラスタリング機能に適応させるという道をたどることを決定し、SberServiceは高可用性クラスターを作成しました。選択はOpenSourceソリューション、より正確にはPacemakerとCorosyncにありました。
要件
クラスターを作成する際に考慮すべき2つの重要な基準があります。
ZabbixServer , . ., ;
ZabbixServer , .
Active-Passive Pacemaker Corosync ( Corosync cman, ).
, Zabbix , « », ZabbixServer , , , – . , .
, Active-Active (LoadBalancer), .
:
High Available ZabbixServer Active-Active LoadBalancer :
« » (Cluster resource) . .
2 . stonith quorum — .
quorum 3 . , 2 , «» .
stonith , . , . . , , .
:
ocf::heartbeat:ZBX-IPaddress ocf::heartbeat:ZBX-Instance
, . ZBX-IPaddress ip- (IPaddr2). ZBX-Instance — zabbix-server . Zabbix- , , Zabbix- Read/Write, ReadOnly, zabbix-server (, Active-Active).
. ZBX-IP-address IP- , ZBX-Instance zabbix- Read/Write, zabbix- ReadOnly, . . ZabbixProxy. , .
— master slave ZabbixServer- .
High Available ZabbixServer Active-Active LoadBalancer
:
« » . , « », , LoadBalancer - . , , « ».
Pacemaker :
ocf::heartbeat:ZBX-Cluster-Socket ocf::heartbeat:ZBX-Instance
ZBX-Cluster-Socket — « » — LoadBalancer-.
ZBX-Instance zabbix-server- .
« », .
ZBX-Cluster-Socket Pacemaker (). « » — , , LoadBalancer. «» ZBX-Cluster-Socket ZBX-Instance (constraint) , «» . Corosync, ZBX-Cluster-Socket, 101 Master-node 201 Slave-node. LoadBalancer / : 101 — 201 — , , , .
Master-node Slave-node :
Master-node, 101 , LoadBalancer 201 Slave-node. Corosync, , Master-node , ZBX-Instance ZBX-Cluster-Socket Slave-node, «resource_movement», Pacemaker ZBX-Instance User_A User_B , .
?
: 2- Master-node ( User_A) Slave-node (User_B), Master-node .
, , . Master-node , . Slave-node . LoadBalancer , Master-node Slave-node ZabbixServer , LoadBalancer .
— ? - Read/Write, ReadOnly, :
Slave-node , Slave-node : User_A ReadOnly, User_B Read/Write.
Slave-node , Slave-node .
«» Master-node, LoadBalancer , Master-node .
( 2- ), . , , «How to».
結論として、現代のテクノロジーの世界では、不可能なことはほとんどないことを付け加えておく必要があります。必要なのは欲望と資源だけです。