統合監視ツール「Zabbix」を Almalinux 9 にインストールする

# はじめに
一年ほど前にZabbixでサーバーの監視環境を構築しました。順調に稼働してくれているので、BCP用にZabbixをもう一台構築します。前回は手順書を作成しなかったので、自分への備忘録的な意味も込めて記事を書きます。

# Almalinux 9 のインストールについて
この記事を参考にしてください。

https://qiita.com/TUDANUMA/items/caa2f98307396bc4e40b

# Zabbixとは

>Zabbix はアレクセイ・ウラジシェフによって作られた、ネットワーク管理ソフトウェアである。様々なネットワークサービス、サーバ 、その他のネットワークハードウェアのステータスを監視・追跡できる。 - Wikipedia (https://ja.wikipedia.org/wiki/Zabbix)

サーバーのCPUの値やサービスの監視ができ、設定してある閾値を超えたり、登録されている値を検出するとメールやSlackなどに警告が届く監視ツールです。

https://www.zabbix.com/jp/features

# 構築環境
一年前に構築した環境を再現するため、少し古いバージョンになっています。

| パーツ    | スペック                     | 
|:----------|:----------------------------|
| CPU       | Core i5-8250U CPU @ 1.60GHz |
| Memory    | 8GB	                      | 
| Storage   | SSD 256GB                   |
| OS        | Almalinux 9.2               |

# SELinux の無効化
社内ネットワークからのみZabbixを使用するので、一時的にSELinuxを無効化します。セキュリティ上問題がある場合はおすすめしません。
```
$ grubby --update-kernel ALL --args selinux=0
```
再起動して変更を有効にします。
```
# reboot
```

# Firewall の無効化
SELinuxと同様の理由で無効化します。

```
# systemctl stop firewalld
```
自動起動設定を無効にします。
```
# systemctl disable firewalld
```

# httpd のインストール
Apache httpd で Webサーバーを構築します。
```
# dnf -y install httpd
```

httpd の設定変更を行います。
confファイルの下記部分を変更 or 追記してください。
```
# nano /etc/httpd/conf/httpd.conf
ServerName localhost
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.html index.php index.cgi
ServerTokens Prod
```
Webサーバーを起動します。
```
# systemctl enable --now httpd
```
http://127.0.0.1 にアクセスするとWebサーバーが立ち上がっているのが確認できます。


今回は社内ネットワーク内での使用なので、WebサーバーにTLSの設定はしません。httpsを使いたい方は、Server World 様の以下ページを参考にしてみてください。

https://www.server-world.info/query?os=CentOS_Stream_9&p=httpd&f=3


# PHP のインストール
次は、PHP 8.1 を指定してインストールします。
```
# dnf module -y install php:8.1/common
```

既にPHPがインストールされている場合は、以下の手順でver 8.1に切り替えます。
```
# dnf module reset php
# dnf module -y enable php:8.1
```



# MariaDB のインストール
データベースは MariaDB を使用します。
```
# dnf -y install mariadb-server
```
インストールした MariaDB を有効にします。
```
# systemctl enable --now mariadb
```
MariaDB の初期設定を行います。
```
# mysql_secure_installation
```
Y/n で質問に答えて設定をします。

# Zabbix のインストール
その他、必要なパッケージをインストールします。
```
# dnf -y install php-mysqlnd php-gd php-xml php-bcmath php-ldap
# dnf -y install https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-3.el9.noarch.rpm
```
Zabbixサーバーをインストールします。zabbix-selinux-policy、zabbix-agent2、zabbix-web-japanese についてはインストールが必要な方のみで問題ありません。
```
# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 zabbix-web-japanese
```

Zabbix用にデータベースの設定を行います。P@ssw0rdの部分にはご自身の設定するパスワードを入力してください。
```
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.16-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin; 
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'P@ssw0rd'; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit 
Bye
```
Zabbixのconfにデータベースの情報を入力します。confファイルの下記部分を変更または、追記を行ってください。
```
# nano /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBPassword=P@ssw0rd
```
Zabbixを起動します。
```
# systemctl enable --now zabbix-server
```
先ほど Zabbix Agent2 をインストールした方は、confファイルの下記部分を変更または、追記をを行ってください。
```
# nano /etc/zabbix/zabbix_agent2.conf
Server=127.0.0.1
ServerActive=127.0.0.1
```
Zabbix Agent2 を起動します。
```
# systemctl enable --now zabbix-agent2
```

デフォルトでは、Zabbixに誰でもアクセスできる状態です。アクセスの制限をしたい方は、confファイルの下記部分を変更してください。
```
# nano /etc/httpd/conf.d/zabbix.conf
Require ip <アクセス許可する範囲＞
```
設定を有効化するために httpd と php-fpm を再起動します。
```
# systemctl restart httpd php-fpm
```
以上で Zabbix サーバーの基本設定は完了です。http://127.0.0.1/zabbix にアクセスすると、Zabbixの初期設定画面が表示されます。

# RDPを有効にする（おまけ）

Xrdp サーバーをepelからインストールします。
```
# dnf -y install epel-release
# dnf -y install xrdp
```
Xrdp を起動します。
```
# systemctl enable xrdp --now
```
他のPCで、リモートデスクトップ接続の設定を行えばアクセス可能になります。

# 参考文献
https://www.server-world.info/query?os=CentOS_Stream_9&p=zabbix60&f=1

# おわり！
![kOD5xfq.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3522032/47a3b369-f7b6-432e-bcb0-6024aa52786e.gif)