使用keepalived搭建高可用集群

使用keepalived搭建高可用集群

  • 概览

  • 准备工作

    • 三台机器恢复快照,抹掉LVS的实验痕迹
  • 规划:

    aming01 web1
    aming02 Nginx负载均衡1
    aming03 Nginx负载均衡2,同时也是web2
  • 搭建Nginx负载均衡

    • 在aming02和aming03上都要做
    • 安装Nginx------配置yum源------vi /etc/yum.repos.d/nginx.repo

      [nginx]
      name=nginx repo
      baseurl=http://nginx.org/packages/centos/7/$basearch/
      gpgcheck=0
      enabled=1
    • 安装:yum install -y nginx

    • 负载均衡配置:vim /etc/nginx/conf.d/bbs_proxy.conf

      upstream bbs 
      {
      	ip_hash; 
      	server 192.168.222.128:80; 
      	server 192.168.222.130:8080;
      }
      server
      {
      	listen 80;
      	server_name bbs.aminglinux.cc;
      	location /
      	{
      	    proxy_pass http://bbs;
      	    proxy_set_header Host $host;
      	    proxy_set_header X-Real-IP $remote_addr;
      	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      	}
      }
    • 补充:关于upstream配置 https://blog.youkuaiyun.com/zwhfyy/article/details/70856035

  • 安装配置keepalived

    • 在aming02和aming03上都要做
    • 安装:yum install -y keepalived
    • 配置:vi /etc/keepalived/keepalived.conf

      global_defs {
          notification_email {
          xxxx@126.com //定义接收邮件人
      }
      notification_email_from //定义发邮件地址(实际没有)
          smtp_server 127.0.0.1
          smtp_connect_timeout 30
          router_id 001
      }
      
      vrrp_script chk_nginx {
          script "/usr/local/sbin/check_ng.sh" //此脚本为监控nginx服务的
          interval 3
      }
      
      vrrp_instance aminglinux {
          state MASTER
          interface ens33 //网卡
          virtual_router_id 001
          priority 100 //权重100,此数值要大于backup
          advert_int 1
          authentication {
      	auth_type PASS
      	auth_pass aminglinux //定义密码
          }
          virtual_ipaddress {
      	192.168.222.100 //定义VIP
          }
      
          track_script {
      	chk_nginx //定义监控脚本,这里和上面vrr_script后面的字符串保持一致
          }
      }
      
    • 补充: keepalived中如何配置第三方邮件告警 https://blog.youkuaiyun.com/HzSunshine/article/details/62052398

    • 编写监控Nginx的脚本:vim /usr/local/sbin/check_ng.sh

      #!/bin/bash#时间变量,用于记录日志
      d=`date --date today +%Y%m%d_%H:%M:%S`
      #计算nginx进程数量
      n=`ps -C nginx --no-heading|wc -l`
      #如果进程为0,则启动nginx,并且再次检测nginx进程数量,#如果还为0,说明nginx无法启动,此时需要关闭keepalived
      if [ $n -eq 0 ]
      then
          systemctl start nginx  #启动命令
          n2=`ps -C nginx --no-heading|wc -l`
          if [ $n2 -eq "0" ]; then
      	echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
      	systemctl stop keepalived
          fi
      fi
    • 修改权限

      chmod 755 /usr/local/sbin/check_ng.sh
    • 启动keepalived

      • 查防火墙, 要保证VRRP协议放行,SElinux要关闭

        iptables -A INPUT -p vrrp -j ACCEPT
        setenforce 0
      • 启动

        systemctl start keepalived
      • 测试

      • 测试点:

        手动停止aming01上的nginx服务
        手动停止aming01上的keepalived服务
        设置防火墙禁止VRRP协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值