備忘録も兼ねて。。
ZABBIX5.0LTSがリリースされたのでお試しで入れてみました。
流れとしては
- PostgreSQL12のインストール
- TimescaleDBのインストール
- 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
DBPassword=<ZABBIXユーザで設定したパスワード>
pg_hba.conf
を覗いたら、全部trust
になっていたのでmd5
に変更する
でも、お試しならこのままでもOK。
trust
のままなら、zabbix_server.conf
は修正しなくても動きはする、かも。
vi /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
コメントアウトを外すのを忘れずに。
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 にブラウザでアクセス!
たぶん、はいはいとやってるだけで終わる。
気になる人は公式をみてね