Debian12 に ZabbixServer を構築する

# 環境

* ProxmoxVE 8.2.4 上にある Virtual Machine
* Debian 12.6.0-amd64-netinst.iso

# 構築予定の環境

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/d40bf236-d1c4-4e09-946e-d14be46b602f.png)

Zabbix 公式サイトより https://www.zabbix.com/jp/download

# 作業内容

## 1. 初期設定

https://qiita.com/bikikiMK2/items/9abcfb6903df88bcf6ee

https://qiita.com/bikikiMK2/items/22c97f3d686d53ee372c




## 2. Zabbix

### a.リポジトリ?レポジトリ?をwgetしてくる
```
manager@debian:~$ wget https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb
```

ここら辺はZabbix公式サイトにも書いてある

``dpkg`` で ``.deb`` のインストールを行う

```
manager@debian:~$ sudo dpkg -i zabbix-release_latest_7.2+debian12_all.deb
```

### b. Zabbix 関連をインストールする

パッケージを更新
```
manager@debian:~$ sudo apt update
```

インストール

```
manager@debian:~$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
```

## 3. MySQL

ここら辺の作業が公式サイトでは省略されていたので手順を書くことにした

### a. リポジトリ?レポジトリ?をwgetしてくる
``MySQL`` の公式サイトから ``.deb`` のダウンロードリンクをコピーする

https://dev.mysql.com/downloads/repo/apt/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/5f1cbbeb-94a5-4e45-af56-a0648f21b92c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/14786c8c-4c63-4d64-b468-400ea92219e7.png)


```
manager@debian:~$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.34-1_all.deb
```
### b. MySQL をインストールする

dpkgでwgetした .deb のインストールを行う

```
manager@debian:~$ sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
```

ところがエラーが出ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/1c0605e1-4288-4b1d-87e8-6f65b6078bd6.png)

どうやら ``gnupg`` に依存してるらしい

``gnupg``で検索をしてみる
```
manager@debian:~$ sudo apt search gnupg
```

発見

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/19750371-7d75-4fd9-ae34-f1a7819ffb7d.png)

これで安心してインストールできます

``gnupg``をインストールする

```
manager@debian:~$ sudo apt install gnupg
```

再度 ``sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb`` を実行

何か出てきました
"OK" を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/a2e2979a-7991-4313-8ab0-d02d6303c0d0.png)

十字キーを操作し"OK" を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/3a109d1c-c190-4b2c-a478-c417e11ac4fd.png)


CLIに戻されます

パッケージをインストールしたので ``apt update`` を行いパッケージを更新してあげます

```
manager@debian:~$ sudo apt update
```

``mysql-server``のインストールを行っていきます

``mysql-server`` を検索してみる

```
manager@debian:~$ sudo apt search mysql-server
```

発見

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/3c7a4583-23d1-4085-b28a-14cb2c2869ea.png)

``mysql-server`` をインストール

```
manager@debian:~$ sudo apt install mysql-server
```

ところがエラーが出ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/b585a5a9-1048-40a4-8e38-e06c3dd5a1a7.png)

すでに入っているパッケージと競合を起こしているみたい

一応 ``mariadb-client-core`` で検索をしてみる

```
manager@debian:~$ sudo apt list | grep mariadb-client-core
```

発見
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/750f83ec-7a67-4847-97ad-95a9a1c94af2.png)

``mariadb-client-core`` を ``apt remove --purge`` で消します

```
manager@debian:~$ sudo apt remove --purge mariadb-client-core
```

再度 ``sudo apt install mysql-server`` を実行

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/42132e65-1bcf-4658-85d6-cdd5a2dd88da.png)

``MySQL database`` で使うパスワードを入力します

ここで決めたパスワードは ``PASSWORD`` ということにしておきます

再度入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/8ab4ca6c-f5b0-4709-aedd-f150f5940947.png)

入力がただしく行われればプロセスの続きが始まります

これで ``MySQL`` のインストールは終了しました。

### c. MySQL の初期データベースを作成する

ここからの作業はZabbix公式サイトにも載っています
https://www.zabbix.com/jp/download

```
manager@debian:~$ mysql -u root -p
```

``PASSWORD`` を入力しログイン

成功すればmysqlのコンソール的な画面に切り替わります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/feecf2cb-8099-4ffb-8d45-9e9d0a4065a7.png)

これらを実行

```
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
```
ここで入力したパスワードは``password``ということにしておきます
```
mysql> create user zabbix@localhost identified by 'password'; 
```
```
mysql> grant all privileges on zabbix.* to zabbix@localhost;
```
```
mysql> set global log_bin_trust_function_creators = 1;
```
```
mysql> quit;
```

mysqlコンソールを閉じたら

Zabbixサーバーホストに初期スキーマとデータをインポートします

```
manager@debian:~$ zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix 
```

パスワードの入力を求めらるので先ほど指定した ``password`` を入力

log_bin_trust_function_creators オプションを無効にする

```
manager@debian:~$ mysql -u root -p
```
``PASSWORD`` を入力

```
mysql> set global log_bin_trust_function_creators = 0;
```

```
mysql> quit;
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/f3721c70-c1ac-41f0-9b2d-6d8de2777bfe.png)


## 4. 各種設定ファイルの編集

``zabbix_server.conf`` を編集する

```
manager@debian:~$ nano /etc/zabbix/zabbix_server.conf
```
``DBPassword`` は `password` を入力

```diff_shell:zabbix_server.conf
# This is a configuration file for Zabbix server daemon
# To get more information about Zabbix, visit https://www.zabbix.com

############ GENERAL PARAMETERS #################

~~~~~~~省略~~~~~~~

### Option: DBUser
#       Database user.
#
# Mandatory: no
# Default:
# DBUser=

DBUser=zabbix

### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
- # DBPassword=
+ DBPassword=password
```
保存して閉じる

``nginx.conf`` を編集する

```
manager@debian:~$ sudo nano /etc/zabbix/nginx.conf
```

``listen`` と ``server_name`` をコメント解除する

```diff_shell:nginx.conf
server {
- #     listen          8080;
- #     server_name     example.com;
+       listen          8080;
+       server_name     example.com;

        root    /usr/share/zabbix/ui;

        index   index.php;

~~~~~~~省略~~~~~~~
```

保存して閉じる

各サービスの再起動

```
manager@debian:~$ sudo systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm
```

各サービスの自動起動を有効化

```
manager@debian:~$ sudo systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm 
```

## 5. Webインターフェースにアクセス

まず ``ufw`` で接続ポートを許可しておきます

```
manager@debian:~$ sudo ufw allow 8080/tcp
```

``nginx.conf`` の ``listen`` で指定したポートで鯖のIPにアクセス

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/29466b02-94ef-45ee-bc66-ed4714f14aa1.png)

うまくいけばこのようなサイトが表示されているはずです。

## 6. Wellcome to Zabbix

### a. Wellcome

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/31d175a3-cd86-4d8e-b8d2-4c48271be5c8.png)

``Next step`` を押して次へ

### b. Check of pre-requisites

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/6aad1632-e43c-44de-b610-841e1edd6c3e.png)

全部 ``OK`` になっていることを確認する

``Next step`` を押して次へ

### c. Configure DB connection

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/f3ddc322-6e20-4b13-924a-c69d128d7edc.png)

``Password`` = ``password``

``Next step`` を押して次へ

### d. Settings

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/25479559-9d51-40bc-8c45-4e3278808b8b.png)

``Zabbix server name`` = 任意の名前を入力する

``Default time zone`` = 日本に住んでいる方は``Asia/Tokyo``を気合で探して選択してください

``Default theme`` = 任意のテーマを選ぶ

``Next step`` を押して次へ

### e. Pre-installation summary

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/61a967df-e04c-419a-ade9-6b077eebc35a.png)

設定に誤りがないか確認してください

``Next step`` を押して次へ

### f. Install

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/ebc163ad-5369-4a86-863b-fffe7dd37884.png)

``Congratulations! You have successfully installed Zabbix frontend``

``Finish`` を押してログイン画面へ
### g. ZABBIX

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/1cd376a7-7d82-451d-a587-f909c1978291.png)

初期パスワードを用いてAdminユーザーでログインします

``Username`` = Admin

``Password`` = zabbix

``Sign in`` を押してサインイン

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3641372/2038dabc-d415-4ae4-a266-1ac42b9f0bc0.png)

これにて ``Debian12 に ZabbixServer を構築する`` のすべての作業が終了しました

お疲れさまでした。

# 引用

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

https://www.zabbix.com/documentation/7.2/en/manual/appendix/install/db_scripts