ZabbixサーバーのHAクラスター構成手順(7.0 LTS)

Azure,Database For MySQL,Others,Zabbix

ZabbixサーバーのHAクラスター構成手順です。
Zabbixサーバーの準備、HAクラスターの構成、Webインターフェイスの設定、Zabbixエージェントの設定などの手順を確認しています。
HAクラスターのステータス確認方法も紹介しています。

Rocky Linux 9の仮想マシン(Azure VM)とAzure Database for MySQL フレキシブル サーバーを組み合わせて構築した、Zabbixサーバーを利用してます。

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

スポンサーリンク

HAクラスターを構成するZabbixサーバーの準備

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

HAクラスターを構成するZabbixサーバーを2台準備しています。
データベースには、Azure Database for MySQL フレキシブル サーバーを利用しています。

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

※仮想マシンとAzure Database for MySQL フレキシブル サーバーは、同じ仮想ネットワーク内に作成して利用しています。

HAクラスターを構成するZabbixサーバーを準備

HAクラスターを構成するZabbixサーバーを準備します。
Zabbixサーバーのインストール手順については、こちらで紹介しています。

Zabbixサーバー 2号機では初期データベースの作成は必要ありません

HA構成では、1つのデータベースを共有して利用します。
そのため、2号機では初期データベース作成手順は不要です。
ただし、2号機からデータベースに接続するためのデータベースユーザーは必要です。
権限を割り当てるデータベースの設定は、1号機と同じにする必要があります。

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

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

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

Zabbixサーバー 2号機でもZabbix Web インターフェイスの設定は必要

2号機でも、Zabbix Webインターフェイスの初期設定が必要です。
Zabbix Webインターフェイスで利用するhttpdやphp-fpmを起動します。
安全に作業を行うために、Zabbixサーバーは停止しておきます。

[root@vm-zabbix-02 ~]# systemctl start httpd php-fpm

Zabbix Web インターフェイス起動後、初期設定を行います。

http://10.0.1.7(Zabbixサーバー2号機IPアドレス)/zabbix

設定内容は1号機と同様になります。

—広告—

ZabbixサーバーのHAクラスター構成手順

Zabbixの公式サイトを参考にして、HAクラスター構成の手順を確認します。
ZabbixサーバーのHAクラスター構成はアクティブ/スタンバイ構成となります。

高可用性(HA)

zabbix_server.confでHAノード名やノードのアドレスを設定

zabbix_server.confファイルで、HANodeNameとNodeAddressを設定します。
HANodeNameは、HA構成を行うサーバー内で一意である必要があります。
今回は1号機をzabbix01、2号機をzabbix02としています。

NodeAddressは、Zabbix Webインターフェイスが Zabbix Server にアクセスする際に使用されます。
NodeAddressには、Zabbix Server 自身の IP アドレスを指定します。

# Zabbix Server 1号機でHAの設定
[root@vm-zabbix-01 ~]#
vi /etc/zabbix/zabbix_server.conf

HANodeName=zabbix01
NodeAddress=10.0.1.6

# Zabbix Server 2号機でHAの設定
[root@vm-zabbix-02 ~]#
vi /etc/zabbix/zabbix_server.conf

HANodeName=zabbix02
NodeAddress=10.0.1.7

※NodeAddressはIPアドレスではなく、名前解決できるホスト名でも問題ありません。今回の場合であれば、vm-zabbix-01、vm-zabbix-02という設定でも問題ありません。

HAクラスター構成に合わせてWeb インターフェイスの設定を修正

Zabbixサーバーのアドレスはデータベースから取得されます。
そのため、Webインターフェイスの設定からZabbixサーバーの値をコメントアウトする必要があります。
通常は空白の状態ですが、値が設定されている場合はコメントアウトします。

# Zabbix Server 1号機のWebインターフェイス設定を確認
[root@vm-zabbix-01 ~]#
vi /etc/zabbix/web/zabbix.conf.php
// $ZBX_SERVER = ";
// $ZBX_SERVER_PORT = ";

# Zabbix Server 2号機のWebインターフェイス設定を確認
[root@vm-zabbix-02 ~]# vi /etc/zabbix/web/zabbix.conf.php
// $ZBX_SERVER = ";
// $ZBX_SERVER_PORT = ";

※設定ファイルを修正した場合は、httpdとphp-fpmを再起動します。

HAクラスターを有効化してステータスを確認

Zabbixサーバーを再起動して設定を反映します。
HAクラスターのステータスを確認する場合は、zabbix_server -R ha_statusコマンドを利用します。

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

# Zabbix Server 1号機でHAのステータスを確認
[root@vm-zabbix-01 ~]#
zabbix_server -R ha_status
Failover delay: 60 seconds
Cluster status:
# ID Name Address Status Last Access
1. cm9dzb76y0001e6ga7b13uab7 zabbix01 10.0.1.6:10051 active 5s

# Zabbix Server 2号機のZabbix Serverを起動
[root@vm-zabbix-02 ~]#
systemctl start zabbix-server

# Zabbix Server 1号機でHAのステータスを確認
[root@vm-zabbix-01 ~]#
zabbix_server -R ha_status

Failover delay: 60 seconds
Cluster status:
# ID Name Address Status Last Access
1. cm9dzb76y0001e6ga7b13uab7 zabbix01 10.0.1.6:10051 active 5s
2. cm9dzdse30001srubb9bi96o8 zabbix02 10.0.1.7:10051 standby 8s

※zabbix_server -R ha_statusコマンドは、アクティブなノードのみで実行できます。
※2号機のZabbixサーバーの自動起動設定も、systemctl enable zabbix-serverで有効化します。

HAクラスターの設定状況やステータスはシステム情報で確認

HAクラスター設定の有効/無効やステータスは、システム情報から確認できます。
HAクラスターは2台だけではなく、3台以上でも構成可能です。
その場合でもアクティブなZabbixサーバーは1台だけになります。

HAクラスターのステータスを確認
システム情報にHAクラスターの項目があります。
HAクラスターの有効/無効や、アクティブなノードを確認できます。
システム情報でHAクラスター設定やステータスを確認(Zabbix サーバーのHAクラスター構成手順)

Webインターフェイスは1号機、2号機共に利用できる

Webインターフェイスは1号機、2号機ともに利用できます。

Webインターフェイスを確認
Webインターフェイスは1号機、2号機共に利用できます。 HAクラスター構成状態でWebインターフェイスへアクセス(Zabbix サーバーのHAクラスター構成手順)
HAクラスター構成状態でWebインターフェイスへアクセス(Zabbix サーバーのHAクラスター構成手順)

アクティブなノードを切り替え

アクティブなノードを手動で切り替えることはできません。
Zabbix Serverを再起動してノードを切り替えます。
アクティブなノードが2号機に切り替わっていることが確認できます。

# 1号機でZabbix Serverを再起動
[root@vm-zabbix-01 ~]#
systemctl restart zabbix-server

# Zabbix Server 1号機でHAのステータスを確認
[root@vm-zabbix-01 ~]#
zabbix_server -R ha_status
Runtime commands can be executed only in active mode

# Zabbix Server 2号機でHAのステータスを確認
[root@vm-zabbix-02 ~]#
zabbix_server -R ha_status

Failover delay: 60 seconds
Cluster status:
# ID Name Address Status Last Access
1. cm9dzb76y0001e6ga7b13uab7 zabbix01 10.0.1.6:10051 standby 4s
2. cm9dzdse30001srubb9bi96o8 zabbix02 10.0.1.7:10051 active 3s

※zabbix_server -R ha_statusコマンドは、アクティブなノードのみで実行できます。

システム情報でアクティブなノードを確認

システム情報で、アクティブなノードを確認します。

アクティブなノードをシステム情報で確認
2号機がアクティブになっていることが確認できます。 フェイルオーバー後のHAクラスター状態を確認(Zabbix サーバーのHAクラスター構成手順)

Zabbix エージェントの状態がエラーになる

デフォルトでは、Zabbixエージェントの設定はローカルアドレス(127.0.0.1)を参照するようになっています。
HAクラスターを構成に変更した場合、Zabbixエージェントの状態がエラーとなります。

Zabbixエージェントの状態
エージェントの状態がエラーに変わっています。 Zabbix Agentの状態(Zabbix サーバーのHAクラスター構成手順)

Zabbixエージェントの設定ファイルを修正

Zabbixエージェントの設定ファイルを修正します。
Serverでは、パッシブ通信を受け入れるZabbixのアドレスを指定します。
ServerActiveでは、アクティブ通信の送信先となるZabbixサーバーのアドレスを指定します。
いずれも、HAノードを構成するすべてのZabbixサーバーのアドレスを指定します。

併せて、ホスト名も修正しています。

# Zabbix Server 1号機のzabbix_agent2.confの設定を修正
[root@vm-zabbix-01 ~]#
vi /etc/zabbix/zabbix_agent2.conf
Server=10.0.1.6,10.0.1.7
ServerActive=10.0.1.6;10.0.1.7
Hostname=Zabbix server 01

# Zabbix Server 1号機のZabbix Agentを再起動
[root@vm-zabbix-01 ~]#
systemctl restart zabbix-agent2

※Zabbix Agent 2を利用の場合です。Zabbix Agentを利用の場合は、zabbix_agent.confになります。
※今回は、Zabbixサーバー1号機のZabbix Agentの設定を修正し、確認しています。
※同様に、Zabbixサーバー2号機のZabbix Agentも設定します。Hostnameは2号機に合せて設定とします。

ホスト設定を修正

ホスト設定を修正します。
ホスト名をZabbix Agentで設定したホスト名に修正します。
インターフェイスのIPアドレスを自身のIPアドレスに変更します。

ホスト設定を修正
Zabbix serverのホスト設定を修正します。
今回は初期登録されていたZabbix serverの設定を修正しています。
ホスト設定を修正(Zabbix サーバーのHAクラスター構成手順)

※今回は、Zabbixサーバー1号機の設定を修正し、確認しています。
※同様に、Zabbixサーバー2号機のホスト設定を追加します。

修正後のZabbixエージェント状態を確認

Zabbixエージェントの設定を修正した後の状態を確認します。
修正により、エラーが解消されていることを確認できます。

Zabbixエージェントの状態を確認
エージェントの状態がグリーンになっていることが確認できます。 Zabbix Agentの状態(Zabbix サーバーのHAクラスター構成手順)

Zabbix Serverが停止している場合のステータス

Zabbixサーバーが停止している場合は、ステータスはstoppedになります。

# 2号機のZabbix Serverを停止した状態でHAの状態を確認
[root@vm-zabbix-01 ~]# zabbix_server -R ha_status
Failover delay: 60 seconds
Cluster status:
# ID Name Address Status Last Access
1. cm9dzb76y0001e6ga7b13uab7 zabbix01 10.0.1.6:10051 active 3s
2. cm9dzdse30001srubb9bi96o8 zabbix02 10.0.1.7:10051 stopped 55m 1s

—広告—

最後に

ZabbixサーバーのHAクラスター構成手順について確認しました。
非常に簡単にHAクラスター構成が組めることが分かりました。

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

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

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

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

 

 

スポンサーリンク