Zabbix の DB を MySQL から PostgreSQL に移行する #3

 ■PostgreSQL にデータを取り込む

 

前回 生成した outfile.dmp を PostgreSQL に取り込みます。

 

# su - postgres
$ /usr/pgsql-9.3/bin/psql -U zabbix zabbix < outfile.dmp

 

これで PostgreSQL 側の準備はできあがりです。

PostgreSQL 9.1 未満だと、文字列エスケープの判断部分が違うのでこのままのデータだとワーニングがたくさん出るかもしれません。けどたぶん無視して良いんじゃないかな。

 

 ■データ取り込み後の初期設定(zabbix-server)

 

Zabbix-server の設定を行います。/etc/zabbix/zabbix_server.conf にていくつか指定すべきところがあります。

 

DBName=zabbix 
DBUser=zabbix
DBPassword=zabbix
DBPort=5432

 

設定した値に合わせてこの辺のパラメータを設定します。

そして zabbix-server を起動します。

 

# service zabbix-server start

 

念のため /var/log/zabbix/zabbix_server.log を確認しておきましょう。エラーが出てたら解消しておきましょう。

 

 ■データ取り込み後の初期設定(zabbix-web)

 

Zabbix の管理画面を準備します。Web サーバを起動します。

 

# service httpd start

 

ブラウザから http://zabbix-server-address/zabbix/ にアクセスします。zabbix-server-address のところは各自設置したIPアドレスで。

※設定中に、「pg_connect() : Unable to connect to PostgreSQL server: could not connect to server: Permission denied」等のエラーが出て DB 接続テストが失敗する場合、SELinux が有効になっておりかつこの操作が許可されていないということが考えられます。

SELinux を無効にするのが簡単なのでしょうけどそれじゃあセキュリティレベル下がってしまいそうですのでなるべくそのままで頑張りましょう。

SELinux のパラメータを確認し、web サーバが DB に接続するのを許可してあげましょう。

 

# setsebool -P httpd_can_network_connect_db on

 

これで接続テストが通るようになると思います。

ひととおりできあがったら、管理画面から様々なデータを見てみましょう。従来 MySQL で運用していたときのデータがそのまま見れていれば PostgreSQL への移行は成功です。