Amazon Linux 2にZabbix 6.0.0 alpha3 rpm版を(強引に)インストールしてみた

Amazon Linux 2にZabbix 6.0.0 alpha3 rpm版を(強引に)インストールした時のメモです。
強引にインストールして起動出来る事までを確認しただけなので
**動作保障はありません。**
またコンパイルからZabbixサーバーの起動までをトライアル・アンド・エラーで行ったので費用をかけないようEC2ではなく手持ちのKVMゲストイメージで検証しました。

- amzn2-kvm-2.0.20210617.0-x86_64.xfs.gpt.qcow2

```
Amazon Linux 2
Kernel 4.14.232-177.418.amzn2.x86_64 on an x86_64

amzn2 login:
```

## パッケージを最新化
```
$ sudo yum update -y
$ sudo systemctl reboot
```

## 開発ツールをインストール
```
$ sudo yum groupinstall -y "Development Tools"
```

## EPELリポジトリをインストール
```
$ sudo amazon-linux-extras install -y epel
```

## Software Collections(RHELSCとCentOS SCLo SIG)のリポジトリをインストール
```
$ sudo yum install -y http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
$ sudo yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm
```

## MySQL 8.0をインストールしてPATHを設定

```
$ sudo yum install -y rh-mysql80
$ echo 'export PATH=$PATH:/opt/rh/rh-mysql80/root/bin' | sudo tee /etc/profile.d/mysql80.sh
$ source /etc/profile.d/mysql80.sh
```

## MySQL 8.0を起動して初期設定
```
$ sudo systemctl enable rh-mysql80-mysqld --now
$ mysql_secure_installation
```

## Zabbixのコンパイルに必要なパッケージをインストール
```
$ sudo yum install -y \
        pcre-devel \
        openssl-devel \
        policycoreutils-devel \
        sqlite-devel \
        libxml2-devel \
        unixODBC-devel \
        net-snmp-devel \
        libssh2-devel \
        OpenIPMI-devel \
        libevent-devel \
        openldap-devel \
        libcurl-devel \
        mariadb-devel \
        java-1.8.0-openjdk-devel \
        postgresql-devel \
        gnutls-devel \
        libssh-devel \
        nginx-filesystem \
        rh-php73-php-bcmath \
        rh-php73-php-common \
        rh-php73-php-fpm \
        rh-php73-php-gd \
        rh-php73-php-json \
        rh-php73-php-ldap \
        rh-php73-php-mbstring \
        rh-php73-php-mysqlnd \
        rh-php73-php-pdo \
        rh-php73-php-xml \
        rh-php73-php-zip
```

## 最新版のGoをインストールしてPATHを設定
```
$ curl -L -O https://golang.org/dl/go1.17.1.linux-amd64.tar.gz
$ sudo tar xzf go1.17.1.linux-amd64.tar.gz -C /usr/local/
$ echo export PATH=\$PATH:/usr/local/go/bin | sudo tee /etc/profile.d/golang.sh
$ source /etc/profile.d/golang.sh
```

## Zabbixのソースをダウンロードして展開
```
$ curl -O https://repo.zabbix.com/zabbix/5.5/rhel/7/SRPMS/zabbix-6.0.0-0.3alpha3.el7.src.rpm
$ rpm -ivh zabbix-6.0.0-0.3alpha3.el7.src.rpm
$ cd rpmbuild/SPECS
```

## AmazonLinux2(RHEL7相当?)でもコンパイルできるよう強引にSPECファイルを編集
```
$ cp -a zabbix.spec zabbix.spec.orig
$ cat zabbix.spec.orig | sed \
        -e 's/>= 8/>= 7/g' \
        -e 's/postgresql-devel .*$/postgresql-devel/' \
        -e 's/libssh-devel .*$/libssh-devel/' \
        -e 's/\([ \t]\)php-/\1rh-php73-php-/g' \
        | grep -v mariadb-connector-c-devel \
        > zabbix.spec
$ diff zabbix.spec.orig zabbix.spec
```

## Zabbixをコンパイル
```
$ rpmbuild --define 'alphatag alpha3' -ba zabbix.spec
```

## Zabbixをインストール
```
$ cd ../RPMS
$ sudo yum localinstall -y \
        x86_64/zabbix-agent2-* \
        x86_64/zabbix-get-* \
        x86_64/zabbix-sender-* \
        x86_64/zabbix-server-mysql-* \
        x86_64/zabbix-web-japanese-* \
        x86_64/zabbix-web-mysql-* \
        noarch/zabbix-apache-conf-* \
        noarch/zabbix-sql-scripts-* \
        noarch/zabbix-web-6* \
        noarch/zabbix-web-deps-* \
        noarch/zabbix-web-mysql-*
```

## Zabbix用DBの設定
```
$ mysql -u root -p

mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '(接続パスワード)';
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

$ zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -u zabbix zabbix -p
Enter password: (接続パスワード)


$ echo DBPassword=(接続パスワード) | sudo tee -a /etc/zabbix/zabbix_server.conf
```

## php-fpmの設定
```
$ sudo cp -a /etc/php-fpm.d/zabbix.conf /etc/php-fpm.d/zabbix.conf.orig
$ cat /etc/php-fpm.d/zabbix.conf.orig | sed 's#/run/#/var/opt/rh/rh-php73/run/#' | sudo tee /etc/php-fpm.d/zabbix.conf
$ diff /etc/php-fpm.d/zabbix.conf.orig /etc/php-fpm.d/zabbix.conf
$ sudo ln -s /etc/php-fpm.d/zabbix.conf /etc/opt/rh/rh-php73/php-fpm.d/
```

## Zabbixサーバーを起動
```
$ sudo systemctl restart zabbix-server httpd rh-php73-php-fpm
$ sudo systemctl enable zabbix-server httpd rh-php73-php-fpm
```

## Zabbixエージェントを起動
```
$ sudo systemctl restart zabbix-agent2
$ sudo systemctl enable zabbix-agent2
```

## Zabbix初期設定

ブラウザで http://(ZabbixサーバーのIPアドレス)/zabbix/ にアクセスし
デフォルトの言語 "日本語(ja_JP)" を選択して「次のステップ」をクリック
![zabbix-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/c329f37e-d921-2d18-cd16-800a5e00c15a.png)

前提条件チェックがすべて OK を確認して「次のステップ」をクリック
![zabbix-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/2c3c7ef7-ed68-7add-9644-0c613e0b6258.png)

Zabbix用DBの接続パスワードを入力して「次のステップ」をクリック
![zabbix-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/06c64508-37dc-9f49-356a-443adb210278.png)

Zabbixサーバーの詳細画面でホスト名を設定できます。今回はとくに変更せず「次のステップ」をクリック
![zabbix-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/dba0dc3a-effa-52ca-c74b-edb8afc85830.png)

デフォルトのタイムゾーン "(UTC+09:00) Asia/Tokyo"を選択して「次のステップ」をクリック
![zabbix-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/0d085e3f-316e-ce38-74ad-4420d6c9a232.png)

Zabbix用DBと設定を確認して「次のステップ」をクリック
![zabbix-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/44b1018a-2bc2-370a-0898-cad9049e0b08.png)

インストールが完了したら「終了」をクリック
![zabbix-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/bb4878e8-4c71-53d2-6620-6ed5adf6b8c2.png)

Adminとデフォルトパスワードでサインイン
![zabbix-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/2ce680b2-749c-ec3e-afaa-db894432f76b.png)

ダッシュボードが無事表示できました。
![zabbix-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/e8107075-f702-f901-f30c-bcb900503ff0.png)

Zabbixサーバーで起動したエージェントも認識しています。
![zabbix-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246630/16692c6e-cabe-b9dd-1979-ef0c9352bca4.png)

## RHEL7系
一応Amazon Linux 2上でv6.0.0のZabbixサーバーとZabbixエージェントの起動確認が出来ましたが、オフィシャルサイトのSPECファイルにはrhel >= 8の場合にサーバーパッケージを作成するように書かれているので、Zabbix v6.0 以降ではRHEL7系はオフィシャル対象外になっちゃうんでしょうかね？

```
%if 0%{?rhel} >= 8
%{!?build_web_service: %global build_web_service 1}
%endif

%if 0%{?rhel} >= 8
%{!?build_server: %global build_server 1}
%{!?build_frontend: %global build_frontend 1}
%endif
```
alpha版だけならよいのですが、、、正式版がリリースされるまでもう少し調査してみます。