buser 发表于 2019-1-1 07:09:23

菜鸟学Linux 第093篇笔记 keepalived-Winthcloud

  菜鸟学Linux 第093篇笔记 keepalived
  内容总览
  keepalived介绍
  配置keepalived的ipvs功能
  keepalived的几个问题解决方法
  keepalived
  它可以实现ipvs的功能,并且还可以实现前端的ipvs-server高可用,以及后台realserver
  的健康状态检查,而不像ipvs需要用户自己来写脚本完成后台的realserver健康状态检测
  HA的底层功能
  ipvs --> ha 为ipvs提供高可用功能ha
  ipvs --> 可以使VIP在节点间流转
  vrrp 虚拟路由冗余协议
  能将多个物理接口虚拟成一个物理接口,用来解决局域网网关的冗余
  配置keepalived 使其实现ipvs的功能,可以检测后台realserver的状态
  准备工作
  两台realserver节点 192.168.11.105 192.168.11.106
  /proc/sys/net/ipv4/conf/all/arp_announce=2
  /proc/sys/net/ipv4/conf/all/arp_ignore=1
  /proc/sys/net/ipv4/conf/lo/arp_announce=2
  /proc/sys/net/ipv4/conf/lo/arp_ignore=1
  netstat -tunlp 开启80端口 (httpd)
  两台keepalived + ipvsadm节点 192.168.11.101 192.168.11.102
  虚拟的IP为192.168.11.100
  1. 两台keepalived + ipvsadm节点安装
  # yum -y install keepalived ipvsadm(安装ipvsadm软件是为了查看规则)
  2. 配置节点的keepalived /etc/keepalived/keepalived.conf
  # vim /etc/keepalived/keepalived.conf
  修改如下
  global_defs {
  notification_email {
  root@localhost (此项里是添加email地址,当有信息是将通知到此mail里)
  }
  notification_email_from keepalive@localhost (寄件人)
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 101
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass keepaliveps
  }
  virtual_ipaddress {
  192.168.11.100/24 dev eth0 label eth0:0(所虚拟的地址)
  }
  }
  virtual_server 192.168.11.100 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  nat_mask 255.255.255.0
  #persistence_timeout 50
  protocol TCP
  real_server 192.168.11.105 80 {
  weight 1
  HTTP_GET { (验证http的方式)
  url {
  path /
  status_code 200
  }
  connect_timeout 2
  nb_get_retry 3
  delay_before_retry 1
  }
  }
  real_server 192.168.11.106 80 {
  weight 1
  HTTP_GET {
  url {
  path /
  status_code 200
  }
  connect_timeout 2
  nb_get_retry 3
  delay_before_retry 1
  }
  }
  }
  备节点里只需要将此配置文件复制过去然后修改state MASTER 为备份节点即可BACKUP
  keepalived的几个问题解决
  1. 所有realserver都down,如何处理?
  在两台前端ipvs服务器安装httpd 并开启此服务 记得要添加html文档
  在配置文件/etc/keepalived/keepalived.conf
  virtual_server 192.168.11.100 80 括号里添加sorry_server 127.0.0.1 80
  2. 自写监测脚本,完成维护模式切换ipvs-server主备切换
  # vim /etc/keepalived/keepalived.conf
  在vrrp_instance 添加一段
  track_script {
  chk_schedown
  }
  添加一段在末尾
  vrrp_script chk_schedown {
  script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
  interval 1
  weight -2
  fall 2
  rise 1
  }
  当要测试使其ipvs服务器切换只需要在/etc/keepalived/目录创建一个down文件,查看其是否
  会切换
  3. 如何在vrrp事务发生时,主备切换时,如何发送警告邮件给指定的管理员?
  编写脚本vim /etc/keepalived/notify.sh
  #!/bin/bash
  #
  contact='root@localhost'
  Usage() {
  echo "Usage: `basename $0` {master|backup|fault} VIP"
  }
  Notify() {
  subject="`hostname`'s state changed to $1"
  mailbody="`date "+%F %T"`: `hostname`'s state changed to $1, $VIP floating."
  echo $mailbody | mail -s "$subject" $contact
  }
  VIP=$2
  case $1 in
  master)
  Notify master
  ;;
  backup)
  Notify backup
  ;;
  fault)
  Notify fault
  ;;
  *)
  Usage
  exit 1
  ;;
  esac
  此脚本可接受参数,当接受到指定的参数时,则会将相应的信息发送给root用户的mailbox里
  编辑/etc/keepalived/keepalived.conf
  在vrrp_instance 括号里添加
  notify_master "/etc/keepalived/notify.sh master 192.168.11.100"
  notify_backup "/etc/keepalived/notify.sh backup 192.168.11.100"
  notify_fault "/etc/keepalived/notify.sh fault 192.168.11.100"
  至此,当主节点和备节点切换时,,则会以邮件形式通知给root

页: [1]
查看完整版本: 菜鸟学Linux 第093篇笔记 keepalived-Winthcloud