【Zabbix】Zabbixサーバの構築_05_Keepalived設定

Keepalived

はじめに

前回までで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コマンドでインストールできます。

# dnf install -y  keepalived

設定

/etc/keepalived/keepalived.conf を編集します。
なお、confはzabbix-ap01、02で書く内容が変わることに注意してください。

! 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」がないと、マルチキャストを送信することで対向と疎通しようとするので、余計なトラフィックを抑えるために設定することをお勧めします。

構築については、以上となります。お疲れ様でした。
起動・停止については別途まとめることにします。