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)" を選択して「次のステップ」をクリック

前提条件チェックがすべて OK を確認して「次のステップ」をクリック

Zabbix用DBの接続パスワードを入力して「次のステップ」をクリック

Zabbixサーバーの詳細画面でホスト名を設定できます。今回はとくに変更せず「次のステップ」をクリック

デフォルトのタイムゾーン "(UTC+09:00) Asia/Tokyo"を選択して「次のステップ」をクリック

Zabbix用DBと設定を確認して「次のステップ」をクリック

インストールが完了したら「終了」をクリック

Adminとデフォルトパスワードでサインイン

ダッシュボードが無事表示できました。

Zabbixサーバーで起動したエージェントも認識しています。

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版だけならよいのですが、、、正式版がリリースされるまでもう少し調査してみます。