Zabbix Server が MySQL DB へ書き込みを実施する際の duplicate entry に関して

2台のActive/Active構成のZabbix Serverにて同じDBを参照しています。

環境は以下となります。
Zabbix Server のバージョンは 4.0.23
DBは MySQL 8.0.11

それぞれを Active 1, Active 2 とします。
監視対象のWindowsサーバでFireWallのポートをActive 2だけあえて閉じました。
元々 Active 1 からは監視できていたので監視サーバのWebUI上ではWindowsサーバの
ステータスを取れていました。

そこであえてActive 1のzabbix-server.serviceのプロセスを落とし、Active 2のみを残したところ
想定通り、FireWallによって拒否されている為、Windowsサーバのステータスが取れなくなりました。

agent pingもマネージャから見て通っていない状況ですが、監視対象の Windows Server が
「Zabbix agent on hostname is unreachable for 5 minites」となりません。

Zabbix Server側のログを確認したところ、以下のようなログが吐かれておりました。

◆ログ
```
3117:20201014:140001.389 [Z3005] query failed: [1062] Duplicate entry '28500-1602648000' for key 'PRIMARY' [insert into trends (itemid,clock,num,value_min,
value_avg,value_max) values (28500,1602648000,60,0.000000,0.000000,0.000000);
]
3117:20201014:140001.459 [Z3005] query failed: [1062] Duplicate entry '28801-1602648000' for key 'PRIMARY' [insert into trends_uint (itemid,clock,num,value
_min,value_avg,value_max) values (28801,1602648000,60,1,1,4),(28741,1602648000,60,2122424320,2122818150,2123386880);
]
3117:20201014:140002.589 [Z3005] query failed: [1062] Duplicate entry '28802-1602648000' for key 'PRIMARY' [insert into trends_uint (itemid,clock,num,value
_min,value_avg,value_max) values (28802,1602648000,60,88,88,89);
]
3117:20201014:140003.698 [Z3005] query failed: [1062] Duplicate entry '28803-1602648000' for key 'PRIMARY' [insert into trends_uint (itemid,clock,num,value
_min,value_avg,value_max) values (28803,1602648000,6,1602633830,1602633830,1602633830);
]
3117:20201014:140004.767 [Z3005] query failed: [1062] Duplicate entry '28804-1602648000' for key 'PRIMARY' [insert into trends_uint (itemid,clock,num,value
_min,value_avg,value_max) values (28804,1602648000,60,41,66,83);
]
3117:20201014:140005.849 [Z3005] query failed: [1062] Duplicate entry '28805-1602648000' for key 'PRIMARY' [insert into trends (itemid,clock,num,value_min,
value_avg,value_max) values (28805,1602648000,60,0.000000,0.000167,0.010000);
]
3117:20201014:140006.955 [Z3005] query failed: [1062] Duplicate entry '28806-1602648000' for key 'PRIMARY' [insert into trends (itemid,clock,num,value_min,
value_avg,value_max) values (28806,1602648000,60,0.000000,0.003667,0.150000);
```

これはつまりActive 1, Active 2共に同じDBをみている為、データベース側で重複したエントリーとなっており
正しく現在のステータスが書き込みできない為、unreachable のステータスがWebUI上でも出てこなければ
アラートとしても上がらないという事でしょうか。

コメント表示オプション

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

2台のActive/Active構成のZabbix Serverにて同じDBを参照しています。

2台同時にActiveで同じDBを使用する構成では機能しません。

記載頂いたログにあるように、複数のZabbixサーバーが同時に同じ
データベースを使用しようとしてしまうと、テーブル内で唯一のも
のとする(ユニークにする)ためのIDが重複してしまい、テーブルへ
の履歴データを保存できなくなります。

2台でActive/ActiveのZabbixサーバーとしたいのであれば、データ
ベースも別の物を使用するようにしてください。

ユーザー ANZ の写真

ご回答ありがとうございます。
例えば Active/Standby 構成に変更した場合もDBを分離する必要がありますでしょうか?