我在我的 Centos Linux 上安装了 Heartbeat,它似乎部分工作正常...但我试图监控一项服务,但没有成功。只有当我重新启动主服务器时,备份服务器才会接管。在日志中我得到:
heartbeat[30476]: 2012/03/20_18:51:57 WARN: string2msg_ll: node [node1] failed authentication
heartbeat[30476]: 2012/03/20_18:51:58 WARN: string2msg_ll: node [node02] failed authentication
authkeys 是相同的(从一个复制到另一个)。这是我的 ha.cf:
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node server01.com
node server02.com
人力资源:
server01.com 38.108.117.3 aim chat
知道如何修复该问题吗?如果一个服务停止,另一个服务器将接管,谢谢!E.
答案1
您使用的是 heartbeat v1 语法。如果使用该语法,则不会进行监控(默认情况下)。如果您还想进行监控,则必须转换为 v2 语法 (XML) 并添加监控方法。
关于您的配置的一些其他注意事项:
- 自动故障回复从来都不是一个好主意。你可以用它创建一个漂亮的“乒乓球”
- 仅使用两个节点进行广播不是一个好主意。请改用 ucast。
- 只有一个网络连接?享受大量裂脑带来的乐趣。
现在回到您最初的问题:这看起来好像其他节点(来自不同的集群?)尝试在同一个广播 IP 和同一个 UDP 端口上进行通信。
“您的”节点是“server01.com”和“server02.com” - 您看到另外两个节点(“node1”和“node02”)。
- 每个集群使用不同的 UDP 端口
- 使用单播而不是广播(参见上文)。
更新:如何配置单播:
RTFM(阅读美好的手册)来自rpm -qd|grep "ha.cf"
:
# Set up a unicast / udp heartbeat medium
# ucast [dev] [peer-ip-addr]
#
# [dev] device to send/rcv heartbeats on
# [peer-ip-addr] IP address of peer to send packets to
#
#ucast eth0 192.168.1.2
答案2
要监控和故障转移服务(而不仅仅是盒子),您将需要完整的 Pacemaker/Corosync/Heartbeat 设置,而不仅仅是基本 Heartbeat。如果您使用 haresources,则您正在使用基本 Heartbeat。
EPEL 的安装可以在这里找到:
ClusterLabs wiki 将有其他文件为特定服务配置 Pacemaker。