プロセスレベルでのzabbix-serverの冗長化方法について

先日、運用している監視用サーバにおいて、メモリ不足によってzabbix-serverプロセスが終了してしまい、監視が停止してしまうインシデントが発生してしまいました。(冗長構成ではありませんでした)
外部の監視サービスでzabbix-serverのプロセス監視もしていたのですが、zabbix-serverプロセス1つだけ何故か残ってしまっており、障害を検知できませんでした。

根本的な解決として、DRBD+corosync+pacemakerで冗長化をしようと思っています。
しかしながら、corosyncでは物理的にサーバがダウンしない限りフェイルオーバが発生しないように感じています。
例えば、上記のように、zabbix-serverが何らかの理由によりダウンした場合です。

このように、プロセスレベルでのダウンに対応したフェイルオーバを行うためにはどうのような方法がありますでしょうか?
ご教示お願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー misaki の写真

toshiya さん

私もちょうど「corosync+pacemaker」で仮想サーバを冗長化して・・・など動作確認をおこなっている
ところで、特に詳しいわけではありませんが、Pacemakerのリソースとして、標準でzabbixserverが存在
するのではないでしょうか?

ちなみにリソースの場所と思われるところに「zabbixserver」があります。
 # ls -l /usr/lib/ocf/resource.d/heartbeat/zabbixserver

当方の環境:
 corosync-2.3.4
 pacemaker-1.1.13

ユーザー toshiya の写真

misakiさん

ご返信ありがとうございます!
http://www.miraclelinux.com/online-service/download/docs-products-servic...
上記の資料を参考にしているのですが、「リソースレベルの障害」に記載がありました。(確認不足でお恥ずかしいです。)

ありがとうございました!

ユーザー misaki の写真

当方の環境:CentOS release 6.7 (Final)

試しにZabbixサーバを「corosync+pacemaker」で冗長構成にしてみました。

上記ocfのリソース使うとエラーが出てうまく冗長構成できませんでしたので、LSB(Linux標準の
サービス起動スクリプト)を使って、リソースを登録して起動するzabbix-serverでも冗長構成をとる
ことが出来ました。

ただし、toshiyaさんが遭遇したプロセスが一つだけ残る現象で切り替るかは、その現象を再現できま
せんでしたので確認できませんでした。
※「corosync+pacemaker」では物理的にサーバがダウンしなくても、httpdサービスなどのアプリケー
 ションレベルで冗長構成がとれます。

#参考までにcrm configure showで表示した当方の設定を以下に貼っておきます
node 1: zabbix-test \
   attributes standby=off
node 2: zabbix-test2
primitive apache apache \
   op start interval=0 timeout=40 on-fail=restart \
   op stop interval=0 timeout=60 on-fail=ignore \
   op monitor interval=10 timeout=20 on-fail=restart
primitive vip IPaddr2 \
   params ip=10.1.1.35 nic=eth0 cidr_netmask=24 \
   op start interval=0s timeout=60s \
   op monitor interval=5s timeout=20s \
   op stop interval=0s timeout=60s
primitive vipcheck VIPcheck \
   params target_ip=10.1.1.35 count=3 wait=5 \
   op start interval=0 timeout=60 on-fail=restart \
   op stop interval=0 timeout=60 on-fail=ignore \
   op monitor interval=10 timeout=60 on-fail=restart start-delay=0
primitive zabbix-server lsb:zabbix-server \
   op start interval=0 timeout=40 on-fail=restart \
   op stop interval=0 timeout=60 on-fail=ignore \
   op monitor interval=10 timeout=20 on-fail=restart
group web-group vipcheck apache vip zabbix-server
location cli-prefer-vip web-group role=Started inf: zabbix-test
property cib-bootstrap-options: \
   have-watchdog=false \
   dc-version=1.1.13-6052cd1 \
   cluster-infrastructure=corosync \
   stonith-enabled=false \
   no-quorum-policy=ignore