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

そういえば Zabbix って PostgreSQL でも動いたよねー なんて軽い気持ちで移行をしてみました。

Zabbix Server の動作する OS は CentOS 6 を使います。

 

PostgreSQLインストール

 

Postgresql のサイトで紹介されている yumリポジトリから入れてみましょう。今日時点で最新の Postgresql 9.3 を使います。

リポジトリはこちらから選択します→ PostgreSQL RPM Repository (with Yum)

今回は CentOS 6 (i386) を使います。

 

# rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm

 

 

# yum install postgresql93-server postgresql93

 

初回起動前には初期化が必要です。

 

# service postgresql-9.3 initdb

 

そして起動

 

# service postgresql-9.3 start

 

 

■Zabbix 用 DB の準備

 

Zabbix 側にて必要なファイルを準備します。Zabbix のリポジトリから yum でインストールすると簡単。

 

yum --enablerepo=zabbix install zabbix-web-pgsql zabbix-server-pgsql

 

postgres ユーザになります

 

# su - postgres

 

zabbix DB を作ります

 

$ /usr/pgsql-9.3/bin/createdb zabbix

 

postgres にアクセスする zabbix ユーザさんを作ります

 

$ /usr/pgsql-9.3/bin/createuser -U postgres --pwprompt --no-superuser --no-createrole --no-createdb zabbix
新しいロールのパスワード:
もう一度入力してください:

 

権限を付けます

 

$ /usr/pgsql-9.3/bin/psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix"
GRANT

 

パスワード認証ができるように変更します。pg_hba.conf 内で ident になってるところを md5 にかきかえて設定再読込。

 

$ vim ~/9.3/data/pg_hba.conf
~~
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local zabbix zabbix md5
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
~~
$ /usr/pgsql-9.3/bin/pg_ctl reload

 

 

■Zabbix 用 DB にテーブルを用意する

 

zabbix-server-pgsql パッケージに付属していたファイルを使って DB を用意します。

 

$ /usr/pgsql-9.3/bin/psql -U zabbix zabbix < /usr/share/doc/zabbix-server-pgsql-2.0.9/create/schema.sql
$ /usr/pgsql-9.3/bin/psql -U zabbix zabbix < /usr/share/doc/zabbix-server-pgsql-2.0.9/create/images.sql

 

ここまでで空っぽのテーブルができあがりました。ここに MySQL から抜き出したデータを放り込んでゆきます。

それはまた今度。