読者です 読者をやめる 読者になる 読者になる

Zabbix 3.0のデータベースにPostgreSQL9.6を使う

Zabbix

ZabbixのデータベースにはMySQLを使うのが一般的かと思いますが、今回PostgreSQL9.6の環境にZabbixをインストールする必要があったので、インストール手順をかんたんにメモします。
インストールメモなのでfirewalldやselinuxは無効状態にしてあります。
またPostgreSQLの認証設定もテスト構築向けになっています。

PostgreSQL9.6のインストール

CentOS7でPostgreSQLをインストールする場合、yumだとPostgreSQLは9.2系がインストールされると思うのですが、今回は現時点で最新の9.6系をインストールします。

標準レポジトリのpostgresqlをインストールしないように設定します。
/etc/yum.repos.d/CentOS-Base.repo[base][updates]セクションに以下を追記します。

exclude=postgresql*

次にPostgreSQL9.6のレポジトリをインストールしてZabbix用のデータベースとユーザーを作成します。

### PostgreSQL9.6のレポジトリをインストール
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

### PostgreSQL9.6をインストール
yum install postgresql96-server

### データベースの初期化
PGSETUP_INITDB_OPTIONS="--encoding=UTF-8 --no-locale" /usr/pgsql-9.6/bin/postgresql96-setup initdb

### PostgreSQLを自動起動にし起動する
systemctl enable postgresql-9.6
systemctl start postgresql-9.6

### Zabbix用のユーザーとデータベースを作成する
su - postgres -c "createuser -P zabbix"
su - postgres -c "createdb -O zabbix -E UTF8 zabbix"

### pg_hba.confを修正する(テスト構築向け)
tee /var/lib/pgsql/9.6/data/pg_hba.conf <<-'EOF'
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
EOF

### pg_hba.confの設定を反映させる
systemctl reload postgresql-9.6

CentOS 7にZabbix3.0をインストール

CentOS 7にZabbix 3.0をインストールします。
Zabbixはレポジトリをインストールすることでyumでインストールできるようになるので今回はyumでインストールします。

### Zabbix3.0のレポジトリをインストール
yum install http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

### Zabbix3.0のインストール
yum install zabbix-agent zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese

### Zabbix用phpの設定
sed -i 's|# php_value date.timezone Europe/Riga|php_value date.timezone Asia/Tokyo|' /etc/httpd/conf.d/zabbix.conf

### Zabbix用の初期テーブルを作る
zcat /usr/share/doc/zabbix-server-pgsql-3.0.7/create.sql.gz | psql -U zabbix zabbix

### Zabbixのデータベースの設定を変更する(DBPasswordはcreateuser時のパスワードを設定する)
sed -i 's/# DBPassword=/DBPassword=zabbix/' /etc/zabbix/zabbix_server.conf
sed -i 's/# DBPort=3306/DBPort=5432/' /etc/zabbix/zabbix_server.conf

### Zabbixを自動起動にし起動する
systemctl enable httpd
systemctl enable zabbix-server
systemctl start httpd
systemctl start zabbix-server

動作確認

ブラウザでhttp://サーバーIP/zabbix/を開いて初期設定を行います。
データベースの設定画面でパスワードの入力項目があるので、ここにはPostgreSQLの設定時に作成したzabbixユーザーのパスワードを入力します。
問題なければログイン画面が表示されますので初期設定の管理者ユーザーAdmin、パスワードzabbixでログインできます。

参考にさせていただいたページ

Zabbix 3.0をCentOS 7にインストール(PostgreSQL編)