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