Zabbix 4.2 インストールメモ(CentOS7 + MySQL 8.0)

Zabbix
Zabbix
スポンサーリンク

2019年3月29日、Zabbix 4.2がリリース されました。約半年ぶりのバージョンアップです。Zabbix 4.2 では、アイテムの保存前処理に JavaScript が使えるようになるなど、特に保存前処理に関する多くの機能が追加されています。そこで今回は、CentOS7.6(1810)+ MySQL 8.0 に Zabbix 4.2 をインストールする手順をまとめてみました。

Zabbix 4.2 はポイントリリース

Zabbix 4.2 は、ポイントリリースのため、次期バージョン(4.4)がリリースされるまでの期間のみサポートされるのが特徴です。常に最新の機能を使いたい場合は、ポイントリリースの Zabbix 4.2 を、もし長く同じバージョンを使いたい場合は、長期サポートリリースの Zabbix 4.0 を使うといった選択ができます。

参考資料:Zabbix サポート期間とリリースポリシー | Zabbixオフィシャル日本語サイト

Zabbix 4.2 の新機能

Zabbix 4.2 では、特にアイテムの保存前処理に関する機能が強化されていますが、ほかにもたくさんの機能が追加されています。個人的に注目した Zabbix 4.2 の新機能を2つほどご紹介いたします。

参考資料:5 What's new in Zabbix 4.2.0(Zabbix 4.2 の新機能)

HTMLメールでの通知

HTMLメールで通知 ができるようになりました。障害通知などで注目してもらいたい部分を強調することができますね。

メディアタイプの設定画面

メディアタイプの送信テスト機能

これも通知関連の機能ですが、メディアタイプ(Eメールなど)の送信テスト ができるようになりました。これまでは、メディアタイプの送信テストをするには擬似的に障害を発生させる必要がありました。ちょっと地味なところですが、設定作業が楽になりますね。

メディアタイプのテスト送信画面

下準備

下準備として MySQL 8.0 と PHP 7.3 をインストールできるように各種リポジトリを追加しておきます。

EPELリポジトリのインストール

yum -y install epel-release
yum -y update

Remiリポジトリのインストール

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

MySQLリポジトリのインストール

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

・Remi PHP7.3 リポジトリの有効化
vim /etc/yum.repos.d/remi.repo

[remi]
(略)
enabled=0
 ↓
enabled=1

vim /etc/yum.repos.d/remi-php73.repo

[remi-php73]
(略)
enabled=0
 ↓
enabled=1

SELinux無効設定

・下記を変更
vim /etc/sysconfig/selinux

SELINUX=enforcing
 ↓
SELINUX=disabled

OSを再起動します

shutdown -r now

MySQL 8.0 のインストールと設定

MySQL 8.0 のインストール

yum -y install mysql-community-devel
yum -y install mysql-community-server

・デフォルトの認証プラグインを変更します。(caching_sha2_password には対応していないようです)
vim /etc/my.cnf

#default-authentication-plugin=mysql_native_password
 ↓
default-authentication-plugin=mysql_native_password

また、MySQLログのタイムゾーンが UTC(協定世界時)になっていますので、気になるようでしたら以下の設定も追加しておきましょう。(OSのタイムゾーンが設定されます)

log_timestamps=SYSTEM

MySQLの起動と自動起動設定

systemctl start mysqld
systemctl enable mysqld

mysql_secure_installation の実行

・root ユーザーの初期パスワードの確認(初期パスワードはそのまま使うことはできませんので変更が必要です)
grep password /var/log/mysqld.log

2019-04-09T22:47:00.998332+09:00 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <初期パスワード>

この後に設定する root ユーザーの新しいパスワードは、8文字以上で英数大文字小文字と記号が含まれていないとポリシー違反で弾かれてしまいますので注意です。

参考資料:6.5.3.2 Password Validation Options and Variables | MySQL 8.0 Reference Manual

mysql_secure_installation コマンドに「--use-default」オプションを付けてを実行します。root ユーザーのパスワード変更や、不要なユーザーやDBを削除してくれます。

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: <新しいパスワード>
(略)

Zabbix 4.2 のインストール

Zabbix 4.2 の yum リポジトリの登録

rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

インストール(2019年4月10日時点のバージョンは 4.2.0-1)

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
yum -y install zabbix-agent
yum -y install zabbix-get

Zabbix データベースとユーザーの作成

MySQLに、Zabbix用のデータベース(zabbix)とユーザー(zabbix)を作成します。

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 用のデータベーススキーマとデータをインポート(バージョンが変わるとディレクトリ名の青字の部分も変わります。インストールしたバージョンにあわせて指定してください)

cd /usr/share/doc/zabbix-server-mysql-4.2.0/
zcat create.sql.gz | mysql -u zabbix -p zabbix

Zabbix サーバーの設定と起動

Zabbix サーバーの設定ファイルに、先ほど作成したMySQLのユーザー(zabbix)のパスワードを登録します。
vim /etc/zabbix/zabbix_server.conf

# DBPassword=

DBPassword=<パスワード>

・Zabbix 用の Apache httpd 設定を変更します。(タイムゾーン はご自分の地域に合わせて設定してください)
vim /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

Zabbix サーバーの起動と自動起動設定

systemctl start zabbix-server
systemctl enable zabbix-server

Apache httpd の起動と自動起動設定

systemctl start httpd
systemctl enable httpd

また、動作確認用に Zabbix エージェントも起動しておきます。

systemctl start zabbix-agent
systemctl enable zabbix-agent

Zabbix エージェントの動作確認(Zabbixのバージョンが表示されればOKです)

zabbix_get -s 127.0.0.1 -k agent.version
4.2.0

(補足)Zabbixサーバーが起動しない場合の対応

MySQL 8.0 から、デフォルトの認証プラグインが caching_sha2_password に変更されたため、特になにも設定しないで MySQLユーザーを作成するとこの caching_sha2_password が使用されます。

しかし、Zabbix など PHPで作られたほとんどの Webアプリケーションはこの caching_sha2_password に対応していないため、下のような認証エラーが発生します。

# tail -f /var/log/zabbix/zabbix_server.log
3626:20190412:041317.194 [Z3001] connection to database 'zabbix' failed: [2059] Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

そのため、MySQL 8.0 のインストールと設定 のところにも書きましたが、デフォルトの認証プラグインを mysql_native_password に変更する必要があります。

対応手順

デフォルトの認証プラグインを mysql_native_password に変更していない場合は、下記手順で対応することができます。

繰り返し起動を試みている場合があるため、一度 Zabbixサーバーを停止します。

systemctl stop zabbix-server

zabbix ユーザーのパスワードを mysql_native_password で作成しなおします。

mysql -u root -p
 
ALTER USER zabbix@localhost IDENTIFIED WITH mysql_native_password BY '<パスワード>';

Zabbixサーバーを起動します。

systemctl stop zabbix-server

Zabbixサーバーが起動していることを確認します。

systemctl status zabbix-server
(略)
4月 12 04:38:26 vb08 systemd[1]: Starting Zabbix Server...
4月 12 04:38:26 vb08 systemd[1]: PID file /run/zabbix/zabbix_server.pid not readable (yet?) after start.
4月 12 04:38:26 vb08 systemd[1]: Started Zabbix Server.

MySQL 8.0 で Zabbix(Web-UI)や WordPress などの Webアプリケーションを動かすと、ほぼここでハマります(^^;) MySQL 8.0 あるあるのひとつですね。

firewalld設定

HTTP(80/tcp) と HTTPS(443/tcp) を開けておきます。

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

・確認
firewall-cmd --list-all

public (default, active)
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
ports: 443/tcp 80/tcp ←この表示があればOK
(略)

Zabbix の初期設定

ブラウザで下記URLを開き、初期設定を開始します(IPアドレスはご自分の環境に読替えてください)
http://<IPアドレス>/zabbix/

「Next step」をクリックします。

Zabbix初期設定のトップ画面

すべて「OK」であれば「Next step」をクリックします。

Zabbixのシステム要件チェック画面

「Password」欄に、MySQLのユーザー(zabbix)のパスワードを入力し「Next step」をクリックします。

データベースの接続設定画面

そのまま「Next step」をクリックします。

Zabbixサーバーの詳細設定画面

設定した内容の最終確認です。間違えがなければ「Next step」をクリックします。

初期設定内容の確認画面

「Finish」をクリックすれば、初期設定完了です。

初期設定の完了画面

ユーザーパスワードと言語の変更

初期設定が終了すると、Zabbixのログイン画面が表示されますので、下の初期ユーザーとパスワードでログインします。

Username:Admin
Password:zabbix

Zabbixのログイン画面

[Administration]→[Users] をクリックします。

Zabbix管理画面のメニュー

Alias列の「Admin」をクリックします。

Users設定画面 Adminユーザーをクリック

Userタブを選択し、「Change password」をクリックします。

Adminユーザー情報の設定画面

パスワードの入力欄が表示されますので、パスワードを入力し、
「Language」を「Japanese(ja_JP)」に変更したら「Update」をクリックします

Adminユーザーのパスワードを入力 使用言語の変更

一度ブラウザをリロードすると日本語表示になります

日本語表示になったZabbix管理画面

初期状態でZabbixサーバー自身のホストが登録されていますので、しばらくしてから [監視データ]→[概要] で、グループ「Zabbix Servers」タイプ「データ」を選択すると、Zabbixサーバーの監視データを閲覧することができます。

監視データの表示画面

おわりに

Zabbix 4.2 で強化されたアイテムの保存前処理を活用すれば、かなりきめ細かい監視ができそうですね。ぜひ試してみたいと思います。

コメント

  1. smmzwsj より:

    検証の為のインストール時に参考にさせて頂きました。
    ありがとうございました。

    • あぱーブログ あぱーブログ より:

      >smmzwsjさん
      コメントありがとうございます。
      参考になったみたいでよかったです!

タイトルとURLをコピーしました