LVS健康性检查ldirectord Alex

ldirectord:监控和控制LVS守护进程,可管理LVS规则
  包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
  下载:http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/ldirectord-3.9.6-0rc1.1.2.x86_64.rpm

  文件:
/etc/ha.d/ldirectord.cf 主配置文件
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版
/usr/lib/systemd/system/ldirectord.service 服务
/usr/sbin/ldirectord 主程序,Perl实现
/var/log/ldirectord.log 日志
/var/run/ldirectord.ldirectord.pid pid文件

一、安装ldirectord

yum install ldirectord-3.9.6-0rc1.1.2.x86_64.rpm -y

二、复制安装文件里带的主配置范例文件到/etc/ha.d/

cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/

三、进入ha.d文件夹

cd /etc/ha.d/

四、修改刚刚拷贝过来的模板文件

vim ldirectord.cf 

  1、开启日志

logfile="/var/log/ldirectord.log"
logfile="local0"

  2、修改LVS规则,什么类型的服务器,调度规则,定义了这个就不需要在手动添加ipvsadm 规则了

virtual=10.0.0.100:80
        real=192.168.1.5:80 gate
        real=192.168.1.6:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr

  3、关闭这两项,暂时没啥用,视情况而定,是否要开启

 #receive="Test Page"
  #virtualhost=www.x.y.z

 模板文件解释

checktimeout=3         #三秒不回应,就当你有故障
checkinterval=1         #一秒查一次
#一秒查一次,三次不回应就将后端的RS服务器从LVS规则中剔除
fallback=127.0.0.1:80  #万一RS服务器都宕机了,这个机器对外声明
fallback6=[::1]:80
logfile="/var/log/ldirectord.log" #将日志写到指定的位置
logfile="local0"              #将日志写到/var/log/messages
quiescent=no  #down时yes权重为0,no为删除,权重为0,优先级是最低的,也不会调度
virtual=10.0.0.100:80      #调度服务器地址,如果是防火墙标签,就写防火墙标签的号就行
real=192.168.6.2:80 gate  #后端的RS服务器,gate 就是DR模型
fallback=127.0.0.1:80 gate  #道歉服务器
request="index.html"          #请求访问的页面
receive="Test Page"           #返回的数据,有什么东西                    

五、在LVS服务器上添加用于外部访问的IP地址(视情况而定)

ifconfig lo:1 10.0.0.100/24

六、开启ldirectord服务

systemctl start ldirectord

七、在LVS服务器上添加道歉页面,如果后端RS服务器都不能访问了,就让用户可以直接访问到LVS服务器上的道歉页面

  1、安装httpd 服务

yum install httpd -y

  2、启动服务,并设置为开机自启

systemctl start httpd

systemctl enable httpd

  3、生成道歉页面

echo sorry > /var/www/html/index.html

  4、添加路由,指定路由服务器的地址为网关

route add default gw 192.168.1.3

 八、关闭后端一台服务器,测试访问,会在ipvsadm删除宕机的那台服务器

#while : ; do curl 10.0.0.100  ; sleep 0.5 ; done
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1
192.168.1.5 _______RS1_________________________RS1

九、关闭所有的后端服务器,会自动调度到道歉服务器

while : ; do curl 10.0.0.100  ; sleep 0.5 ; done
sorry
sorry
sorry
sorry
sorry

十、当后端服务器可以正常访问时,会自动修改ipvsadm规则,自动调度到可以访问的服务器,不会立即调度到对应的服务器上的,有几秒钟的延迟

 

原文地址:https://www.cnblogs.com/alexlv/p/14808043.html