ubuntu22.04にZabbix server6.4を構築する

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

仕事関連でZabbixを触る機会が増え、適当にいじり倒せる環境が欲しいなと思う今日この頃。
なので作ってみることにしました。
まずはZabbix serverを構築し、次にAgentを導入したサーバを用意して監視環境を作っていきます。

# 用語
## Zabbix

公式サイトからの引用です。
>Zabbixはネットワークの多くのパラメータ、サーバ、仮想マシン、アプリケーション、サービス、データベース、Webサイト、クラウドなどの健全性と完全性を監視するソフトウェアです。Zabbixは柔軟な通知メカニズムを使用しており、ユーザは事実上あらゆるイベントに対してメールベースのアラートを設定することができます。これにより、サーバトラブルへの迅速な対応が可能です。Zabbixは保存されたデータに基づいた優れたレポート機能とデータ可視化機能を提供します。そのため、Zabbixはキャパシティプランニングに最適です。
>Zabbixはポーリングとトラッピングの両方をサポートしています。全てのZabbixレポートと統計情報、設定パラメータはWebベースのフロントエンドからアクセスすることができます。Webベースのフロントエンドはネットワークの状態とサーバの健全性をどこからでも確実に評価することができます。適切に設定することで、ZabbixはITインフラの監視において重要な役割を果たすことができます。これは数台のサーバを持つ小規模な組織でも、多数のサーバを持つ大企業でも同様です。

https://www.zabbix.com/documentation/current/en/manual/introduction/about

# HW構成
ubuntu22.04のHW構成を以下に示します。
こんなにスペック高くなくて良いと思いますが、後から足りなくなると面倒なので。

| HW | Spec |
|:-:|:-:|
| CPU  | 2sockets 4cores  |
| Memory  | 20GiB  |
| Disk  | 50GB  |

# 参考サイト
以下の公式サイトに各々の環境に合わせた環境構築の手順が記載されております。

https://www.zabbix.com/jp/download?zabbix=6.4&os_distribution=ubuntu&os_version=22.04

ちなみに今回の環境構築にあたり、以下の様に設定を入れております。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/cbe538a2-6398-2ffe-fd99-1654e8284b6c.png)

# 構築
手順に記載の通り、Zabbixのリポジトリを追加します。
```
root@zabbix:~# wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
root@zabbix:~# dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
root@zabbix:~# apt update
```
次にZabbix serverをインストールしていきます。
※あとでこの記事には記載しますが、MySQLやApacheは別途インストールする必要があります。公式手順には記載がありません。
```
root@zabbix:~# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
```
MySQLやApacheをインストールし、MySQLのrootユーザのパスワードを設定します。
このパスワードは任意のもので問題ありません。
```
root@zabbix:~# apt install mysql-server mysql-client apache2 -y
root@zabbix:~# systemctl start mysql apache2
root@zabbix:~# systemctl enable mysql apache2
root@zabbix:~# mysqladmin -u root password
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
```
MySQLにログインして公式サイトの通り、設定を入れていきます。
```
root@zabbix:~# mysql -u root -p
Enter password:
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.03 sec)
mysql> create user zabbix@localhost identified by 'password';
Query OK, 0 rows affected (0.05 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.03 sec)
mysql> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit;
Bye
```
Zabbix Serverに必要なスキーマやデータを準備します。
このコマンド実行後、2,3分ほど処理に時間がかかるため待機します。
```
root@zabbix:~# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -p zabbix
```
以下のコマンドを実行し、MySQLとZabbixのconfigの設定を変更していきます。
```
root@zabbix:~# mysql -uroot -p
Enter password:
mysql> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Bye

root@zabbix:~# cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.org
root@zabbix:~# vi /etc/zabbix/zabbix_server.conf
root@zabbix:~# diff /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.con
f.org
129c129
< DBPassword=password
---
> # DBPassword=

root@zabbix:~# systemctl restart zabbix-server zabbix-agent apache2 
root@zabbix:~# systemctl enable zabbix-server zabbix-agent
```
ここまで完了しましたら、Webブラウザでアクセスが出来るようになっていると思います。
http://"Zabbix serverのIPアドレス"/zabbixでいけます。
アクセス後、以下の様な画面が表示されます。Next stepを押下します。
![image (56).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/a6eaa1bf-1eb3-55ac-cea3-292fb9133fc5.png)
全てOKとなっていることを確認してください。（OKになっていないものがあると次に進めないはずです。）
![image (57).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/c1ee6311-d0b7-567e-6bfe-d4f922817f92.png)
DBにZabbixが接続する為の情報を記載します。
以下の様に入力すればOKです。Passwordの部分はpasswordです。Zabbix公式サイトに準拠していれば。
![image (58).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/5fa4342c-ac30-716f-f6a0-55581f0ab0fc.png)
Time zoneをAsia/Tokyoに変更し後はデフォルトのままで先に進めました。
![image (59).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/3e4ead10-5942-f9af-646b-c6d1a8ef005b.png)
以下の様な画面が表示されれば成功です。Finishを押下します。
![image (60).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/6b33c3bb-cb7e-6c0b-e168-888633f9cbf0.png)
ユーザ：Admin
パスワード：zabbix
でログインができます。
![image (61).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/23782970-26a3-d4f5-be49-19813c0e1bdd.png)
![image (62).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/fdd09b36-f40b-99c3-3a8c-c8d302de881f.png)