keepalived安装详细步骤说明

主机安装keepalived

用root执行

keepalived暂时找不到不用root安装或者运行方法,可能需要作网络层的虚拟ip映射,需要权限。

下载安装包


\[nginx@pay-test ~\]$ sftp myc@1.13.22.112 sftp> get keepalived-1.3.9.tar.gz \[nginx@pay-test ~\]$ gzip -d keepalived-1.3.9.tar.gz

\[root@pay-test nginx\]# cp keepalived-1.3.9.tar /usr/local/src/ \[root@pay-test nginx\]# cd /usr/local/src/ \[root@pay-test src\]# tar xvf keepalived-1.3.9.tar

编译

\[root@pay-test keepalived-1.3.9\]# pwd /usr/local/src/keepalived-1.3.9 \[root@pay-test keepalived-1.3.9\]# ./configure --prefix=/usr/local/keepalived

[root@pay-test keepalived-1.3.9]# make && make install 要注意,最好分开执行,刚刚连一起执行失败没有生成/usr/local/keepalived目录,也没有任何提示。

拷贝文件

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/src/keepalived-1.3.9/keepalived/etc/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/ ln -s /usr/local/keepalived/sbin/keepalived /sbin/ (这个其实不需要,公司机器已自动拷贝) ln前要先删除,如果有的话。

配置文件

[nginx@pay-test keepalived]$ pwd /etc/keepalived [nginx@pay-test keepalived]$ vi keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id pay-test
}

vrrp_script chk_nginx { 
    script "/etc/keepalived/check_nginx_pid.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 110
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        1.13.22.118
    }

} # 很重要

119主机:

! Configuration File for keepalived

global_defs {
   router_id pay-test2
}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx_pid.sh"
    interval 5
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP # 很重要
    interface eth0
    virtual_router_id 51
    priority 110
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        1.13.22.118
    }

}

[nginx@pay-test keepalived]$ vi check_nginx_pid.sh

#!/bin/bash
LOG_DIR="/etc/keepalived"  
echo $(date "+%Y-%m-%d %H:%M:%S") "check nginx status" >> $LOG_DIR/log_nginx.log 
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then                            
      /usr/sbin/nginx                #重启nginx
      echo  $(date "+%Y-%m-%d %H:%M:%S") "restarting nginx..." >> $LOG_DIR/restart.log
      sleep 2
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
              echo $(date "+%Y-%m-%d %H:%M:%S") "killing keepalived..." >> $LOG_DIR/restart.log
      fi
fi

[nginx@pay-test keepalived]$ chmod +x check_nginx_pid.sh

测试: nginx -s stop 自动生成日志:restart.log,ps一下nginx,发现重启成功。

check脚本增加: sleep 2

启动

失败: [root@pay-test ~]# service keepalived start Reloading systemd: [ OK ] Starting keepalived (via systemctl): Job for keepalived.service failed because the control process exited with error code. See "systemctl status keepalived.service" and "journalctl -xe" for details. [FAILED]

查看日志: systemctl status keepalived.service

Starting keepalived: /bin/bash: keepalived: command not found 解决: /usr/sbin/里必须有keepalived(make install没执行,没生成/usr/local/keepalived导致)

成功: [root@pay-test ~]# service keepalived start Starting keepalived (via systemctl): [ OK ]

\[nginx@pay-test keepalived\]$ ps -ef|grep keepalived root 27566 1 0 17:21 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 27567 27566 0 17:21 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D root 27568 27566 0 17:21 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D nginx 37088 21123 0 17:47 pts/1 00:00:00 grep --color=auto keepalived

停止

\[root@zhifu-db1 keepalived\]# service keepalived stop Stopping keepalived (via systemctl): \[ OK \]

或者: killall keepalived

修改日志路径

Keepalived默认的日志文件保存在/var/log/messages 修改/etc/sysconfig/keepalived为:KEEPALIVED_OPTIONS="-D -d -S 0"

[nginx@pay-test sysconfig]$ vi keepalived
#KEEPALIVED_OPTIONS="-D"
KEEPALIVED_OPTIONS="-D -S 0"

[root@pay-test ~]# vi /etc/rsyslog.conf

# Save boot messages also to boot.log

local7.* /var/log/boot.log local0.* /var/log/keepalived.log

重启rsyslog:

\[root@pay-test ~\]# /etc/init.d/rsyslog restart -bash: /etc/init.d/rsyslog: No such file or directory \[root@pay-test /\]# /etc/sysconfig/rsyslog restart -bash: /etc/sysconfig/rsyslog: Permission denied \[root@pay-test rsyslog\]# /etc/rsyslog.conf restart -bash: /etc/rsyslog.conf: Permission denied \[root@pay-test rsyslog\]# systemctl restart rsyslog \[root@pay-test rsyslog\]#

重启keepalived:

\[root@pay-test rsyslog\]# /etc/init.d/keepalived restart Restarting keepalived (via systemctl): \[ OK \] \[root@pay-test rsyslog\]# tail -f /var/log/keepalived.log tail: cannot open ‘/var/log/keepalived.log’ for reading: No such file or directory tail: no files remaining

重启日志:

Jun 27 09:53:32 pay-test systemd: Stopping LVS and VRRP High Availability Monitor… Jun 27 09:53:32 pay-test Keepalived\[123109\]: Stopping Jun 27 09:53:32 pay-test Keepalived_healthcheckers\[123110\]: Stopped Jun 27 09:53:33 pay-test Keepalived_vrrp\[123111\]: Stopped Jun 27 09:53:33 pay-test Keepalived\[123109\]: Stopped Keepalived v1.3.9 (10/21,2017)

Jun 27 09:53:33 pay-test systemd: Starting LVS and VRRP High Availability Monitor… Jun 27 09:53:33 pay-test Keepalived\[123755\]: Starting Keepalived v1.3.9 (10/21,2017) Jun 27 09:53:33 pay-test Keepalived\[123755\]: Opening file '/etc/keepalived/keepalived.conf'. Jun 27 09:53:33 pay-test systemd: PID file /var/run/keepalived.pid not readable (yet?) after start. Jun 27 09:53:33 pay-test Keepalived\[123756\]: Starting Healthcheck child process, pid=123757 Jun 27 09:53:33 pay-test Keepalived_healthcheckers\[123757\]: Opening file '/etc/keepalived/keepalived.conf'. Jun 27 09:53:33 pay-test Keepalived\[123756\]: Starting VRRP child process, pid=123758 Jun 27 09:53:33 pay-test Keepalived_vrrp\[123758\]: Registering Kernel netlink reflector Jun 27 09:53:33 pay-test Keepalived_vrrp\[123758\]: Registering Kernel netlink command channel Jun 27 09:53:33 pay-test Keepalived_vrrp\[123758\]: Registering gratuitous ARP shared channel Jun 27 09:53:33 pay-test Keepalived_vrrp\[123758\]: Opening file '/etc/keepalived/keepalived.conf'. Jun 27 09:53:33 pay-test Keepalived_vrrp\[123758\]: Using LinkWatch kernel netlink reflector… Jun 27 09:53:33 pay-test systemd: Started LVS and VRRP High Availability Monitor.

没有定时执行脚本: keepalived.conf里少了一个}

参考: http://wosyingjun.iteye.com/blog/2313147

keepalived: command not found 错误参考: https://blog.csdn.net/lxn19860201/article/details/51422489

日志参考: https://www.cnblogs.com/zzzhfo/p/6070575.html

没执行脚本参考: https://bbs.csdn.net/topics/391844227

配置详细解释: https://www.cnblogs.com/kevingrace/p/6138185.html

转载于:https://my.oschina.net/u/2464371/blog/1913726

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值