ZABBIXをUbuntu20.0.4 サーバにインストールする手順

# 概要
本記事では、[ZABBIX](https://www.zabbix.com/jp/download?zabbix=6.2&os_distribution=ubuntu_arm64&os_version=20.04&components=server_frontend_agent&db=pgsql&ws=nginx)を以下の構成でインストールする手順を整理しようと思います。

* Zabbixサーバー：Docker コンテナ(Ubuntu20.0.4)
* Zabbixエージェント：ホストPC(Ubuntu20.0.4)

このような構成にする理由は、ZabbixサーバーのPHPバージョンが古いためです。
ホストPC上では、PHP 8.1 を使用しており、競合が怖かったので、このような環境で試すことにしました。

以下、今回の構成とバージョン情報です。

* Zabbix v6.2（サーバー、エージェント）
* Linux(エージェント)
  * Ubuntu 20.0.4
* Dockerコンテナ(サーバー)
  * Ubuntu 20.0.4
* データベース
  * Postgresql v14
* Webサーバー
  * Nginx(最新版)
* PHP
  * PHP 7.4
  * PHP-FPM

なお、本記事ではセキュリティ周りの設定は省略しておりますので、ご注意くださいまし。

# インストール手順

1. Postgresql のインストール
1. ZABBIX サーバーのインストール
1. データーベースのセットアップ
1. ZABBIX サーバーのセットアップ
1. ZABBIX エージェントのインストール
1. ZABBIX エージェントのセットアップ

# Postgresql のインストール

```
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
```

```
 sudo apt install curl ca-certificates gnupg
```

```
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
```

```
sudo apt update
```

```
sudo apt upgrade
```

```
sudo apt install postgresql-14
```

インストールできたかどうかの確認

```
$ sudo su - postgres
$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
"help"でヘルプを表示します。

postgres=#
```

# ZABBIX サーバーのインストール

```
git clone https://github.com/tmori/tutorial_zabbix.git
```

```
cd tutorial_zabbix
```

```
bash docker/create-image.bash
```

# データーベースのセットアップ

zabbix が利用するデータベースはホストPCに置く構成としていますので、ホストPC上で zabbix 用のデータベースのセットアップを行います。

## zabbix用のユーザを追加
```
sudo -u postgres createuser --pwprompt zabbix
```

## zabbix用のDBを追加
```
sudo -u postgres createdb -O zabbix zabbix
```

## DBの初期化

```
cd tutorial_zabbix/volumes/tools
```

```
 psql -U zabbix -d zabbix -h localhost -p 5432 -f create.sql
```

本来であれば、zabbix 本家のインストール手順上は、`/usr/share/doc/zabbix-sql-scripts/postgresql/create.sql.gz`を解凍したものを使うのが正しい手順です。

Dockerfile上で、`zabbix-sql-scripts`をインストールしているので、docker コンテナにこの初期化スクリプトが入っているはずなのですが、なぜかダウンロードされない現象に出くわしてしまいました。

そのため、ホストPC上でダウンロード/解凍したもの(create.sql)を用意しました。

# ZABBIX サーバーのセットアップ

## zabbix サーバーを起動
```
cd tutorial_zabbix
```

```
bash docker/run.bash
```

tutorial_zabbix/volumes/zabbix/zabbix_server.conf を開いて、`DBPassword`に zabbix DB用のパスワードを設定してください。デフォルトだと、`zabbix`のままです。

```
DBPassword=zabbix
```

dockerコンテナ上で、以下のコマンドを実行すると zabbix サーバーが起動します。
```
bash tools/start.bash
```

この状態で、`http://localhost:8098`にアクセスすると初期画面がでてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/d9be05a7-d18d-2e95-871e-6cb29cd9ee59.png)

デフォルト言語を`日本語(ja_JP)`にして、`次のステップ`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/4d9ed139-b723-af08-ca63-4397266c4b62.png)

そのまま、`次のステップ`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/c14e8a61-6bfe-8dd6-6ddc-acd4b818fc75.png)

DBパスワードを入力して、`次のステップ`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/23b6de24-f695-09f6-f624-46acb5c8c219.png)

`Zabbixサーバー名`と`デフォルトのタイムゾーン`を選択して、、`次のステップ`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/1cfaf758-dad2-7946-7bec-11d59980c958.png)

そのまま、`次のステップ`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/0f6d6af3-6590-ddb3-885b-f172d99c0a14.png)

そのまま、`終了`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/82e69f89-b325-8a21-58fb-ed4d49c9bfce.png)

`ユーザ名`に`Admin`、`パスワード`には、先ほど設定したパスワードを入力して、`サインイン`をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/9d98c466-0e52-843b-8236-1d42e791bfd8.png)

この画面が出てきたら成功です～。

# ZABBIX エージェントのインストール

ホストPC上で、zabbix-agentをインストールします。

```
sudo apt install zabbix-agent
```

agent を起動します。

```
sudo systemctl restart zabbix-agent
```


# ZABBIX エージェントのセットアップ

今回の場合は、ホストPC上にエージェントとサーバーが同居していますので、デフォルトのまま監視できます。特別なセットアップは不要です。

エージェントとサーバーが異なる場合は、以下の設定が追加で必要となります。備忘録として残しておきます。

## エージェント側の設定
`/etc/zabbix/zabbix_aent.conf` のServerパラメータは、デフォルトでは、`127.0.0.1`担っています。これをzabbixサーバーのIPアドレスに差し替える必要があります。

設定変更したら、agentは再起動しましょう。

## サーバー側の設定

デフォルトですと、以下の用にzabbixサーバー上のPCも監視対象となっています。
[設定]→[ホスト]→[Zabbix server]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/82db2ed6-78a0-a114-4b09-82085294efb5.png)

エージェントがホストと異なるPCに配置されている場合は、右上の「ホストの作成」ボタンを押下して、エージェントを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/982eefe7-e656-72f4-6971-c59e7501515f.png)

こんな感じで、必要な設定をして、エージェントのIPアドレスを追加すればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244147/1944291e-b186-7549-183c-015635e58b2a.png)