Zabbix 7.0 LTSのインストール手順(Rocky Linux9+Azure Database for MySQL Flexible Server)

2020-06-19Azure,Database For MySQL,Others,Rocky Linux/CentOS,Zabbix

パッケージを利用したZabbix 7.0LTSのインストール手順です。
Rocky Linux 9の仮想マシン(Azure VM)とAzure Database for MySQL フレキシブル サーバーを組み合わせて構築しています。

    • Zabbixパッケージのインストール
    • MySQLクライアントのインストールと設定
    • zabbix_server.confの設定
    • SELinuxの設定
    • 別サーバーのデータベースを利用する場合のエラー対応
    • Zabbix Web インターフェイスの設定
    • 管理者ユーザーのパスワード変更

公式サイトの手順を参考に、外部データベースを利用するための手順を含めて確認しています。

※本記事内では、Azure Database for MySQL Flexible ServerをAzureDatabase for MySQL フレキシブル サーバーとして表記しています。
※AzureDatabase for MySQL フレキシブル サーバーのバージョンは、8.0を選択しています。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※Rocky Linuxは、Rocky Linux release 9.5(Blue Onyx)を利用しています。
※Zabbixは、7.0.10を利用しています。
※ZabbixのWebインターフェイスには、Apacheを利用しています。
※手順の確認はrootユーザーで実施しています。環境に合わせてsudoコマンド利用してください。

スポンサーリンク

仮想マシン、Azure Database for MySQL フレキシブル サーバーの準備

仮想マシン、Azure Database for MySQL フレキシブル サーバーの設定値

Azure Database for MySQL フレキシブル サーバーのネットワーク設定は、プライベート アクセス(VNET 統合)としています。
仮想マシンとAzure Database for MySQL フレキシブル サーバーは、同じ仮想ネットワーク内に作成して利用しています。

リソース 項目 設定値
仮想マシン
(Azure VM)
名前 vm-zabbix-01
IPアドレス 10.0.1.6
OS Rocky Linux 9
Azure Database for MySQL
フレキシブル サーバー
名前 mysql-zabbix-01
(mysql-zabbix-01.mysql.database.azure.com)
ネットワーク プライベート アクセス
(VNET 統合)

Zabbix Server用の仮想マシンを準備

Zabbix Serverとして利用する仮想マシンを準備します。
MarketplaceにあるRocky Linux 9 のイメージを利用して作成します。

Rocky Linuxの仮想マシンを作成する手順については、こちらで紹介しています。

データベース用のAzure Database for MySQL フレキシブル サーバーを準備

データベースとして利用する、Azure Database for MySQL フレキシブル サーバーを準備します。
ネットワーク設定はプライベート アクセス(VNET)統合を利用し、ローカルからのアクセスのみに制限しています。

Azure Database for MySQL フレキシブル サーバーの作成手順については、こちらで紹介しています。

パッケージからZabbixをインストール

公式サイトのインストール手順を参考に進めます。

Zabbixパッケージインストール

Zabbixのリポジトリをインストール

Zabbixのリポジトリをインストールします。
インストール後はキャッシュをクリアします。

[root@vm-zabbix-01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
[root@vm-zabbix-01 ~]# dnf clean all
25 files removed

Zabbixのパッケージをインストール

インストールしたパッケージの一覧です。MySQL用のパッケージを利用しています。
利用するプラットフォームによって、インストールするパッケージが異なります。公式サイトのインストール手順を確認してください。

パッケージ名 概要 
zabbix-server-mysql Zabbixサーバー(MySQL用)
zabbix-sql-scripts Zabbixデータベースの初期設定用のスクリプト
zabbix-selinux-policy ZabbixのSELinuxポリシー用パッケージ
zabbix-web-mysql Zabbix Web インターフェイス(MySQL用)
zabbix-web-japanese Zabbix Web インターフェイスの日本語設定用パッケージ
zabbix-apache-conf Zabbix Web インターフェイスのApache設定用パッケージ
zabbix-agent2 Zabbix Agent 2のパッケージ

Zabbixのパッケージをインストールします。
途中の確認メッセージが表示されますが、すべてYesで進めます。

[root@vm-zabbix-01 ~]# dnf install zabbix-server-mysql zabbix-sql-scripts zabbix-selinux-policy zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-agent2
=======================
Package Arch Version Repository Size
=======================
Installing:
zabbix-agent2 x86_64 7.0.10-release1.el9 zabbix 6.0 M
zabbix-apache-conf noarch 7.0.10-release1.el9 zabbix 13 k
zabbix-selinux-policy x86_64 7.0.10-release1.el9 zabbix 299 k
zabbix-server-mysql x86_64 7.0.10-release1.el9 zabbix 2.3 M
zabbix-sql-scripts noarch 7.0.10-release1.el9 zabbix 7.5 M
zabbix-web-japanese noarch 7.0.10-release1.el9 zabbix 12 k
zabbix-web-mysql noarch 7.0.10-release1.el9 zabbix 12 k

~中略~

Zabbix Official Repository – x86_64 3.0 MB/s | 3.1 kB 00:00
Importing GPG key 0xXXXXXXXX:
Userid : “Zabbix LLC (Apr 2024) <packager@zabbix.com>"
Fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-XXXXXXXX
Is this ok [y/N]: y
Key imported successfully
Zabbix Official Repository (non-supported) – x8 3.0 MB/s | 3.1 kB 00:00
Importing GPG key 0xXXXXXXXX:
Userid : “Zabbix LLC (Jul 2022) <packager@zabbix.com>"
Fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-XXXXXXXX
Is this ok [y/N]: y
Key imported successfully

~中略~

Complete!

MySQL Clientをインストール

サーバーからAzure Database for MySQL フレキシブル サーバーに接続するために、MySQL Client をインストールします。

MySQL Yum リポジトリを使用して MySQL を Linux にインストールする
MySQL Community Downloads

[root@vm-zabbix-01 ~]# dnf localinstall https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
[root@vm-zabbix-01 ~]# dnf install mysql-community-client

リポジトリのバージョン確認方法です。

MySQL Communityリポジトリのバージョン確認

コマンド実行時にはサイトで確認したバージョンを指定します。

MySQL Community Downloads

 

MySQL Community Downloadsの画面(MySQL Clientのインストール)

Zabbixユーザーと初期データベース作成

MySQL上でZabbix用のデータベースとユーザーを作成します。
今回はMySQL上に作成したユーザー名はzabbixとしています。
アクセス元はZabbix Server(10.0.1.6)からのみに制限しています。

ユーザー名やデータベース名をzabbixとしていますが任意の値で設定する事が出来ます。
変更した場合は初期スキーマとデータをインポートの指定やzabbix_server.confの設定時に変更を忘れないように注意が必要です。


[root@vm-zabbix-01 ~]#
mysql -h mysql-zabbix-01.mysql.database.azure.com -u 管理者ユーザー名 -p
Enter password:管理者ユーザーのパスワード

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.02 sec)

mysql> create user 'zabbix’@’10.0.1.6’ identified by 'zabbixユーザー(MySQL)のパスワード’;
Query OK, 0 rows affected (0.02 sec)

mysql> grant all privileges on zabbix.* to 'zabbix’@’10.0.1.6’;
Query OK, 0 rows affected (0.01 sec)

#公式サイトの手順では、log_bin_trust_function_creatorsを有効化しているので設定を確認
mysql> SHOW SESSION VARIABLES LIKE 'log_bin_trust_function_creators’;
+———————————+——-+
| Variable_name | Value |
+———————————+——-+
| log_bin_trust_function_creators | ON |
+———————————+——-+
1 row in set (0.01 sec)
mysql> quit

#MySQLへのアクセス元IPアドレスを制限しない場合
mysql>
create user zabbix identified by 'zabbixユーザー(MySQL)のパスワード’;
mysql> grant all privileges on zabbix.* to zabbix;

※管理者ユーザー名とパスワードは、Azure Database for MySQL フレキシブル サーバー作成時に設定したものです。

今回は、Azure Database for MySQL フレキシブル サーバー側でも、サーバーパラメーターを修正しています。

サーバーパラメータを修正

サーバーパラメータを修正し保存します。

character_set_server:utf8mb4
collation_server:utf8mb4_bin

 

Azure Database for MySQL フレキシブル サーバーのサーバーパラメーター設定画面

Zabbixの初期データをインポート

Zabbixに関連するテーブルを作成し、データをインポートします。
パスワードは、MySQL上に作成したZabbixユーザーのパスワードを指定します。

[root@vm-zabbix-01 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -h mysql-zabbix-01.mysql.database.azure.com –default-character-set=utf8mb4 -uzabbix -p zabbix
Enter password:作成したzabbixユーザーのパスワード

※時間が少しかかります。反応がない状態となりますが、少し待ちます。

zabbix_server.confにデータベースへの接続情報を設定

zabbix_server.confに、データベースへの接続情報を設定します。
86行目あたりから、Zabbix Serverが利用する、データベースへの接続情報の設定があります。
今回は、Azure Database for MySQL フレキシブル サーバーを利用していますので、その内容に合わせて設定します。

[root@vm-zabbix-01 ~]# vi /etc/zabbix/zabbix_server.conf

DBHost=mysql-zabbix-01.mysql.database.azure.com
DBName=zabbix
DBUser=zabbix
DBPassword=作成したzabbixユーザーのパスワード

※Azure Database for MySQL フレキシブル サーバーを利用する場合は、DBTLSConnect=requiredの設定も必要になります。
※データベース名や、利用するDBユーザー名を変更した場合は、変更した内容に合わせて設定します。

SELinuxの設定

SELinuxを設定します。
Zabbix Web インターフェースとZabbix Server間の通信を許可します。
今回は、ネットワーク経由でデータベースにアクセスするため、httpd_can_network_connect_dbも許可します。

SELinuxの設定

[root@vm-zabbix-01 ~]# setsebool -P httpd_can_connect_zabbix on
[root@vm-zabbix-01 ~]# setsebool -P httpd_can_network_connect_db on
[root@vm-zabbix-01 ~]# getsebool -a |grep -e httpd_can_connect_zabbix -e httpd_can_network_connect_db
httpd_can_connect_zabbix –> on
httpd_can_network_connect_db –> on

※Azure Database for MySQL フレキシブル サーバーを利用する場合は、zabbix_can_networkを有効化する必要があります。

RockyLinux9でのSELinux無効化は、こちらで紹介しています。
SELinux無効化は推奨されませんのでご注意ください。

Zabbix Serverの設定ファイルを確認

zabbix_server.confの記載ミスが無いか確認します。
zabbix_server -T もしくは zabbix_server –test-configで

[root@vm-zabbix-01 ~]# zabbix_server -T
Validating configuration file “/etc/zabbix/zabbix_server.conf"
Validation successful

※構文のチェックのみです。設定値の記載ミスについては確認できません。

Zabbixの起動、自動起動の有効化

Zabbix ServerやZabbix Agentを起動します。
Zabbix Web インターフェイスで利用するhttpdやphp-fpmも起動します。
自動起動の設定も併せて行います。

[root@vm-zabbix-01 ~]# systemctl start zabbix-server zabbix-agent2 httpd php-fpm
[root@vm-zabbix-01 ~]# systemctl enable zabbix-server zabbix-agent2 httpd php-fpm

Zabbix Serverとデータベース間に接続が失敗している場合のエラー出力内容

Zabbix Serverとデータベース間の接続が失敗している場合には、zabbix_server.logにログが出力されます。
zabbix_server.logにはconnection to database 'zabbix’ failedのログが出力されます。
データベースとの接続に失敗している事が確認できます。

SELinuxの影響で接続に失敗している場合は、audit.logにdeniedにもログが出力されます。

5.5. Audit ログの SELinux 拒否

※設定自体は進めることができますが、Zabbixサーバーに起動状態がNoになります。

#Zabbix Serverログ(/var/log/zabbix/zabbix_server.log)
65686:20250329:084617.006 using configuration file: /etc/zabbix/zabbix_server.conf
65686:20250329:084617.022 [Z3001] connection to database 'zabbix’ failed: [2002] Can’t connect to server on 'mysql-zabbix-01.mysql.database.azure.com’ (13)

#audit.logログ(/var/log/audit/audit.log)
type=AVC msg=audit(1743205577.021:860): avc: denied { name_connect } for pid=65686 comm="zabbix_server" dest=3306 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:object_r:mysqld_port_t:s0 tclass=tcp_socket permissive=0

外部データベースとの接続する場合の設定をSELinuxとzabbix_server.confに追加

Azure Database for MySQLフレキシブル サーバーではrequire_secure_transportがONになっています。
zabbix_server.confにDBTLSConnect=requiredを追加します。
設定は900行目前後にあります。

MySQL encryption configuration

SELinuxでzabbix_can_networkの許可設定を追加します。

#zabbix_server.confにDBTLSConnect=requiredを追加
[root@vm-zabbix-01 ~]#
echo DBTLSConnect=required >> /etc/zabbix/zabbix_server.conf

#zabbix_can_networkの許可を追加
[root@vm-zabbix-01 ~]# setsebool -P zabbix_can_network on

#Zabbix Serverを再起動して設定を反映
[root@vm-zabbix-01 ~]# systemctl restart zabbix-server

※Azure Database for MySQLフレキシブル サーバーのサーバーパラメーターをrequire_secure_transportをoffに変更する事でも対応可能です。

—広告—

Zabbix Web インターフェイスの設定から初期サインインまで

Zabbix Web インターフェイスの初期設定

以下のアドレスにアクセスして、Zabbix Web インターフェイスの初期設定を行います。

http://10.0.1.6(Zabbix ServerのIPアドレス)/zabbix

なお、今回の環境の場合のデータベースの設定情報は以下の通りになります。

    • データベースの設定情報
      • データベースタイプ : MySQL
      • データベースホスト : mysql-zabbix-01.mysql.database.azure.com
      • データベースポート : 3306(もしくは0)
      • データベース名 : zabbix
      • 資格情報保存先 : プレーンテキスト
      • ユーザー : zabbix(MySQLで作成したユーザー)
      • パスワード : Zabbixユーザーのパスワード(MySQLで設定したパスワード)
      • データベース接続のTLS暗号化 : チェックを入れる

データベースホストは、接続するAzure Database for MySQLフレキシブル サーバーのサーバー名を指定します。
データベースポートは、MySQLのポート番号を指定します。
ユーザー名とパスワードは、MySQL上で作成したユーザー名とパスワードを指定します。

Azure Database for MySQLフレキシブル サーバーではrequire_secure_transportがONになっています。
データベース接続のTLS暗号化を有効にします。

※コンテナの場合など、Zabbix Web インターフェイスのアドレスが異なる場合があります。

Zabbix Web インターフェイスの設定手順

初期設定画面が表示されます。
デフォルトの言語を選択します。

デフォルトの言語選択(Zabbix Web インターフェイスの初期設定手順)
前提条件のチェック画面です。
すべての項目がOKとなっていることを確認します。
NGとなっている場合は設定を確認します。
前提条件のチェック(Zabbix Web インターフェイスの初期設定手順)

データベース接続設定画面です。
各項目を設定します。

※データベースホストを設定すると、データベース接続のTLS暗号化の確認項目が表示されます。

データベースの接続設定(Zabbix Web インターフェイスの初期設定手順)
Zabbixサーバー名やデフォルトのタイムゾーンを設定します。 Zabbixサーバー名やデフォルトのタイムゾーンを選択(Zabbix Web インターフェイスの初期設定手順)
設定パラメータの確認画面です。
次のステップへ進みます。
設定パラメータの確認(Zabbix Web インターフェイスの初期設定手順)
インストールが完了すると/etc/zabbix/webに、zabbix.conf.phpが生成されます。 インストール完了画面(Zabbix Web インターフェイスの初期設定手順)

※初回設定時のみ、本画面が表示されます。再度表示したい場合は、/etc/zabbix/web/zabbix.conf.phpを削除します。

初期ユーザーでZabbixへサインイン

初期ユーザーを使って、Zabbixにサインインします。

    • 初期ユーザー名とパスワード
      • ユーザー名 : Admin
      • パスワード : zabbix

※大文字、小文字を認識します。
※5回連続でサインインに失敗すると、30秒間アカウントがロックされサインインできない状態になります。

Zabbixへサインイン
初期ユーザー名とパスワードを使ってサインインします。 Zabbix Web インターフェイスのサインイン画面
サインインすると、Zabbixの初期画面が表示されます。
Zabbixサーバーの起動も"はい"となっていることが確認できます。
Zabbixサインイン後のデフォルト表示画面

※Zabbix Serverのインストールに失敗している場合は、Zabbixサーバーの起動が"いいえ"になります。

管理者アカウントの初期パスワードを変更

ユーザー設定で、管理者アカウントの初期パスワードを変更します。

管理者アカウントのパスワードを変更
ユーザー設定のプロファイルを選択します。
言語を変更し、更新します。
Zabbix ユーザーのパスワード変更方法
  Zabbix ユーザーのパスワード変更方法

※パスワード変更を行うと、自動的にサインアウトします。

Zabbix Web インターフェイスを日本語化

ユーザー設定で、Webインターフェイスの表示言語を変更することができます。

Zabbix Web インターフェイスの言語を変更
ユーザー設定のプロファイルを選択します。
言語を変更し、更新します。
Zabbix ユーザーの表示言語変更方法

※利用できない言語は、選択できません。

—広告—

最後に

Azure Database for MySQL フレキシブル サーバーを利用したZabbixのインストール手順について確認しました。
SELinuxの設定などに注意が必要でしたが、基本的には公式サイトの手順を参考に進めることができました。
マネージドデータベースを利用することで、データベースのバックアップなどの作業が自動化されるため、便利だと感じました。

引き続き、いろいろ試してみたいと思います。

Zabbixのアクションのメール送信でSendGridを使う方法は、こちらで紹介しています。

Zabbixを利用したAzureのリソース監視設定方法ついては、こちらで紹介しています。

Zabbixをソースからインストールする手順については、こちらで紹介しています。

スポンサーリンク