SKY BLOGBLOG

AmazonLinux2にZabbix5.0を構築

もう秋ですね~。Zabbixを構築したい季節になりました。

MSP部の岩﨑です。 新卒で入社して3年目です。 9月にAWSのSysOps アドミニストレーターアソシエイトに合格しました。ギリギリでした。

AWS上のEC2インスタンスを使用してZabbix5.0を構築してみたので、そのインストール方法について紹介します。

Zabbix構成

インストールするZabbixの構成について紹介します。

  • Zabbixのバージョン:5.0
  • OS:Amazon Linux 2
  • データベース:MariaDB
  • ウェブサーバー:Apache

Zabbix公式サイトで紹介されているインストール方法では、Amazon Linux 2とMariaDBの選択肢がないですが

Amazon Linux 2はRed Hat Enterprise Linux 7に、MariaDBはMySQLに置き換えて考えます。

■Zabbix公式サイト - Download and install Zabbix

https://www.zabbix.com/jp/download

EC2インスタンスの準備

EC2インスタンスを準備します。Amazon Linux 2のAMIを使用してEC2インスタンスを起動してください。

また、必ず以下を確認してください。

  • 作業端末からSSH接続・HTTP接続が可能なこと
  • EC2インスタンスがインターネットに接続可能なこと
  • EC2インスタンスがパブリックIPを持つこと。

インストール作業

インスタンスにログインして以下を実行していきます。

以下、実行するコマンドは太字水色で、コマンドの実行結果は細字オレンジで記載しています。

  • コマンド
  • 実行結果など

OSを最新の状態にアップデートする。

sudo yum update -y

OSのタイムゾーン設定をJSTにする(デフォルトはUTCになっています。)

sudo timedatectl set-timezone Asia/Tokyo

データベース

MariaDBをインストールして起動します。

ついでに自動起動設定をして、起動状態を確認します。

sudo yum install mariadb-server -y

sudo systemctl start mariadb && sudo systemctl enable mariadb

sudo systemctl status mariadb

MariaDBのセットアップをしていきます。

sudo mysql_secure_installation

インストールしたばかりで、ルートユーザのPWがないためEnterを押します。

Enter current password for root (enter for none):

PWを決めたいのでyを選択し、PWを決めます。以降の選択肢はすべてyでよいです。

Set root password? [Y/n] y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

・・・・・・・・・・

Thanks for using MariaDB!

セットアップが終わったので、ルートユーザでログイン確認をします。

mysql -u root -p

ログインができたら抜けます。

MariaDB [(none)]> quit;

Zabbix(Zabbixサーバー、Zabbixエージェント、Apache、php)

ここからはZabbix公式のインストール手順も参照しながらやっていきます。

Zabbix公式のインストール手順
https://www.zabbix.com/jp/download?zabbix=5.0&os_distribution=red_hat_enterprise_linux&os_version=7&db=mysql&ws=apache

Zabbix5.0用のリポジトリをインストールします。

sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

sudo yum clean all

Zabbixサーバーとエージェントをインストールします。

sudo yum install zabbix-server-mysql zabbix-agent -y

Red Hat Software Collectionsを有効化しません。

yum-config-manager --enable rhel-server-rhscl-7-rpms

公式手順にないのですが、CentOSのミラーサイトからCentOS-SCLo-scl-rhというリポジトリをインストールします。

sudo yum install http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

また、公式手順では/etc/yum.repos.d/zabbix.repoのファイルを修正して、Zabbixフロントエンドのリポジトリを有効化していますが

ここではコマンドで有効化します。

sudo yum-config-manager --enable zabbix-frontend

※やっぱり気になるので覗いてみましょう。

sudo cat /etc/yum.repos.d/zabbix.repo

以下のようになっていれば大丈夫です。

[zabbix-frontend]
...
enabled=1
...

さて、公式手順に沿ってフロントエンド部分もインストール、と行きたいのですが

以下のコマンドで利用可能なパッケージを確認すると、zabbix-web-japaneseもインストールできそうです。

sudo yum list available | grep zabbix

iksemel.x86_64                         1.4-2.el7.centos               zabbix-non-supported

iksemel-devel.x86_64                   1.4-2.el7.centos               zabbix-non-supported

iksemel-utils.x86_64                   1.4-2.el7.centos               zabbix-non-supported

pcp-export-pcp2zabbix.x86_64           4.3.2-12.amzn2.0.1             amzn2-core

pcp-export-zabbix-agent.x86_64         4.3.2-12.amzn2.0.1             amzn2-core

zabbix-agent2.x86_64                   5.0.15-1.el7                   zabbix

zabbix-apache-conf-scl.noarch          5.0.15-1.el7                   zabbix-frontend

zabbix-get.x86_64                      5.0.15-1.el7                   zabbix

zabbix-java-gateway.x86_64             5.0.15-1.el7                   zabbix

zabbix-js.x86_64                       5.0.15-1.el7                   zabbix

zabbix-nginx-conf-scl.noarch           5.0.15-1.el7                   zabbix-frontend

zabbix-proxy-mysql.x86_64              5.0.15-1.el7                   zabbix

zabbix-proxy-pgsql.x86_64              5.0.15-1.el7                   zabbix

zabbix-proxy-sqlite3.x86_64            5.0.15-1.el7                   zabbix

zabbix-sender.x86_64                   5.0.15-1.el7                   zabbix

zabbix-server-pgsql.x86_64             5.0.15-1.el7                   zabbix

zabbix-web.noarch                      5.0.15-1.el7                   zabbix-frontend

zabbix-web-deps-scl.noarch             5.0.15-1.el7                   zabbix-frontend

zabbix-web-deps-scl-php73.noarch       5.0.15-1.el7                   zabbix-frontend

zabbix-web-japanese.noarch             5.0.15-1.el7                   zabbix-frontend

zabbix-web-mysql-scl.noarch            5.0.15-1.el7                   zabbix-frontend

zabbix-web-mysql-scl-php73.noarch      5.0.15-1.el7                   zabbix-frontend

zabbix-web-pgsql-scl.noarch            5.0.15-1.el7                   zabbix-frontend

zabbix-web-pgsql-scl-php73.noarch      5.0.15-1.el7                   zabbix-frontend

※zabbix-getやzabbix-sender、zabbix-js、zabbix-java-gatewayは必要に応じてインストールしてください。

https://www.zabbix.com/documentation/5.0/manual/concepts に説明があります(英語)。


フロントエンドのパッケージをインストールします。

sudo yum install zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-web-japanese -y

事前に用意したMariaDBにZabbixの初期データを登録します。

まずは、ルートユーザでデータベースの作成とzabbixというユーザを作成します。

mysql -uroot -p

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user zabbix@localhost identified by 'password'; ※PWは好きなものを指定

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;

 
以下のコマンドでZabbixの初期データをインポートします。※先程指定したPWが必要です。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix


Zabbixサーバーの設定ファイルにデータベースのzabbixユーザのPWを書き込みます。

sudo vi /etc/zabbix/zabbix_server.conf

DBPassword=password

PHPの設定ファイルのタイムゾーン設定を書き換えます。

sudo vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Tokyo


最後にZabbixサーバーとエージェント、ApacheとPHPを起動します。

ついでに自動起動設定をして、起動状態を確認します。

sudo systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm && sudo systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

sudo systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm

Zabbixフロントエンドの設定

以下URLのserver_ipに対象EC2インスタンスのパブリックIPを入れてWebブラウザからアクセスします。

http://server_ip/zabbix

Zabbix5.0の画面が表示されます。

[Next step]をクリックしていきます。

設定画面が以下の順で出てくるので、適宜必要な情報を入力します。

  1. Check of pre-requisites
  2. Configure DB connection ※Passwordを入力します。
  3. Zabbix server details ※Nameを入力してください。ここには好きな名前を入れます。
  4. Pre-installation summary

最後に、入力した設定情報に誤りがないか確認したら[Finish]をクリックしてください。

ログイン画面が表示されるので、以下の情報でログインします。

  • Username:Admin
  • Password:zabbix

無事、ダッシュボード画面までたどり着けました。

日本語表示にしたい方はユーザ設定から言語を日本語に変更が可能です。

最後に

長くなりましたが、ここまでZabbix5.0をAmazon Linux 2にインストールして、ブラウザでフロントエンドの設定完了までを紹介しました。

実際Zabbixは監視ソフトウェアですので、ここからが本番です。

初心者の方には、ドキュメントにあるクイックスタートを参照して基本的な操作を身に着けていただければと思います。

https://www.zabbix.com/documentation/5.0/manual/quickstart

構築がめんどくさい!という方にはAWSにZabbix公式のAMI(MySQL+Nginx)があるので、利用してみてください。

■AWS Marketplace - Zabbix server virtual appliance 5.0 Medium Performance

https://aws.amazon.com/marketplace/pp/prodview-uylpw3vayhrd4?qid=1599034942336&sr=0-5&ref=_ptnr_web_download