我有一个使用 pacemaker 和 cman 的 Zabbix 主动/被动集群。但是,我在“pcs status”中看到以下内容,并且在故障转移期间 zabbix-server 服务未启动。但是浮动 IP 可以正常转移。
操作系统 CentOS 6.6 Zabbix 2.4
[root@abc-zabserver-b cluster]# rpm -qa | grep cman
cman-3.0.12.1-68.el6_6.1.x86_64
[root@abc-zabserver-b cluster]# rpm -qa | grep pacemaker
pacemaker-cluster-libs-1.1.12-4.el6.x86_64
pacemaker-1.1.12-4.el6.x86_64
pacemaker-libs-1.1.12-4.el6.x86_64
pacemaker-cli-1.1.12-4.el6.x86_64
[root@abc-zabserver-b ~]# rpm -qa | grep corosync
corosync-1.4.7-1.el6.x86_64
corosynclib-1.4.7-1.el6.x86_64
这是错误
[root@abc-zabserver-b cluster]# pcs status
Cluster name: abc-zabvip
Last updated: Mon Jul 13 08:01:57 2015
Last change: Thu Jul 2 17:01:48 2015
Stack: cman
Current DC: abc-zabserver-a - partition with quorum
Version: 1.1.11-97629de
2 Nodes configured
2 Resources configured
Online: [ abc-zabserver-a abc-zabserver-b ]
Full list of resources:
Resource Group: zabbix-cluster
ClusterIP (ocf::heartbeat:IPaddr2): Started abc-zabserver-a
zabbix-server (lsb:zabbix-server): Stopped
Failed actions:
zabbix-server_monitor_5000 on abc-zabserver-a 'not running' (7): call=541, status=complete, last-rc-change='Mon Jul 13 08:01:57 2015', queued=0ms, exec=0ms
这是 cluster.conf
<cluster config_version="9" name="abc-zabvip">
<fence_daemon/>
<clusternodes>
<clusternode name="abc-zabserver-a" nodeid="1">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="abc-zabserver-a"/>
</method>
</fence>
</clusternode>
<clusternode name="abc-zabserver-b" nodeid="2">
<fence>
<method name="pcmk-redirect">
<device name="pcmk" port="abc-zabserver-b"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" port="5405" transport="udpu" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_pcmk" name="pcmk"/>
</fencedevices>
<rm>
<failoverdomains/>
<resources/>
</rm>
</cluster>
这是 /etc/sysconfig/cman
CMAN_QUORUM_TIMEOUT=0
我在这个集群上进行的一些其他配置
pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.99.122.69
cidr_netmask=24 op monitor interval=5s
pcs property set stonith-enabled=false
pcs resource create zabbix-server lsb:zabbix-server op monitor interval=5s
pcs resource group add zabbix-cluster ClusterIP zabbix-server
pcs property set no-quorum-policy=ignore
pcs property set default-resource-stickiness="100"
zabbix_server.log 中的错误
listener failed: zbx_tcp_listen() fatal error: unable to serve on any address [[-]:10051]
Zabbix 服务器进程正在运行,但是服务没有运行
[root@abc-zabserver-b zabbix]# service zabbix-server status
zabbix_server is stopped
[root@abc-zabserver-b zabbix]# ps afx | grep -i zabbix
26835 pts/0 S+ 0:00 | \_ grep -i zabbix
2867 ? S 0:00 zabbix_server: poller #50 [connecting to the database]
2926 ? S 0:00 zabbix_server -c /etc/zabbi/zabbix_server.conf
2962 ? S 0:00 zabbix_server -c /etc/zabbi/zabbix_server.conf
[root@abc-zabserver-b zabbix]# service zabbix-server status
zabbix_server is stopped
pcs 配置显示
[root@abc-zabserver-b zabbix]# pcs config show
Cluster Name: abc-zabvip
Corosync Nodes:
abc-zabserver-a abc-zabserver-b
Pacemaker Nodes:
abc-zabserver-a abc-zabserver-b
Resources:
Group: zabbix-cluster
Resource: ClusterIP (class=ocf provider=heartbeat type=IPaddr2)
Attributes: ip=10.99.122.69 cidr_netmask=24
Operations: start interval=0s timeout=20s (ClusterIP-start- timeout-20s)
stop interval=0s timeout=20s (ClusterIP-stop-timeout-20s)
monitor interval=5s (ClusterIP-monitor-interval-5s)
Resource: zabbix-server (class=lsb type=zabbix-server)
Operations: monitor interval=5s (zabbix-server-monitor-interval-5s)
Stonith Devices:
Fencing Levels:
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Cluster Properties:
cluster-infrastructure: cman
dc-version: 1.1.11-97629de
default-resource-stickiness: 100
no-quorum-policy: ignore
stonith-enabled: false
答案1
这是因为 Zabbix 二进制文件和配置文件之间的配置不匹配导致了此问题。最糟糕的事情!