• keepalived 配置文件详解


    配置文件

          keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、

    vrrp_script、vrrp_instance和virtual_server.

    1、global_defs区域

    global_defs {
      notification_email {
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
      }
      notification_email_from Alexandre.Cassen@firewall.loc
      smtp_server 192.168.200.1
      smtp_connect_timeout 30
      router_id 192.168.224.206
      vrrp_skip_check_adv_addr
      vrrp_strict
      vrrp_garp_interval 0
      vrrp_gna_interval 0
    }

    notification_email  故障发生时给谁发邮件通知
    notification_email_from  通知邮件从哪个地址发出
    smtp_server 通知邮件的smtp地址
    smtp_connect_timeout 连接smtp服务器的超时时间
    enable_traps开启SNMP(Simple Network Management Protocol)陷阱
    router_id 标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到     必须填写

    2、vrrp_script区域

       用来做健康检查的,当检查失败时会将vrrp_instance的priority减少相应的值,

    vrrp_script chk_nginx {

      script "/usr/local/keepalived-1.3.4/nginx_check.sh"

      interval 2

      weight -20

    }

       script:自己写的监测脚本。

       interval 2:每2s监测一次

       weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点

    3、vrrp_instance 

    vrrp_instance VI_1 {

      
      state BACKUP
      interface ens33
      virtual_router_id 51
      mcast_src_ip 192.168.224.206
      priority 100
      advert_int 1
      authentication {
        auth_type PASS
        auth_pass 1111
      }
      virtual_ipaddress {
        192.168.224.208
      }
      track_script{
        chk_nginx
      }

      dont_track_primary

    }

    state:只有BACKUP和MASTER。MASTER为工作状态,BACKUP是备用状态

    interface:为网卡接口:可通过ip addr查看自己的网卡接口

     

    virtual_router_id:虚拟路由标志。同组的virtual_router_id应该保持一致。它将决定多播的MAC地址。

    priority:设置本节点的优先级,优先级高的为master

    advert_int:MASTER与BACKUP同步检查的时间间隔

    virtual_ipaddress:这就是传说中的虚拟ip

    dont_track_primary:#表示的含义是,一旦接口有问题,则忽略之,否则keepalived的代码中对链路有做检查,发现链路down则进入fault状态,于是将放弃所有浮动ip
     
     
     
    nginx检测脚本

    [root@server1 ~]# cat /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
    /etc/init.d/nginx start
    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
    /etc/init.d/keepalived stop
    fi
    fi

    我们只需要努力,然后剩下的交给时间。
  • 相关阅读:
    回顾2018,展望2019
    NLog日志框架使用探究-1
    基于NetMQ的TLS框架NetMQ.Security的实现分析
    鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)
    鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(一)
    鸟哥的Linux私房菜笔记第四章
    ThinkPHP5.1 + tufanbarisyildirim 解析apk
    Java核心技术第八章——泛型程序设计(1)
    Java核心技术第五章——2.Object类
    Java核心技术第五章——1.类、超类、子类(2)
  • 原文地址:https://www.cnblogs.com/lgj8/p/14764556.html
Copyright © 2020-2023  润新知