本家様 https://www.zabbix.com/jp/features
最新リリース版は Zabbix 5.2 でこれはCentOS8なら大丈夫. CentOS7ではエージェント機能のみ提供されている.

別にCentOS7で Zabbix5.2を導入することは可能ですが、ソースからコンパイルが必要なご様子.
yumでお気楽に作業するならCentOS8とかにする必要がある. でもここではCentOS7をまだメインで使っているので CentOS7 でお気楽にyumでインストール可能な Zabbix5.0を扱います.

https://www.zabbix.com/jp/download?zabbix=5.0&os_distribution=centos&os_version=7&db=postgresql&ws=apache

ZABBIXバージョンOSディストリビューションOSバージョンデータベースWEB SERVER
5.0 LTSCentOS7PostgreSQLApache

*一応、zabbix3.0, 4.0はepelリポジトリから提供されている

Zabbix/source

リポジトリ登録

まずはZabbixのリポジトリを登録

[root@zabbix ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
 
[root@zabbix ~]# getenforce
Disabled
 
[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

Zabbix/repository

Zabbixパッケージをインストール

っで本家に記載の通りに作業を進める

[root@zabbix ~]# yum install zabbix-server-pgsql zabbix-agent

net-snmp-libs、postgresql-libsらも一緒にインストールされるみたい
ユーザ「zabbix]が用意される

要件のphp7対応を行う

次にCentOS7の標準にはないphp7を入れるために「centos-release-scl」を入れる

[root@zabbix ~]# yum install centos-release-scl

同時に「centos-release-scl-rh」も入ります.
これで /etc/yum.repos.d に「CentOS-SCLo-scl.repo」と「CentOS-SCLo-scl-rh.repo」が加わります
CentOS/devtoolsetとかのリポジトリとして使ってます

Zabbix-frontendパッケージをインストール

そしてこのzabbix-frontentをインストールします

[root@zabbix ~]# yum install --enablerepo=zabbix-frontend zabbix-web-pgsql-scl zabbix-apache-conf-scl

本家ではzabbixのリポジトリを修正してますが、yumのコマンドラインで調整できる
これでフロントエンドは勿論の事、必要なapache(httpd)、php(rh-php72)が一緒に入るが、データベース「postgresql-server」パッケージは入らない.
データベースは、このZabbixノード以外を使っても構わないからであろう.

PostgreSQLをインストール

ここではZabbixとデータベースを一緒のノードで機能させるので下記を追加実行します

[root@zabbix ~]# yum install postgresql-server
 
[root@zabbix ~]# PGSETUP_INITDB_OPTIONS="--encoding=UTF-8 --no-locale"  postgresql-setup initdb
Initializing database ... OK
 
[root@zabbix ~]# systemctl start postgresql

zabbix向けの postgreSQL 内部ユーザ「zabbix」を作り、それがオーナーになるデータベースも作る

[root@zabbix ~]# sudo -u postgres createuser --pwprompt zabbix
 
Enter password for new role:      <--- postgreSQL内に用意される zabbix ユーザのパスワード
Enter it again:
 
[root@zabbix ~]# sudo -u postgres createdb -O zabbix --locale=ja_JP.UTF-8 zabbix --template=template0
[root@zabbix ~]# sudo -u postgres psql -l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | C           | C           |
 template0 | postgres | UTF8     | C           | C           | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | C           | C           | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 zabbix    | zabbix   | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |
(4 rows)
 
[root@zabbix ~]#

postgreSQL内に用意される「zabbix」ユーザはOSアカウントではない(/etc/passwdに存在しない)。そのためアプリから利用するにはpg_hba.confの修正が必須です.

[root@zabbix ~]# vi /var/lib/pgsql/data/pg_hba.conf
 :
local   all             all                                     peer  # アカウントがあるので
host    all             all             127.0.0.1/32            md5   # identからmd5へ「-h localhost」として接続するなら
host    all             all             ::1/128                 md5   # 同じ
 
[root@zabbix ~]# systemctl restart postgresql
 
(確認テスト)
[root@zabbix ~]# sudo -u zabbix psql    <-- 「local all all peer」で接続
psql (9.2.24)
Type "help" for help.
 
zabbix=> \q
[root@zabbix ~]# psql -d zabbix -h localhost4 -p 5432 -U zabbix   <-- 「host all all 127.0.0.1/32 md5」で接続
Password for user zabbix:
psql (9.2.24)
Type "help" for help.
 
zabbix=> \q
[root@zabbix ~]#

*「peer」はUnixドメインソケットを経由してOSアカウントがあるなら使える
「ident」はOSのアカウントが存在して、そのOSパスワード認証を行う
「md5」はpostgreSQL内のユーザでmd5認証を行う
「psql -d zabbix -h localhost6 -p 5432 -U zabbix」ならipv6経由で接続となる

PostgreSQLデータベースに Zabbixのスキーマを作成

作ったデータベース「zabbix」にスキーマを作る

[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

webアプリからデータベースへへ接続すための設定を施す

[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
 :
#  DBPassword=
  ↓
DBPassword=XXXXXXXXXXXXXXXXX    <-- postgreSQL内に用意される zabbix ユーザのパスワード
 :
[root@zabbix ~]#

Webアプリの設定

webアプリのタイムゾーンを定義します 「/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf」

--- /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.orig     2021-03-29 19:13:03.000000000 +0900
+++ /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf  2021-04-19 23:40:58.995943227 +0900
@@ -21,4 +21,4 @@
 php_value[upload_max_filesize] = 2M
 php_value[max_input_time] = 300
 php_value[max_input_vars] = 10000
-; php_value[date.timezone] = Europe/Riga
+php_value[date.timezone] = Asia/Tokyo

起動

あとはアプリの起動

[root@zabbix ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

そしてfirewallを調整して「http://zabbix/zabbix」へアクセス

[root@zabbix ~]# firewall-cmd --add-service={http,https} --zone=public --permanent
[root@zabbix ~]# firewall-cmd --add-port=10050-10051/tcp --zone=public --permanent
[root@zabbix ~]# firewall-cmd --reload

2021y04m19d_234904882.png
と表示される


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-05-26 (水) 03:25:25 (27d)