ZabbixServer#1,#2からスキーマを分けて同一ZabbixDBを参照する方法
お世話になっております。
立て続けに投稿申し訳ございません。本件についてもアドバイス等頂けませんでしょうか。
<環境>
Zabbixバージョン:4.0
OS:RHEL8.0
DB:AWS RDS (PostgreSQL 11.5)
現在、Zabbix Serverを2台、Zabbix DBは1台の構成を検討しております。
Zabbix Serverの2台はそれぞれ同一のZabbix DBへ接続しますが、参照するスキーマは分けたいと考えております。
Zabbix DBにスキーマ「test」を追加で作成し、以下のようにスキーマ「public(デフォルト)」とスキーマ「test」でそれぞれZabbix DBに接続させようとしています。
Zabbix Server#1 → スキーマ「public」
Zabbix Server#2 → スキーマ「test」
以下手順で実施してみたのですが、Zabbix Server#1,2両サーバーとも、同一スキーマ「public」を参照してしまいます。
※#1のIPでアクセスしたWEBコンソールからアイテム等を追加すると、#2のIPでアクセスしたWEBコンソールも同じく更新される
手順として間違っていましたら、ご教示いただけないでしょうか。
そもそもなのですが、上記のような構成はサポートされていないのでしょうか?
<手順>==================
前提:Zabbix Server#1,2とZabbix DBは構築済み #同一DBを参照している状態
Zabbix Server#2からZabbix DBへ接続し、スキーマ「test」を作成する
>create schema test;
② スキーマ「test」を優先して参照するようにsearch_pathを変更する
>alter role mpsmmadmin set search_path to test,public,"$user";
③ Zabbix DBから一度抜けて、初期データインポートを実行する
> zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbixadmin -h zabbixdb -d Zabbix
④ Zabbix Server#2からZabbix DBへ接続し、search_pathを以下のように変更する
> alter role mpsmmadmin set search_path to public,test,"$user";
⑤ Zabbix Server#2の「/var/lib/pgsql/data/postgresql.conf」のsearch_pathをスキーマ「test」を優先するように変更する
> vi /var/lib/pgsql/data/postgresql.conf
search_path = 'test,public,"$user"'
⑥ Zabbix Server#2のpostgresqlサービスをリロードする。
> systemctl reload postgresql.service
⑦ Zabbix Server#1,2のZabbix serverサービスを再起動する
>systemctl restart zabbix-server
=======================
宜しくお願い致します。
TNK - 投稿数: 4671
ZabbixサーバーのDBサーバーへのアクセス負荷は高いので、複数の
Zabbixサーバー用のデータベースを同じデータベースサーバー上に
構築するようなことはしたことがありませんが、それぞれのZabbix
サーバーのzabbix_server.conf内のDBSchemaにそれぞれ用のスキー
マを指定していますか?
https://www.zabbix.com/documentation/4.0/manual/appendix/config/zabbix_s...
KENG - 投稿数: 10
TNK様
ご返信ありがとうございます。
DBSchemaは特に設定をしていませんでした!
試してみようと思います。結果も実施でき次第、ご報告させて頂きます。
KENG - 投稿数: 10
TNK様
上記手順に加え、ご指摘頂いたZabbixServer#2のzabbix_server.conf内のDBSchemaの値を
以下のように指定し、OS再起動を実施しました。
===============
DBSchema=test
===============
結果、ZabbixServer#2のIPからWEBコンソールにログインしたところ、まだ#1と同じスキーマを参照していました。
そしてコンソール下部に以下のメッセージが出力されておりました。
================
Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)
===============
以下サイトを参考にしましたが、「SELINUX= permissive」もzabbix.conf.phpの「$ZBX_SERVER = '127.0.0.1';」の設定もサイト通りに設定されています。
#1のIPからWEBコンソールに入った場合は上記メッセージは出力されておりません。
何か設定反映等が不足しているのでしょうか。
https://www.opensourcetech.tokyo/entry/2018/10/06/Zabbix_4.0_LTS%E3%81%A...
以上、宜しくお願い致します。
TNK - 投稿数: 4671
先日の回答には書き忘れていましたが、Webインターフェースは、
/etc/zabbix/web/zabbix.conf.php
にスキーマの設定があります。
新規設定のウィザードで指定可能です。
$DB['SCHEMA']に使用するスキーマを指定してみてください。
あと、Zabbixサーバープロセスが起動できない原因は、Zabbixサー
バーのログを確認してください。
KENG - 投稿数: 10
お世話になっております。
zabbix.conf.phpの DB[`Schema`]= の値を指定して、
サービス再起動したところ、無事作成したスキーマを参照することができました!
この度は色々とご教示頂きありがとうございました!
大変助かりました。