Keepalived 2.0.6编译安装

时间:2018.7.31
作者:李强
参考:man,info,magedu讲义,万能的internet
实验环境:VMware® Workstation 12 Pro ,Centos 7.4,SecureCRT Version 8.1.4
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
版本:v1-2018.7.31

一、 参考资料

1、https://www.cnblogs.com/succeed/p/6697185.html
2、https://www.cnblogs.com/waynechou/p/keepalived.html
3、http://www.keepalived.org/doc/installing_keepalived.html
4、https://blog.csdn.net/liyuling52011/article/details/80033229

二、安装前环境准备

yum install curl gcc openssl-devel libnl3-devel net-snmp-devel

三、软件目录规划

软件安装目录:/usr/local/app/keepalived_v

日志文件单独存放在/var/log/keepalived/keepalived.log下

四、开始编译

1、下载源码包

 下载站点:
 1、http://www.keepalived.org/download.html
 2、http://keepalived.org/software

 cd /tmp
 curl --progress http://keepalived.org/software/keepalived-2.0.6.tar.gz | tar xz

2、编译

cd keepalived-2.0.6
./configure   
# 此处可以--prefix 来指定编译的软件安装路径usr/local/ewifi/keepalived_v/keepalived-2.0.6
make && make install

编译出现错误:

configure: error: libnfnetlink headers missing

此时需要安装:

yum -y install libnfnetlink-devel

PS:编译时出现问题,基本上安装xx-devel即可

此时在执行./configure  --prefix=usr/local/ewifi/keepalived_v/keepalived-2.0.6 

出现如下提示,即编译成功。

Keepalived configuration
------------------------
Keepalived version       : 2.0.6
Compiler                 : gcc
Preprocessor flags       :  -I/usr/include/libnl3 
Compiler flags           : -Wall -Wunused -Wstrict-prototypes -Wextra -Winit-self -g -D_GNU_SOURCE -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -O2  
Linker flags             :  -pie
Extra Lib                :  -lcrypto  -lssl  -lnl-genl-3 -lnl-3 
Use IPVS Framework       : Yes
IPVS use libnl           : Yes
IPVS syncd attributes    : No
IPVS 64 bit stats        : No
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
Use VRRP authentication  : Yes
With ip rules/routes     : Yes
Use BFD Framework        : No
SNMP vrrp support        : No
SNMP checker support     : No
SNMP RFCv2 support       : No
SNMP RFCv3 support       : No
DBUS support             : No
SHA1 support             : No
Use Json output          : No
libnl version            : 3
Use IPv4 devconf         : No
Use libiptc              : No
Use libipset             : No
init type                : systemd
Build genhash            : Yes
Build documentation      : No

3、自启动脚本

yum 安装的目录结构

/etc/keepalived
/etc/keepalived/keepalived.conf
/etc/sysconfig/keepalived
/usr/bin/genhash
/usr/lib/systemd/system/keepalived.service
/usr/libexec/keepalived
/usr/sbin/keepalived
/usr/share/doc/keepalived-1.3.5

编译安装后,会根据系统环境,生成启动脚本。

[root@zabbix_server keepalived]# cat /usr/lib/systemd/system/keepalived.service 
[Unit]
Description=LVS and VRRP High Availability Monitor
After= network-online.target syslog.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/ewifi/keepalived_v/keepalived-2.0.6/etc/sysconfig/keepalived
ExecStart=/usr/local/ewifi/keepalived_v/keepalived-2.0.6/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

!!!!这里需要检查配置文件是否正确。然后是sysconfig/keepalived需要进行改造。这里建立软链接都没用。
否则启动会报错

Unable to find configuration file /etc/keepalived/keepalived.conf (glob returned 3)
7月 31 11:52:58 zabbix_server systemd[1]: PID file /var/run/keepalived.pid not readable (yet?) after start.

cd /usr/local/ewifi/keepalived_v/keepalived-2.0.6/etc/sysconfig/

sed -i 's@KEEPALIVED_OPTIONS=.*@KEEPALIVED_OPTIONS="-f /usr/local/ewifi/keepalived_v/keepalived-2.0.6/etc/keepalived/keepalived.conf -D -S 0"@' keepalived

这里需要使用-f指定配置文件路径才能正常启动。

!!!!默认的日志存放位置在/var/log/messages中。

echo 'local0.* /var/log/keepalived/keepalived.log' >>/etc/rsyslog.conf                             

然后需要修改keepalived.conf 配置文件才可以启动成功,备份原始文件,删除里面定义的vrrp和lvs相关信息。

重启服务即可。

4、设置开机启动

systemctl enable keepalived.service 

5、 建立备忘录

cd /usr/local/app/keepalived_v/keepalived-2.0.6
cat >>README <<eof
1、启动服务在/usr/lib/systemd/system/keepalived.service,并设置了开机启动
2、修改日志文件存放位置/var/log/keepalived/keepalived.log
echo 'local0.* /var/log/keepalived/keepalived.log' >>/etc/rsyslog.conf  

eof
上一篇:05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系


下一篇:李伟:工信部将从产业生态、标准、安全等四方面促进物联网发展