Zabbix6.4のインストール手順(Rocky Linux9+Azure Database for MySQL Flexible Server)
Azure環境上でのZabbix6パッケージインストール手順纏めです。
Rocky Linux 9の仮想マシン(Azure VM)とAzure Database for MySQL フレキシブル サーバー(Flexible Server)の組み合わせで構築しています。
-
- Zabbixパッケージインストール
- MySQLクライアントインストールから設定
- zabbix_server.conf設定
- SELinux設定
- エラー対応
- Zabbix frontend設定
※Azure Database for MariaDBが廃止になるためMySQL フレキシブル サーバー(Flexible Server)を利用した手順に更新しました。
リソース準備
環境
同じ仮想ネットワーク内に仮想マシン(Azure VM)とAzure Database for MySQL フレキシブル サーバーを作成し利用しています。
使用したバージョンです。
-
- Web ServerはApacheを利用しています
- Zabbixのバージョンは6.4を利用しています
- Rocky Linuxは9.3を利用しています。
- Azure Database for MySQL フレキシブル サーバーは8.0を利用しています
リソースの設定内容です。
仮想マシン (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統合 (test-vnet-01/mysql-snet-01) |
仮想マシン(Azure VM)を準備
Zabbix Serverとなる仮想マシン(Azure VM)を準備します。
MarketplaceにあるRocky Linux 9のイメージを利用して作成してます。
B1sなどの小さすぎる仮想マシンサイズを選択するとデプロイに失敗します。
今回はStandard B2sを利用しています。
Azure Database for MySQLフレキシブル サーバーを準備
こちらの参考を手順に作成します。
ネットワークはVNET統合を利用しローカルからのアクセスのみとしています。
今回は検証目的なのでB1msを利用してます。
Zabbixインストール
公式サイトのインストール手順を参考に進めます。
日本語ロケールをインストール
仮想マシン(Azure VM)に日本語ロケールをインストールします。
英語のロケールも一緒にインストールしています。
英語のロケールが存在しない時にZabbixのGUIでエラーになる事があったので一緒にインストールしています。
locale -aでインストールされているロケールを確認しています。
ja_jp.utf8などZabbixで利用するロケールがインストールされている事が確認出来ます。
[root@vm-zabbix-01 ~]#
locale -a |
※dnf search locale jaのコマンドを実行すると日本語パッケージ名が表示されます。
Zabbixリポジトリをインストールする
Zabbixのリポジトリをインストールします。
インストール後はキャッシュクリアします。
[root@vm-zabbix-01 ~]#
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm |
Zabbixパッケージインストール
Zabbix関連のパッケージをインストールします。
[root@vm-zabbix-01 ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
※利用するプラットフォームによってインストールするパッケージが異なります。公式サイトのインストール手順を確認します。
MySQL Clientをインストール
Zabbix ServerからAzure Database for MySQLフレキシブル サーバーに接続するためにMySQL Clientをインストールします。
MySQL Yum リポジトリを使用して MySQL を Linux にインストールする
MySQL Community Downloads
[root@vm-zabbix-01 ~]#
dnf localinstall https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm |
リポジトリのバージョン確認方法です。
MySQL Communityリポジトリのバージョン確認 | |
コマンド実行時にはサイトで確認したバージョンを指定します。
|
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 –ssl-mode=REQUIRED mysql>
create database zabbix character set utf8mb4 collate utf8mb4_bin; #アクセス元を制限しない場合 |
※管理者ユーザーとパスワードはAzure Database for MySQLフレキシブル サーバー作成時に設定したユーザー名とパスワードです。
※公式サイトの手順にあるglobal log_bin_trust_function_creatorsは変更できなかったため実行せずに進めています。
※Azure Database for MySQLフレキシブル サーバーではrequire_secure_transportがONになっています。–ssl-mode=REQUIREDを指定して暗号化接続しています。
Azure Database for MySQLフレキシブル サーバー側でもサーバパラメータを修正しています。
サーバパラメータ修正 | |
Azure Database for MySQLフレキシブル サーバーの左側のメニューでサーバパラメータを選択します。 character_set_server:utf8mb4
|
初期スキーマとデータをインポート
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 -u zabbix |
zabbix_server.confの設定
zabbix_server.confでDBPasswordとDBHostの設定をします。
[root@vm-zabbix-01 ~]#
sed -i -e “s/^# DBPassword=/DBPassword=MySQL上のzabbixユーザーのパスワード/g" /etc/zabbix/zabbix_server.conf #設定内容(/etc/zabbix/zabbix_server.conf) |
※DBへの接続情報はzabbix_server.conf(Zabbix Server)とzabbix.conf.php(Web UI)に持ちます。
SELinuxの設定
SELinuxを設定します。
ZabbixのWebインターフェースとサーバー間の通信を有効にします。
ネットワーク経由でデータベースにアクセスするためhttpd_can_network_connect_dbもONにします。
[root@vm-zabbix-01 ~]#
setsebool -P httpd_can_connect_zabbix on |
※RockyLinux9でのSELinux無効化はこちらに纏めています。SELinux無効化は推奨されませんのでご注意ください。
起動設定
Zabbix Serverやエージェント関連のプロセスを開始設定をします。
httpdやphp-fpmも設定します。
[root@vm-zabbix-01 ~]#
systemctl restart zabbix-server zabbix-agent httpd php-fpm |
エラーが発生
この状態ではZabbix Serverが起動エラーになります。
設定を進める事は出来るのですが、設定完了後の画面でZabbix server is runningがNoになります。
zabbix_server.logにはconnection to database 'zabbix’ failedのログが出ておりデータベースとの接続に失敗している事が確認出来ます。
audit.logにdeniedのログが出ておりSELinuxのエラーが発生している事が確認出来ます。
#Zabbix Serverログ(/var/log/zabbix/zabbix_server.log) #audit.logログ(/var/log/zabbix/zabbix_server.log) |
追加設定
Azure Database for MySQLフレキシブル サーバーではrequire_secure_transportがONになっています。
MySQL encryption configurationやSELinuxに追加設定が必要になります。
DBTLSConnect=requiredをzabbix_server.confに追記します。
併せてSELinuxで追加の許可設定をします。
MySQL encryption configuration
[root@vm-zabbix-01 ~]#
setsebool -P zabbix_can_network on |
※require_secure_transportをoffに変更する事でも対応可能です。
—広告—
Zabbix frontendをセットアップ
初期設定
ブラウザでhttp://Zabbix ServerのIPアドレス/zabbixへアクセスしてセットアップを再開します。
Database hostにはAzure Database for MySQLフレキシブル サーバーのサーバ名を設定します。
-
- DBの設定情報
- Database type:MySQL
- Database host:mysql-zabbix-01.mysql.database.azure.com
- Database name:zabbix
- User:zabbix
- Password:Zabbixユーザー(MySQL)のパスワード
- Database TLS encryption:チェックを入れる
- DBの設定情報
※DBへの接続設定内容は/etc/zabbix/web/zabbix.conf.phpに反映されます。
ログイン
Zabbix Serverへログインします。
-
- 初期ユーザー名とパスワード
- Username(ユーザー名):Admin
- Password(パスワード):zabbix
- 初期ユーザー名とパスワード
ログイン確認 | |
初期ユーザー名とパスワードを使ってログインします。 | |
Zabbix server is runningのValueがYesになっており、Zabbix Serverも稼働している事が確認出来ます。 |
※ログイン出来ても、Zabbix Serverのインストールに失敗している場合はZabbix server is runningのValueがNoになっています。
GUIを日本語化
User settingsのProfileに言語設定があります。
User settingsのProfileを選択します。 LanguageでJapanese(ja_JP)を選択します。 |
—広告—
最後に
Azure Database for MySQLフレキシブル サーバーを利用したZabbixのインストール手順について纏めてみました。
SELinuxの設定などに注意が必要でしたが、基本的には公式サイトの手順を参考に進める事が出来ました。
マネージドのデータベースを使って監視環境が作るとバックアップなども自動化できるので便利かなと思いました。
今後も色々試してみたいと思います。
メール送信は下記の方で試してみております。
Zabbixを利用したAzureのリソース監視設定方法ついてはこちらで紹介しています。