mount –o loop /home/omcr/rhel-server-7.1-x86_64-dvd.iso /mnt/cdromlinux |
[InstallMedia] #表明整个库的名字 不能有空格web name=Red Hat Enterprise Linux 7.1 #这个库的说明 没啥意义redis baseurl=file:///mnt/cdrom #以什么方式传输 路径在哪里 方式能够有file ftp httpc# metadata_expire=-1bash gpgcheck=0 #是否gpg文件来检查软件包的签名 1是 0 否服务器 cost=500网络 enabled=1 #是否启用这个更新库 0表示不启用app |
使用下面的命令查询是否安装,负载均衡
rpm -qa | grep openssl-develfrontend |
yum install -y openssl-devel |
使用下面的命令查询是否安装,
rpm -qa | grep libnl-devel |
为空说明未安装,执行下面命令
yum -y install libnl-devel |
7.安装libnfnetlink-devel
将libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm上传到/home/omcr目录下,而后执行
rpm –ivh libnfnetlink-devel-1.0.1-4.el7.x86_64.rpm |
安装前准备工做成功执行完成以后,就能够开始安装Keepalived软件系统,步骤以下:
1.将keepalived-2.0.5.tar.gz源文件上传到/home/omcr目录下
2.解压keepalived-2.0.5.tar.gz源文件
tar -zxvf keepalived-2.0.5.tar.gz |
3.编译并安装
cd /home/omcr/ keepalived-2.0.5 |
./configure --prefix=/usr/local/keepalived make && make install |
以上命令执行完成,安装过程完成。
为了方便用户使用系统命令启停Keepalived服务,经过如下步骤将安装好的Keepalived软件注册为系统服务
1)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ |
2)
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ |
在/etc/init.d/下建立keepalived
修改该文件权限为可执行
chmod +x /etc/init.d/keepalived |
文件内容以下(用于keepalived定时检测代理的服务状态):
#!/bin/sh # # Startup script for the Keepalived daemon # # processname: keepalived # pidfile: /var/run/keepalived.pid # config: /etc/keepalived/keepalived.conf # chkconfig: - 21 79 # description: Start and stop Keepalived
# Source function library . /etc/rc.d/init.d/functions
# Source configuration file (we set KEEPALIVED_OPTIONS there) . /etc/sysconfig/keepalived
RETVAL=0
prog="keepalived"
start() { echo -n $"Starting $prog: " daemon keepalived ${KEEPALIVED_OPTIONS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog }
stop() { echo -n $"Stopping $prog: " killproc keepalived RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog }
reload() { echo -n $"Reloading $prog: " killproc keepalived -1 RETVAL=$? echo }
# See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/$prog ]; then stop start fi ;; status) status keepalived RETVAL=$? ;; *) echo "Usage: $0 {start|stop|reload|restart|condrestart|status}" RETVAL=1 esac
exit $RETVAL |
将keepalive.conf和 check_haproxy.sh 、send_arp.sh文件分别上传到主备机/etc/keepalived目录下,编辑keepalive.config文件以下
|
global_defs { notification_email { #指定Keepalived在发生事情的时候,发送邮件通知,每行一个地址 root@localhost }
notification_email_from keepalived@localhost #指定发件人 smtp_server 127.0.0.1 #发送email的smtp地址 smtp_connect_timeout 30 #超时时间 router_id haproxy #运行Keepalived的机器标识号,主从机必须不一样 }
vrrp_script chk_haproxy { script "/etc/keepalived/check_haproxy.sh" interval 2 weight 2 }
vrrp_instance VI_1 { state BACKUP #指定keepalive的角色MASTER表明主服务器BACKUP表示备用机 interface ens1f0 #指定HA监测网络的接口 virtual_router_id 51 #虚拟路由标识 同一vrrp实例只有一个,即主备机相同 priority 99 #定义优先级,数字越大优先级越高 主机必须大于备机 advert_int 1 #设定主备负载均衡器之间同步检查的时间间隔单位是秒 unicast_src_ip 192.168.222.137 #本地ip地址 unicast_peer { 192.168.222.136 #对端IP地址 } authentication { #设定验证类型和密码 auth_type PASS #设定验证类型 有PASS和AH两种 auth_pass 1111 #设置密码 同一个vrrp_instance实例下主备机必须设置相同才能正常通讯 } track_script { #执行监控的服务 chk_haproxy } virtual_ipaddress { #keepalive的虚拟ip 192.168.52.201 } # notify_master "/etc/keepalived/send_arp.sh ens1f0 192.168.52.201 192.168.50.1" } |
设置开机自启动
chkconfig keepalived on |
取消开机自启动
systemctl disable keepalived.service 取消开机自动启动 |
测试是否绑定成功
1)停掉服务
systemctl stop keepalived 或者 service keepalived stop |
2)重启
sudo service keepalived restart |
3)运行 ip addr查看是否绑定成功
也可执行
systemctl status keepalived |
keepalived被注册为系统服务后能够经过如下命令启动、中止服务或者查询服务的运行状态。
1)查询keepalived服务状态
systemctl status keepalived 或者 service keepalived status |
2)启动keepalived服务
systemctl start keepalived 或者 service keepalived start |
3)中止keepalived服务
systemctl stop keepalived 或者 service keepalived stop |
配置syslog
vi /etc/rsyslog.conf |
开启UDP 514 端口
# Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 |
设置haproxy日志存放目录
local2.* /var/log/haproxy.log |
再修改/etc/sysconfig/rsyslog
vi /etc/sysconfig/rsyslog |
修改内容为
SYSLOGD_OPTIONS="-r -m 0" |
说明:-r:打开接受外来日志消息的功能,其监控514 UDP端口;
-x:关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m:修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次"--MARK--"信息;
-h:默认状况下,syslog不会发送从远端接受过来的消息到其余主机,而使用该选项,则把该开关打开,全部
接受到的信息均可根据syslog.conf中定义的@主机转发过去
重启rsyslog服务
systemctl restart rsyslog |
安装前准备工做成功执行完成以后,就能够开始安装Haproxy软件系统,步骤以下:
1.将haproxy-1.5.18.tar.gz源文件上传到/home/omcr目录下
2.解压haproxy-1.5.18.tar.gz源文件
tar -zxvf haproxy-1.5.18.tar.gz |
3.编译并安装
cd /home/omcr/haproxy-1.5.18 |
uname -r #查看系统内核版本号 结果3.10.0-229.el7.x86_64 make TARGET=linux3100 #3100表明系统内核版本号 make install PREFIX=/usr/local/haproxy |
以上命令执行完成,安装过程完成。
为了方便用户使用系统命令启停haproxy服务,经过如下步骤将安装好的haproxy软件注册为系统服务
在/etc/init.d/下建立haproxy
修改该文件权限为可执行
chmod +x /etc/init.d/ haproxy |
文件内容以下:
#!/bin/sh #chkconfig: 2345 10 90 # Source function library . /etc/rc.d/init.d/functions
PROGNAME=haproxy PROGDIR=/usr/local/haproxy DAEMON=$PROGDIR/sbin/$PROGNAME CONFIG=$PROGDIR/$PROGNAME.cfg PIDFILE=$PROGDIR/$PROGNAME.pid SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 RETVAL=0
start() { $DAEMON -f $CONFIG RETVAL=$? echo -e "$PROGNAME started" }
stop() { haproxy_pid="$(cat $PIDFILE)" kill -9 $haproxy_pid RETVAL=$? echo -e "$PROGNAME stoped " }
restart() { $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE) RETVAL=$? echo -e "$PROGNAME restarted " }
case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status $PROGNAME RETVAL=$? ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 RETVAL=1 ;; esac
exit $RETVAL |
将haproxy.cfg文件分别上传到主备机/usr/local/haproxy目录下,编辑haproxy.cfg文件将其中的IP地址修改成实际的集群服务节点IP地址。
#--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #---------------------------------------------------------------------
#--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2
chroot /usr/local/haproxy pidfile /usr/local/haproxy/haproxy.pid maxconn 4000 user root group root daemon
# turn on stats unix socket stats socket /usr/local/haproxy/stats
#--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode tcp #默认的模式mode{mode|http|health},tcp4层http7层,health只会返回ok log global option tcplog #日志类别有httplog option dontlognull option http-server-close # option forwardfor except 127.0.0.0/8 option redispatch retries 3 #3次链接失败就默认服务器不可用 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000
#--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend rabbitmq bind *:5672 default_backend rabbitmq_cluster
frontend redis bind *:6379 default_backend redis_cluster frontend mycat bind *:8066 default_backend mycat_cluster
#--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend rabbitmq_cluster mode tcp balance roundrobin server master 192.168.53.11:5672 check inter 2000 rise 2 fall 3 server slaver 192.168.53.12:5672 check inter 2000 rise 2 fall 3 backend redis_cluster mode tcp balance roundrobin server master 192.168.53.11:6379 check inter 2000 rise 2 fall 3 server slaver 192.168.53.12:6379 check inter 2000 rise 2 fall 3 backend mycat_cluster mode tcp balance roundrobin server master 192.168.52.155:8066 check inter 2000 rise 2 fall 3 server slaver 192.168.53.12:8066 check inter 2000 rise 2 fall 3 listen cluster_monitoring bind *:9098 #监听端口 mode http option httplog #采用http日志格式 timeout client 3h timeout server 3h timeout connect 3h stats enable stats uri /stats #统计页面url stats refresh 5s #统计页面自动刷新时间 |
|
如需配置服务自启动需在上面的配置文件(/etc/rc.d/init.d/haproxy)中添加下面两句到#!/bin/bash以后
#chkconfig: 2345 10 90 #description:haproxy |
----其中2345是默认启动级别,级别有0-6共7个级别。
----等级0表示:表示关机
----等级1表示:单用户模式
----等级2表示:无网络链接的多用户命令行模式
----等级3表示:有网络链接的多用户命令行模式
----等级4表示:不可用
----等级5表示:带图形界面的多用户模式
----等级6表示:从新启动
----10是启动优先级,90是停机优先级,优先级范围是0-100,数字越大,优先级越低。
再执行
chkconfig --add haproxy |
重启服务器执行以下命令查看是否配置成功
netstat -ntlp | grep haproxy |
haproxy被注册为系统服务后能够经过如下命令启动、中止服务或者查询服务的运行状态。
1)查询haproxy服务状态
systemctl status haproxy |
2)启动haproxy服务
systemctl start haproxy |
3)中止haproxy服务
systemctl stop haproxy |