サーバ側の2重化について

監視サーバそのものにトラブルが発生した際にも対応できるよう
監視サーバそのものを2重化する手法について質問です

SVR01 : 192.168.1.1
SVR02 : 192.168.1.2

AGT01 : 192.168.1.10
AGT02 : 192.168.1.11
AGT03 : 192.168.1.12…

SVR01/02 双方のサーバにおいて、AGT01/02/03… に対する
ホスト・アイテム・トリガー等の監視設定を、全く同一の内容で
設定した場合

種別が[Zabbix Agent]で定義されるような通常のチェックに
ついては、AGT01/02/03 側の zabbix_agentd.conf で
<code>Server=192.168.1.1,192.168.1.2</code>
といったように、2台の監視サーバの IP アドレスを
両方設定することで、双方のサーバから監視を行うことが
できるのですが、

[Zabbix Agent(Active)]で定義されるようなチェック(log等)を
監視させようと思った場合、
<code>Server=192.168.1.1,192.168.1.2</code>
の先頭に書いた側のサーバ (SVR01) 側でしか、データの監視を
行うことができません

(Active) タイプのチェックでは、データの送信先サーバが
1台しか指定できない、という agentd 側の仕様・制限と
いうことは理解しているのですが、

AGT01/02/03 上で、
<code>
Server=192.168.1.1
ListenPort=10150
</code>
<code>
Server=192.168.1.2
ListenPort=10151
</code>
というような異なる設定をした zabbix_agentd を2つ起動して、
SVR01 からは Port:10150 の agentd-A を
SVR02 からは Port:10151 の agentd-B を
監視する…という手法しか、回避策はないのでしょうか?

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

ご指摘の通り、2台のZABBIXサーバから同一の監視対象の監視を行う場合、アクティブチェックのデータを双方のZABBIXサーバで受け取るためには2つのZABBIXエージェントを動作させておく必要があります。これはアクティブチェックの仕様上どうしようもありません。今のところ他の回避策は思いつかないですね...。

少しアプローチは異なりますが、MySQLのレプリケーション機能を利用してデータベースを同期しておくことで、アクティブ側のZABBIXサーバに問題があった際には手動でスタンバイ側のZABBIXサーバを起動するなど、運用でカバーしつつZABBIXサーバの障害に備えた構成を取ることはできるんじゃないかと思います。(試したことはないので、あくまで理論的にはできそうだというレベルの話になりますが)