はじめに
前回まででZabbixサーバとしての機能の大半を構築しました。構成図で言うZabbixサービスのVIPを付与するために、Keepalivedを利用します。Pacemakerでも実装可能ですが、KeepalivedはPacemakerと比べて簡単に実装できるメリットがあります。ではDBはなんでPacemakerで冗長したのか?という疑問が出てきますが、Pacemakerで冗長するとレプリケーションがちゃんとできているかという情報まで取得できます。Keepalivedはあくまでも互いの疎通確認で死活を見るので、実際にZabbixサーバが主系かどうかまではKeepalivedでは見えていないです。
少し補足が長くなりましたが、実装していこうかと思います。
構成図
ホスト名:zabbix-ap01
IP:172.16.1.101
構成:AlmaLinux 9、Zabbix6.0
ホスト名:zabbix-ap02
IP:172.16.1.102
構成:AlmaLinux 9、Zabbix6.0
ホスト名:zabbix-db01
IP:172.16.1.104
構成:AlmaLinux 9、PostgreSQL 13
ホスト名:zabbix-db02
IP:172.16.1.105
構成:AlmaLinux 9、PostgreSQL 13
インストール
dnfコマンドでインストールできます。
1 |
# dnf install -y keepalived |
設定
/etc/keepalived/keepalived.conf を編集します。
なお、confはzabbix-ap01、02で書く内容が変わることに注意してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
! Configuration File for keepalived global_defs {} vrrp_track_process track_httpd { process httpd weight 10 } vrrp_track_process track_php-fpm { process php-fpm weight 10 } vrrp_track_process track_zabbix { process /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf full_command weight 10 } vrrp_instance VI_100 { interface ens192 state BACKUP virtual_router_id 100 priority 100 virtual_ipaddress { 172.16.1.100 } track_process { track_httpd track_php-fpm track_zabbix } unicast_peer { 172.16.1.102 } } |
補足
おおよそパラメータを見れば意味が分かりそうですが、補足しておきます。
vrrp_track_process
Keepalivedで監視するプロセスを指定します。上記の例ではhttpd、php-fpm、zabbix-serverのプロセスを監視するための設定が記載されています。
vrrp_instance
VIPの設定を記載します。「state BACKUP」とすることで、先に起動した方を主系にすることができます。MASTERとした場合、起動順に関係なくVIPを遷移させることができます。
「virtual_ipaddress」でVIPのIPを指定し、「unicast_peer」で対向のIPを指定します。上記は172.16.1.102としているので、これはzabbix-ap01用の設定です。
ちなみに、「unicast_peer」がないと、マルチキャストを送信することで対向と疎通しようとするので、余計なトラフィックを抑えるために設定することをお勧めします。
構築については、以上となります。お疲れ様でした。
起動・停止については別途まとめることにします。