CentOS7にZabbix4.2をインストールする

しばらく前にやった手順を、自分用に忘れないようにサルベージします。 
記事公開時点でのZabbixの最新版は4.4ですが、手順はほとんど同一だと思います。（未検証）

## 前提(使用した環境)
* CentOS 7.6 
    * on VMware Workstation Player 14
    * 最小インストール
    * インターネット接続はNAT
    * ホスト名はlocalhost(デフォルト)
<br>

## 導入したもの
* Zabbix 4.2.1
* MySQL 8.0.16
* PHP 7.3.5 （Zabbixの前提パッケージとして自動インストール）
<br>

## 操作
実行はすべてroot

### 1.リポジトリのインストール
#### EPEL
```bash:bash
yum -y install epel-release
yum -y update
```
<br>

#### Remi
RHEL(CentOS)向けのPHPを管理しているRedHat社のRemi Collet氏の個人リポジトリ。
比較的新しいPHPを使用する場合に追加する。

```bash:bash
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

#以下は不要かもしれませんが念の為。
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
```
<br>

#### MySQL
```bash:bash
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
```  
<br>

#### リポジトリの有効化
```bash:bash
vi /etc/yum.repos.d/remi.repo
vi /etc/yum.repos.d/remi-php73.repo


#変更箇所
enabled=0
↓
enabled=1
```
<br>

### 2.SELinuxの無効化
できればSELinuxにポリシーを追加して動かせるようになった方がセキュリティ的に望ましいが、今回は省略。

```bash:bash
vi /etc/sysconfig/selinux

#変更箇所
SELINUX=enforcing
↓
SELINUX=disabled
```
変更を反映するために再起動

```bash:bash
reboot
```

<br>

### 3.MySQLのインストールと設定
#### インストール
```bash:bash
yum -y install mysql-community-devel
yum -y install mysql-community-server
```

PHPを利用するアプリケーションの大半(Zabbix含む)は、MySQLのデフォルトの認証方式caching_sha2_passwordには対応していないので変更する。

```bash:bash
vi /etc/my.cnf

#変更箇所
#default-authentication-plugin=mysql_native_password
↓
default-authentication-plugin=mysql_native_password

#MySQLのログはデフォルトでUTC(世界協定時)のタイムスタンプを取るので、気になるなら変更する。
log_timestamps=SYSTEM
```
MySQLを起動させ、自動起動の設定をして完了。

```bash:bash
systemctl start mysqld
systemctl enable mysqld
```

<br>

#### 設定
MySQL root の初期パスワードを確認する。

```bash:bash
grep password /var/log/mysqld.log

出力例）
2019-05-09T03:35:13.795380Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <初期パスワード>
```

mysql_secure_installation コマンドに「--use-default」オプションを付けて実行する。root ユーザーのパスワード変更や、不要なユーザーやDBの削除が行われる。
ここで設定するパスワードは、8文字以上で英数大文字小文字と記号が含まれていないとポリシー違反で弾かれるので注意。


```bash:bash
mysql_secure_installation --use-default
 
（略）
Enter password for user root: ＜初期パスワード＞
 
The existing password for the user account root has expired. Please set a new password.
 
New password: ＜新しいパスワード＞
 
Re-enter new password: ＜新しいパスワード＞
（略）
```

<br>

### 4.Zabbixのインストール
#### 準備
Zabbixのダウンロードページを開く。
[Zabbix ダウンロード](https://www.zabbix.com/jp/download "ZABBIX ダウンロード")


<br>
Install  Zabbix from Packageを選択する。
![2019-05-10 12_00_31-ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/dc641b43-d400-5b4b-a730-ee431bbd05c3.png)



<br>

プラットフォームをいい感じに選ぶ。
![2019-05-10 11_49_40-ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/65f70835-cda3-3bda-c929-d732bc12732e.png)


<br>

Zabbixのyumリポジトリのurlを獲得する。
![2019-05-10 11_51_12-ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/64498ad3-a60c-f3bb-901b-a5b4ab5301ee.png)
>\# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
>\# yum clean all

<br>

#### リポジトリ・Zabbixのインストール
前項で入手したurlを用いる。

```bash:bash
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
yum clean all

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
yum -y install zabbix-agent
yum -y install zabbix-get
```
<br>

#### MySQLにZabbix用のデータベースとユーザーを作成
```bash:bash
mysql -u root -p
 
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
 
CREATE USER zabbix@localhost IDENTIFIED BY '<パスワード>';
GRANT ALL ON zabbix.* TO zabbix@localhost;
quit;
```

Zabbix用のデータベーススキーマとデータをインポートする。
（バージョンが変わるとディレクトリパスも変わるのでそこは適宜）

```bash:bash
cd /usr/share/doc/zabbix-server-mysql-4.2.1/
zcat create.sql.gz | mysql -u zabbix -p zabbix
```

<br>

#### Zabbixの設定と起動
Zabbixサーバーの設定ファイルに、MySQLのZabbix用ユーザー(zabbix)のパスワードを登録する。
平文での保存になるので、アクセス権を適切に変更しておく。

```bash:bash
vi /etc/zabbix/zabbix_server.conf

#変更箇所
# DBPassword=
↓
DBPassword=＜パスワード＞
```

<br>

Zabbix 用の Apache httpd 設定を変更する。（[タイムゾーン](https://www.php.net/manual/ja/timezones.php)は自分の地域に合わせて設定する）

```bash:bash
vi /etc/httpd/conf.d/zabbix.conf

変更箇所
<IfModule mod_php5.c>
↓
<IfModule mod_php7.c>

例）
# php_value date.timezone Europe/Riga
↓
php_value date.timezone Asia/Tokyo
```

<br>

Zabbixサーバーを起動させ、自動起動を設定する。

```bash:bash
systemctl start zabbix-server
systemctl enable zabbix-server
```

<br>

Apache httpdを起動させ、自動起動を設定する。

```bash:bash
systemctl start httpd
systemctl enable httpd
```
<br>

動作確認用にZabbixエージェントを起動する。監視対象には自動起動も設定する。

```bash:bash
systemctl start zabbix-agent
systemctl enable zabbix-agent
```

<br>

Zabbixエージェントの稼働確認をする。バージョン番号が表示されればOK。

```bash:bash
zabbix_get -s 127.0.0.1 -k agent.version

例）
4.2.1
```

<br>

### 5.firewalldの設定
外部のマシンからコンソールにアクセスするため、HTTP(80/tcp) と HTTPS(443/tcp) を開ける。
Zabbixサーバー、エージェントともに同一のマシン上なので、それらの通信にかかる設定は追加していない。

```bash:bash
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
```

確認

```bash:bash
firewall-cmd --list-all
（略）
ports: 443/tcp 80/tcp
（略）
```

<br>

### 6.インストールの仕上げ
ブラウザから <サーバーのIPアドレス>/zabbix にアクセス、GUIに従ってぽちぽち
![2019-05-10 17_00_27-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/e8adf7dc-03b3-1021-8f6e-34f3f81101c0.jpeg)
![2019-05-10 17_01_11-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/be575f80-a591-e4ad-3b57-bd0bc5c92a09.jpeg)
![2019-05-10 17_02_01-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/09993525-4d60-076d-6227-a281facb8606.jpeg)
![2019-05-10 17_02_40-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/f87ee964-f9c2-e4fb-35b0-a6934251d45f.jpeg)
![2019-05-10 17_02_49-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/93c79d32-0273-8e86-b9b8-fc8478659083.jpeg)
![2019-05-10 17_02_54-Installation.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/c9dd89dc-a599-92b8-e408-9516d6c48013.jpeg)
![2019-05-10 17_03_17-Zabbix.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/05204b4d-4db8-9251-ac14-2478abd4af10.jpeg)
![2019-05-10 17_03_29-Dashboard.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/f647f995-681e-9801-b01e-7fd4d898c52c.jpeg)


不勉強なもので、使い方は他のQiitaやブログ等を参考に…