Pacemaker で Zabbixサーバ をHAクラスタ化してみた (インストール編)

どうも、サイオステクノロジー 山田です。
本記事は Pacemaker を利用して Zabbixサーバ をHAクラスタ化するという内容になります。
このブログが開設されて数年立ちますが、以外にもまだ Pacemaker を話題にした記事がないので、書こうと思った次第です。

さて、本記事は3部程に分けて掲載しようと考えております。
・インストール編
・リソース登録編
・動作確認編

なので、生暖かくお付き合い頂ければと思います。

Pacemaker とは

Pacemaker とは、Linux系システムで利用可能なオープンソースソフトウェアのHAクラスタソフトです。
現在の最新バージョンでは Pacemaker/Corosync で構成されることが推奨されていますが、以前は Pacemaker/Heartbeat という構成でした。
その他に Pacemaker/Corosync の構成ツールである pcs も必要になります。

Pacemaker:リソース制御機能を担当するクラスタ基盤ソフト
Corosync:クラスタ制御機能を担当するクラスタ基盤ソフト
pcs:上記の構成ツール(コマンド郡)

もし、Red Hat Enterprise Linux にて、Pacemaker/Corosync を利用する場合のサポートは OS ライセンスとは別途に、High Availability Add-On というライセンスを購入する必要があるためご注意ください。
では早速、構築をしてみます。

Pacemaker/Corosync 構築

以降はroot権限で操作し、SELinux や firewalld は無効にしています。

構成

以下のような構成を想定しています。
・ノード(CentOS7)は2台
・Zabbix は Active-Standby構成
・MariaDB は Master-Slave構成
・VIPで切り替え
pacemaker-zabbix

インストール

Pacemaker/Corosync/pcs をインストールします。
【HOST01/HOST02で以下実施】

# yum install -y corosync pacemaker pcs
# systemctl start pcsd
# systemctl enable pcsd

クラスタ認証

Pacemaker/Corosync では、HOST01/HOST02の両ノードに認証ユーザを作成し、認証を行うことで同じクラスタ内のノードであることを証明しています。
【HOST01/HOST02で以下実施】

# passwd hacluster
ユーザー hacluster のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

【HOST01で以下実施】

# pcs cluster auth [HOST01 FQDN] [HOST02 FQDN]
Username: hacluster
Password:
[HOST01]: Authorized
[HOST02]: Authorized

クラスタ設定

標準で用意されているテンプレートを利用し、クラスタ設定を行います。
【HOST01/HOST02で以下実施】

# cp -p /etc/corosync/corosync.conf.example.udpu /etc/corosync/corosync.conf
# vi /etc/corosync/corosync.conf
----------------------------------------------------------------
# Please read the corosync.conf.5 manual page
totem {
    version: 2

    cluster_name: zabbix-cluster
    crypto_cipher: none
    crypto_hash: none

    interface {
	    ringnumber: 0
	    bindnetaddr: [HOST01/HOST02 NWIPaddr]
	    mcastport: 5405
	    ttl: 1
    }
    transport: udpu
    rrp_mode: passive
}

logging {
    fileline: off
    to_logfile: yes
    to_syslog: yes
    logfile: /var/log/cluster/corosync.log
    debug: off
    timestamp: on
    logger_subsys {
	    subsys: QUORUM
	    debug: off
    }
}

nodelist {
    node {
	    ring0_addr: [HOST01 FQDN]
	    nodeid: 1
    }

    node {
	    ring0_addr: [HOST02 FQDN]
	    nodeid: 2
    }
}

quorum {
    provider: corosync_votequorum
    two_node: 1
}
----------------------------------------------------------------

## 自動フェールバック無効
# pcs resource defaults resource-stickiness=INFINITY

## エラーで即時フェールオーバー
# pcs resource defaults migration-threshold=1

## STONITH 無効
# pcs property set stonith-enabled=false

Pacemakerの内部プロセスが異常になった場合もノード故障として取り扱うようにするために、以下を実施します。
【HOST01/HOST02で以下実施】

# echo "PCMK_fail_fast=yes" >> /etc/sysconfig/pacemaker

OS起動時にクラスタを自動起動させたい場合は以下を実施して下さい。※個人的には非推奨
【HOST01/HOST02で以下実施】

# systemctl enable corosync
# systemctl enable pacemaker

起動確認

クラスタとして機能しているか確認を行う。
【HOST01で以下実施】

# pcs cluster start --all
[HOST01 FQDN]: Starting Cluster (corosync)...
[HOST01 FQDN]: Starting Cluster (corosync)...
[HOST02 FQDN]: Starting Cluster (pacemaker)...
[HOST02 FQDN]: Starting Cluster (pacemaker)...

# pcs cluster status
[root@cluster01 ~]# pcs cluster status
Cluster Status:
 Stack: corosync

PCSD Status:
  [HOST01 FQDN]: Online # Onlineになっていること
  [HOST01 FQDN]: Online # Onlineになっていること

Zabbixサーバ 構築

Zabbixサーバ や mariaDB に関しては、以下記事を参照し構築して下さい。
【HOST01/HOST02で以下実施】

使ってみよう Zabbix① : インストール編

最後に

今回は、Pacemaker/Corosync/pcs と Zabbbixサーバのインストール及びクラスタ設定までをご紹介しました。次回は各リソースの設定をメインに紹介する予定ですので、お楽しみに。

サイオステクノロジー株式会社 山田

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です