centos 7.6 に Zabbix 4.0 LTS (4.0.47) をインストールする

Zabbix 4.0 LTS最新版をインストールしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/34cade43-dece-f761-4965-20d3856df585.png)
(イメージ画像はbing aiによる作成）


# 環境
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/a049c4ed-8af0-2e0d-0315-62995e551beb.png)

OS: **`CentOS Linux release 7.6.1810`**
Zabbix Server: **`zabbix-server-pgsql-4.0.47-1.el7.x86_64`**
Zabbix Client: **`zabbix-agent-4.0.47-1.el7.x86_64`**
Database: **`postgresql-server-9.2.24-8.el7_9.x86_64`**

:::note info
databaseはpostgresqlを使用し、バージョンはOS標準のものを利用します。
:::

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

# 1.Zabbix Serverインストール
基本は以下に基づいてインストールします。

https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=pgsql&ws=apache



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



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

```text:install
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all

yum install -y zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
yum install -y postgresql.x86_64 postgresql-server.x86_64
```

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

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

```text:postgresql
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:postgresql.conf
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:pg_hba.conf
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:restart_postgresql
systemctl restart postgresql
systemctl status postgresql
```


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

```text:hosts
192.168.142.41  cent76-zs4
```


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

```text:zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf
--------------------------------------------
DBPassword=password
ListenIP=192.168.142.41
Timeout=10
```

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

<br>

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

```text:restart_services
systemctl enable zabbix-server httpd
systemctl restart zabbix-server httpd

systemctl status zabbix-server
systemctl status httpd
```


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

`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/32911b68-d51b-cf6a-3f43-27fbb4e73d46.png)

requisitesが全て`ok`であることを確認し、`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/ffb13d4a-91c7-ff00-fb1b-52649ca1b148.png)

`password`を入力し、`Next Step`を押下します。
※`Database schema`は特に入力不要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/3ceaa4ae-d50b-d5eb-28e8-076e0b800801.png)

`Host`、`Name`を入力し、`Next Step`を押下します。

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/73f5ceee-2ea5-ce92-6898-c1ebefa69fd3.png)

`Next Step`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/58eb0db9-9796-2ec2-4d4a-23a3cd527244.png)

インストールが完了しました。`Finish`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/3abad369-ba97-c61c-ac84-c1d8155a2774.png)

ログイン画面が表示されました。初期アカウントを利用してログインします。

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/63896f8c-08f9-3846-2c30-b9ef35aedb89.png)

ログイン成功しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/e4a0773e-c529-c1a0-dce8-b76b68289521.png)

:::note warn
以下のように`Zabbix Server is not running`となっている場合、`Details`に表示されている接続先(hostname:10051)にアクセスできていない可能性があります。
名前解決が実行可能となっているか、またNW設定やセキュリティ設定(SELinux/firewalld等)を確認してください。
![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インストール
基本は以下に基づいてインストールします。

https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&components=agent&db=&ws=

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



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

```text:install
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all

yum install -y zabbix-agent
```


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

```text:zabbix_agentd.conf
vi /etc/zabbix/zabbix_agentd.conf
--------------------------------------------
Server=192.168.142.41
ServerActive=192.168.142.41
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等へアクセスさせる)ために、サービス起動権限について一部コメントアウトを実行します。
```text:zabbix-agent.service
vi /usr/lib/systemd/system/zabbix-agent.service
--------------------------------------------
#User=zabbix  ←コメントアウト
#Group=zabbix ←コメントアウト
```

サービスを再起動します。
```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://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=pgsql&ws=apache

https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&components=agent&db=&ws=

https://www.server-world.info/query?os=CentOS_8&p=zabbix40&f=1

https://www.zabbix.com/documentation/2.2/jp/manual/appendix/config/zabbix_agentd