Redhat8の環境にZabbix6.0/Grafana環境を構築してみた

# 宣伝
BeeX Advent Calendar 2022 の2日目で～す(/・ω・)/
[BeeX Advent Calendar 2022](https://qiita.com/advent-calendar/2022/beex)

# はじめに
Redhat8の環境で、Zabbix6.0/Grafana環境を構築したのでその備忘録として書きます。
実行環境に関しては、下記記事で作成した環境を利用するものとします。
[CloudFormationテンプレートのベストプラクティスな書き方について考えてみた](https://qiita.com/yes_dog/items/1d35b93278cc1f93d3c4)

# 環境構築

## (1)OS初期設定

### (1.1)タイムゾーン変更(Asia/Tokyo)

```
# timedatectl |grep "Time zone"
# timedatectl set-timezone Asia/Tokyo
# timedatectl |grep "Time zone"
```

### (1.2)SELINUXの無効化

```
# getenforce
# vi /etc/selinux/config
--
SELINUX=enforcing
↓
SELINUX=disabled
--

# shutdown -r now
# getenforce
```


## (2)Zabbix6.0の構築

### (2.1)Zabbixの環境構築(CUI)

**Zabbix Repositoryをインストールする**

```
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
# dnf clean all
```


**Zabbixの必須パッケージをインストールする**

```
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
```

**MySQLをインストールする**

```
# cd /tmp
# curl -OL https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar
# tar -xvf mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar
# dnf localinstall mysql-community-*
```

**MySQL ログイン時のパスワード要求を無効化　※一時的**


```
# vi /etc/my.cnf
--
[mysqld]
skip-grant-tables
--
※「mysqld」セクションの末尾に追加
```


**MySQL起動**


```
# systemctl start mysqld
```


**MySQLRootパスワードを設定**


```
# mysql -u root
mysql> USE mysql;
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' identified BY 'RootP@ssword01';
mysql> quit
```


**MySQL ログイン時のパスワード要求を有効化**


```
# vi /etc/my.cnf
--
[mysqld]
skip-grant-tables ←削除
--
```


**MySQL再起動**


```
# systemctl restart mysqld
```


**Zabbix用のDB設定**


```
# mysql -uroot -p
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'ZabbixP@ssword01';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> USE mysql;
mysql> select user, host, plugin from user;
mysql> ALTER USER 'zabbix'@'localhost' identified with mysql_native_password by 'ZabbixP@ssword01';
mysql> select user, host, plugin from user;

mysql> show variables like 'log_bin_trust_function_creators';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> show variables like 'log_bin_trust_function_creators';

mysql> quit
```


**Zabbixデータの流し込み**


```
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
```


**Zabbixの設定ファイルで、MySQLパスワードを定義**

```
# vi /etc/zabbix/zabbix_server.conf
--
DBPassword=ZabbixP@ssword01
--
```

**PHP側のユーザ/グループを変更①**

```
# vi /etc/php-fpm.d/www.conf
--
user = apache
group = apache
↓
user = nginx
group = nginx
--
```


**PHP側のユーザ/グループを変更②＋タイムゾーンを追加**

```
# vi /etc/php-fpm.d/zabbix.conf
--
user = apache
group = apache
↓
user = nginx
group = nginx

php_value[date.timezone] = Asia/Tokyo
--
```

**PHP側の定義ファイルで、Zabbix構築時の前提条件項目を設定**

```
# vi /etc/php.ini
--
;date.timezone =
↓
date.timezone = Asia/Tokyo

max_execution_time = 30
↓
max_execution_time = 300

max_input_time = 60
↓
max_input_time = 300

post_max_size = 8M
↓
post_max_size = 16M
--
```

**シンボリックリンク作成**

```
# ln -s /usr/share/zabbix /usr/share/nginx/html/zabbix
```

**オーナー変更**

```
# chown -R nginx.nginx /etc/zabbix/web
```

**各種サービスの起動/自動起動を実施**

```
# systemctl start zabbix-server zabbix-agent2 nginx php-fpm
# systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
```

### (2.2)Zabbixの環境構築(GUI)

**下記URLをたたく**

>http://IPアドレス/zabbix


**「デフォルトの言語」で日本語(jp_JP)を選択し、「次のステップ」を押下する。**
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/517fe3e5-07ee-8326-ec1a-2bd30c641685.png)

**前提条件のチェックで、全てのがOKであることを確認し、「次のステップ」を押下する。**
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/e990f925-8636-8cd1-fda2-36d33734ac88.png)


**データベースの接続設定で、パスワード入力画面で「ZabbixP@ssword01」を入力し、「次のステップ」を押下する。**
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/ebc46f4a-92dc-807b-9176-aa672110abf2.png)

**Zabbixサーバー名に「Zabbix01(任意の名前)」を入力し、「次のステップ」を押下する。**

![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/df8da224-6458-6fea-4e4c-238b124fcced.png)


**インストール事前準備概要で、内容に誤りが無いことを確認し、「次のステップ」を押下する。**
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/14599147-fe9f-0af1-4e73-76a6350043bb.png)


**「終了」を押下する。**
![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/4a2d2659-8307-67c2-64c8-44aec557d0f8.png)


**デフォルトの管理者ユーザの接続情報を入力し、ログインする。**

ログイン時の初期パスワードは下記となります。

|項目 |入力値  |
|---|---|
|user  |Admin  |
|Password  |zabbix  |


![7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/99c3c33f-efaa-37b0-f0aa-1b3c65748da8.png)

**実際にログインするとこんな画面が表示されます。**
![8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/a437467b-34dd-1f0c-a952-fde358e60f5e.png)





## (3)Grafanaの構築

続いて、Grafanaを構築していきます。
今回構築するGrafanaは、RedHat8のリポジトリに入っているGrafanaを使うものとします。

**grafanaをインストールする**

```
・バージョン指定なし
# dnf install grafana
・バージョン指定有
wget https://dl.grafana.com/oss/release/grafana-9.3.6-1.x86_64.rpm 
sudo yum localinstall grafana-9.3.6-1.x86_64.rpm
```

**Zabbix用のGrafanaプラグインをインストールする**

```
# grafana-cli plugins install alexanderzobnin-zabbix-app
```

**Grafanaの起動/自動起動を実施**

```
# systemctl start grafana-server
# systemctl enable grafana-server
```

**下記URLをたたく**

>http://IPアドレス:3000/grafana

ログイン時の初期パスワードは下記となります。

|項目 |入力値  |
|---|---|
|user  |admin  |
|Password  |admin  |


# 最後に
今回は、構築するだけで終わりますが、次回の記事では構築した環境に実際の設定をしていく記事について書いていこうと思います。
終わりです(●´ω｀●)