LoginSignup
8
5

More than 3 years have passed since last update.

Install ZABBIX5.0 + TimescaleDB(PostgreSQL) on CentOS8

Last updated at Posted at 2020-05-14

備忘録も兼ねて。。

ZABBIX5.0LTSがリリースされたのでお試しで入れてみました。

流れとしては

  1. PostgreSQL12のインストール
  2. TimescaleDBのインストール
  3. ZABBIX5.0インストール

基本的にrootユーザで実行します。

PostgreSQL12

この記事を参考にインストール。

リポジトリ情報をもってくる

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

dnfコマンドでインストール、する前にデフォルトのものをdisableに。

CentOS8から、dnfってのが使えるようで。
これが面倒な事に元々あるpostgresモジュールをdisableにしておかないとエラーを吐くらしい。

dnf -qy module disable postgresql

postgresql12をインストール

yumと一緒。

dnf install postgresql12-server postgresql12-contrib

initdbで初期化

お馴染みのやつ。知ってる人なら。
自分はいつも忘れる。

※potgresユーザに切り替えてから

/usr/pgsql-12/bin/initdb 

/usr/pgsql-12/bin/postgresql-12-setup initdbでもいいかも。
(/etc/init.d/postgresql initdbとか昔あったよね。うろ覚え)

TimescaleDBのインストール

公式ドキュメントをもとにインストール

yumリポジトリ設定

公式ドキュメントにある通りに進める。

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL

TimescaleDBをインストール

これも公式通り。

yum update -y
yum install -y timescaledb-postgresql-12

TimeScale用に設定ファイルを書き換える

timescaledb-tuneコマンドを使って/var/lib/pgsql/12/data/postgresql.confの内容をTimeScaleDB用に書き換える。
自分はとりあえず、YesYesで進めた。よぉ分からん。
差分情報は適宜出るので、ちゃんと確認しながら進めるのが正しい。
不安なようなら、とりあえず今のコンフィグファイルをどこかに退避させると良い。

timescaledb-tune -pg-config /usr/pgsql-12/bin/pg_config

簡単に書き換えてくれるのは本当ありがたい。

PostgreSQLの起動

設定ファイルが書き換わったので、PostgreSQLを再起動する。

systemctl restart postgresql-12

ZABBIX5.0インストール

公式ドキュメントをもとにインストール。

ZABBIXのリポジトリをインストール

この辺は公式ドキュメント通り。

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
dnf clean all

ZABBIXのインストール

ここも公式ドキュメント通り。

dnf install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-agent

日本語化も忘れずに。

dnf install -y zabbix-web-japanese

ZABBIX用のユーザとDBを作成

公式ドキュメント通り。
ユーザとかデータベース名とか変えたい時は適宜変更すること。

sudo -u postgres createuser --pwprompt zabbix
# パスワード設定
# ごにょごにょ
sudo -u postgres createdb -O zabbix zabbix

ZABBIX用のデータ投入

zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

COMMITまで出ればOK。
ちょっと前は3つほど、順番通りにSQL文を読み込ませていたけど、本当便利になった笑

TimescaleDBを適用する

ZABBIX4.2から使えるようになったそうです。
パフォーマンスが向上するとかしないとか。
そんな訳で、TimescaleDB(実態はExtentsion)を適用する

公式ドキュメントも参考に。

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

[2021/04/17 追記]
実行すると下記のエラーが出る。

could not change directory to "/home/vagrant": Permission denied
ERROR:  extension "timescaledb" has no installation script nor update path for version "2.2.0"

そういう時は、バージョン指定をしてインストールしてあげると良いらしい。

echo "CREATE EXTENSION timescaledb VERSION '1.7.5'" | sudo -u postgres psql zabbix

create_hypertableを使って、ハイパーなテーブルを作成する(らしい)

zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix

設定ファイルを更新

ZABBIX Serverの設定ファイルを更新する。
特にチューニングとかは考えていないので、最低限の修正。

vi /etc/zabbix/zabbix_server.conf
/etc/zabbix/zabbix_server.conf
DBPassword=<ZABBIXユーザで設定したパスワード>

pg_hba.confを覗いたら、全部trustになっていたのでmd5に変更する
でも、お試しならこのままでもOK。
trustのままなら、zabbix_server.confは修正しなくても動きはする、かも。

vi /var/lib/pgsql/12/data/pg_hba.conf
/var/lib/pgsql/12/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

PHPのタイムゾーン設定を更新。
前は/etc/httpd/conf.d/の配下にある、zabbix.confを修正したけど、今回は/etc/php-fpm.d/zabbix.confという設定ファイルを更新する

vi /etc/php-fpm.d/zabbix.conf

コメントアウトを外すのを忘れずに。

/etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Tokyo

SELinux無効化

本来はやりたくないのだけど、ドキュメント通りにやってもうまくZabbixが起動してくれなかったので。。

setenforce 0

恒久対処なら、/etc/selinux/configを修正。

自動起動設定

systemctl enable zabbix-server zabbix-agent httpd postgresql-12 

起動!!!

systemctl restart zabbix-server zabbix-agent httpd php-fpm

FrontEndの設定をする

http://localhost/zabbix にブラウザでアクセス!

たぶん、はいはいとやってるだけで終わる。

気になる人は公式をみてね

8
5
11

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5