AlmaLinux 8.8 に Zabbix 4.0 LTS (4.0.50) をインストールする

Zabbix 4.0 LTS最新版をインストールしてみます。

# 環境
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/009ccce1-2f0d-bbbd-1274-8a9153d456da.png)

OS: **`almalinux-release-8.8-1.el8.x86_64`**
Zabbix Server: **`zabbix-server-pgsql-4.0.50-1.el8.x86_64`**
Zabbix Client: **`zabbix-agent-4.0.50-1.el8.x86_64`**
Database: **`postgresql-server-15.10-1.module_el8.10.0+3929+38258aa5.x86_64`**

:::note info
databaseはpostgresqlを使用し、バージョンは後方互換(Zabbix 7.0)を考慮しversion15を導入します。
:::

https://www.zabbix.com/documentation/4.0/en/manual/installation/requirements




# 1.Zabbix Serverインストール

## 1.1 事前準備
OSインストールのほか、以下を実施しておきます。
・SELinuxの停止
・Firewalldの停止

また、AlmaLinux8ではGPG Keyの更新が必要になっているため、以下についても実施しておきます。

```text:
# rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
```

https://almalinux.org/blog/2023-12-20-almalinux-8-key-update/





## 1.2 Zabbixパッケージインストール
リポジトリをダウンロードし、インストールを実施します。


```text:
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm

# dnf install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-agent

インストール済み:
  OpenIPMI-libs-2.0.31-3.el8.x86_64
  almalinux-logos-httpd-84.5-1.el8.noarch
  apr-1.6.3-12.el8.x86_64
  apr-util-1.6.1-9.el8.x86_64
  apr-util-bdb-1.6.1-9.el8.x86_64
  apr-util-openssl-1.6.1-9.el8.x86_64
  dejavu-fonts-common-2.35-7.el8.noarch
  dejavu-sans-fonts-2.35-7.el8.noarch
  fontconfig-2.13.1-4.el8.x86_64
  fontpackages-filesystem-1.44-22.el8.noarch
  fping-5.1-1.el8.x86_64
  gd-2.2.5-7.el8.x86_64
  httpd-2.4.37-65.module_el8.10.0+3874+c2064c23.2.x86_64
  httpd-filesystem-2.4.37-65.module_el8.10.0+3874+c2064c23.2.noarch
  httpd-tools-2.4.37-65.module_el8.10.0+3874+c2064c23.2.x86_64
  jbigkit-libs-2.1-14.el8.x86_64
  libX11-1.6.8-9.el8_10.x86_64
  libX11-common-1.6.8-9.el8_10.noarch
  libXau-1.0.9-3.el8.x86_64
  libXpm-3.5.12-11.el8.x86_64
  libjpeg-turbo-1.5.3-12.el8.x86_64
  libpq-13.11-1.el8.alma.1.x86_64
  libtiff-4.0.9-33.el8_10.x86_64
  libwebp-1.0.0-9.el8_9.1.x86_64
  libxcb-1.13.1-1.el8.x86_64
  mailcap-2.1.48-3.el8.noarch
  mod_http2-1.15.7-10.module_el8.10.0+3904+caabc2d4.1.x86_64
  net-snmp-libs-1:5.8-30.el8.x86_64
  nginx-filesystem-1:1.14.1-9.module_el8.3.0+2165+af250afe.alma.noarch
  php-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-bcmath-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-cli-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-common-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-fpm-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-gd-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-json-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-ldap-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-mbstring-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-pdo-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-pgsql-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  php-xml-7.2.24-1.module_el8.3.0+2010+7c76a223.x86_64
  unixODBC-2.3.7-1.el8.x86_64
  zabbix-agent-4.0.50-1.el8.x86_64
  zabbix-server-pgsql-4.0.50-1.el8.x86_64
  zabbix-web-4.0.50-1.el8.noarch
  zabbix-web-pgsql-4.0.50-1.el8.noarch

完了しました!
```










## 1.3 postgresqlパッケージインストール
postgresqlはzabbix後方互換性のため、OS標準のversion10でなくversion15をインストールします。

適用可能バージョンを確認します。

```text:
# dnf module list postgresql

メタデータの期限切れの最終確認: 0:00:48 前の 2025年01月25日 22時46分07秒 に実施しました。
AlmaLinux 8 - AppStream
Name             Stream       Profiles                 Summary                            
postgresql       9.6          client, server [d]       PostgreSQL server and client module
postgresql       10 [d]       client, server [d]       PostgreSQL server and client module
postgresql       12           client, server [d]       PostgreSQL server and client module
postgresql       13           client, server [d]       PostgreSQL server and client module
postgresql       15           client, server [d]       PostgreSQL server and client module
postgresql       16           client, server [d]       PostgreSQL server and client module

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled 
```

適用バージョンを15に設定します。

```text:
# dnf module enable postgresql:15 -y
```

postgresqlをインストールします。

```text:
# dnf install -y postgresql postgresql-server

インストール済み:
  libicu-60.3-2.el8_1.x86_64
  postgresql-15.10-1.module_el8.10.0+3929+38258aa5.x86_64
  postgresql-private-libs-15.10-1.module_el8.10.0+3929+38258aa5.x86_64
  postgresql-server-15.10-1.module_el8.10.0+3929+38258aa5.x86_64

完了しました!
```

:::note info
postgresqlはpostgresqlクライアント、postgresql-serverはpostgresqlサーバ用途でインストールします。
:::












## 1.4 postgresql設定
initdbによる初期化、createuserによるユーザ作成、createdbによるデータベース作成を実施します。
また、以下ファイル(zabbix-serverインストール時に作成)によるテーブル作成も実施します。
`/usr/share/doc/zabbix-server-pgsql*/create.sql.gz`

```
# postgresql-setup initdb

# systemctl enable postgresql
# systemctl start postgresql
# systemctl status postgresql

# sudo -u postgres createuser --pwprompt zabbix 
# sudo -u postgres createdb -O zabbix zabbix

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


<br>

`/var/lib/pgsql/data/postgresql.conf`について、リッスンポート設定をワイルドカード指定します。
```text:
# vi /var/lib/pgsql/data/postgresql.conf
--------------------------------------------
listen_addresses = 'localhost'

↓↓↓

listen_addresses = '*'
#listen_addresses = 'localhost'
```

<br>

`/var/lib/pgsql/data/pg_hba.conf`について、認証設定をmd5認証に修正します。
＃postgresqlへ`localhost`接続時、内部的にIPv6を利用して接続することもあるのでIPv6接続も変更しておくことを推奨します。
```text:
# vi /var/lib/pgsql/data/pg_hba.conf
--------------------------------------------
local   all             all                                     peer
host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

↓↓↓

local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
```

:::note info
pg_hba.confの認証設定は以下になります。
**trust**: 必ず認証。パスワード不要
**reject**: 接続を無条件に拒否
**md5**: 認証時にMD5暗号化パスワードを要求
**password**: 認証時に平文のパスワードを要求
**ident**: OSユーザ名を取得し、 データベースユーザ名と一致するか検査
**peer**: ローカル接続時のみ使用可能なident認証
https://www.postgresql.jp/docs/9.0/auth-pg-hba-conf.html
:::

<br>

各設定ファイル編集後、サービスを再起動します。

```text:
# systemctl restart postgresql
# systemctl status postgresql
```



## 1.5 hosts編集
hostsファイルに自身の接続先を記載しておきます。

```text:
# vi /etc/hosts
--------------------------------------------
192.168.142.71  alma88-vzs1
```



## 1.6 Zabbix Server設定
Zabbix Serverの各種設定ファイルを編集し、起動します。

```text:
# vi /etc/zabbix/zabbix_server.conf
--------------------------------------------
DBPassword=[postgresql-password]
ListenIP=192.168.142.71
Timeout=10
```

:::note info
**DBPassword**: postgresqlのzabbixユーザのパスワードを指定
**ListenIP**: ZabbixAgentやブラウザで接続するリッスンIPアドレスを指定
**Timeout**: 通信タイムアウト時間（デフォルト3秒だとたまに通信エラーとなる）
:::



## 1.7 PHP設定
PHPのタイムゾーン設定を行います。

```text:
# vi /etc/php-fpm.d/zabbix.conf
--------------------------------------------
php_value date.timezone Asia/Tokyo
```



## 1.8 各種サービス自動起動・再起動
```text:
# systemctl enable zabbix-server httpd php-fpm
# systemctl restart zabbix-server httpd php-fpm

# systemctl status zabbix-server
# systemctl status httpd
# systemctl status php-fpm
```



## 1.9 web接続
webブラウザを起動し、以下URLに接続します。
**`http://<リッスンIP>/zabbix/setup.php`**

`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/4313e442-4eb4-6de0-4831-f5b9315f4cd4.png)

requisitesが全て`ok`であることを確認し、`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/5586c85f-fa00-acce-6cbf-6414420b6c81.png)

`password`を入力し、`Next Step`を押下します。
※`Database schema`は特に入力不要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/ea7787de-e4cd-a270-1623-579d60f574ff.png)

`Host`、`Name`を入力し、`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/ce95cbb4-80a4-636a-fcc8-1b2e0a9ed607.png)

:::note info
`Host`は名前解決に使用するため、`/etc/hosts`やDNS等で名前解決できるようにしておくことを推奨します。
:::


`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/e4a19464-e910-fe98-5baf-a6a3b4730f42.png)

インストールが完了しました。`Finish`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/22059e68-a7ee-0d91-2ea2-71970fb19450.png)

ログイン画面が表示されました。初期アカウントを利用してログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/0896e1fc-7d65-5485-38e3-87cf2291ea92.png)

:::note info
初期アカウントは　ユーザ：`Admin`、パスワード：`zabbix`の特権管理ユーザになります。
:::

<br>

ログインに成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/ef4c3b10-6ffd-70ee-5331-7f2fb00faaf1.png)

:::note warn
以下のように`Zabbix Server is not running`となっている場合、下記2点を確認してください。
①Zabbixサーバへの名前解決(名前解決設定およびfirewall/selinux等NW制限設定)
②zabbix-server.conf内のDB接続設定(DBPassword等)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/67f265dc-f8a9-d56f-ccf8-f5c05263fd86.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/654ca5c2-6966-b6a8-34db-dbfd7bdcebad.png)
:::

# 2.Zabbix Agentインストール

## 2.1 事前準備
OSインストールのほか、以下を実施しておきます。
・SELinuxの停止
・Firewalldの停止

また、AlmaLinuxではGPG Keyの更新が必要になっているため、以下についても実施しておきます。

```text:
# rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
```

https://almalinux.org/blog/2023-12-20-almalinux-8-key-update/




## 2.2 パッケージインストール

```text:
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/8/x86_64/zabbix-release-4.0-2.el8.noarch.rpm

# dnf install -y zabbix-agent
```


## 2.3 Zabbix Agent設定
Zabbix Agentの各種設定ファイルを編集し、起動します。

```text:
# vi /etc/zabbix/zabbix_agentd.conf
--------------------------------------------
Server=192.168.142.71
ServerActive=192.168.142.71
HostnameItem=system.hostname
AllowRoot=1
```

:::note info
**Server**: zabbixサーバの接続先を指定(Zabbixエージェント用)
**ServerActive**: zabbixサーバの接続先を指定(Zabbixエージェントアクティブ用)
**HostnameItem**: Zabbixサーバに指定するホスト名の表記
**AllowRoot**: Zabbixをroot権限で動作させる
**Timeout**: 通信タイムアウト時間（デフォルト3秒だとたまに通信エラーとなる）
:::

<br>

また、Zabbixをルート権限で動作させる(/var/log/messages等へアクセスさせる)ために、サービス起動権限についてrootに変更を実行します。
```text:zabbix-agent.service
# vi /usr/lib/systemd/system/zabbix-agent.service
--------------------------------------------
User=root
Group=root
```

サービスを再起動します。
```text:restart_services
# systemctl daemon-reload
# systemctl restart zabbix-agent
# systemctl status zabbix-agent
```


# 3.Server/Agent接続

## 3.1 ホスト登録
`設定` - `ホスト` - `ホストの作成`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/e56ab108-373a-e68d-104f-97ef24722ff4.png)
<br>
<br>

`*`がついている必須入力、およびエージェントのインターフェース等を入力し、`追加`を押下します。

:::note warn
`ホスト名`はクライアントマシンで`hostname`コマンドを実行した結果と完全一致させる必要があります。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/2e8deaae-7bfa-6188-1023-2234247993e4.png)

<br><br>

ホストが追加され、`エージェントの状態`もグリーンとなりました。

:::note warn
エージェントの状態が更新/反映されるまで5分程度かかる場合があります。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/a7fbd60a-7286-e120-f05e-f4ec8e467bc8.png)



# 参考
https://www.zabbix.com/documentation/4.0/en/manual/installation/requirements

https://almalinux.org/blog/2023-12-20-almalinux-8-key-update/

https://qiita.com/Higemal/items/459d1ac3359983255620