keealived安裝linux
依賴
yum install -y libnl*
yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel opensshnginx
1.上官網下載 .tar.gz任意版本壓縮包
2.上傳linux ,解壓tar xvf keepalived-1.3.5.tar.gz
3.進入解壓目錄,./configure --prefix=/usr/local/keepalived 指定安裝目錄。而後make && make install
4. cp /解壓目錄/keepalived/etc/init.d/keepalived /etc/init.d/keepalived 賦值執行問腳本到service服務
5.mkdir /etc/keepalived 而後賦值配置文件到指定目錄
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.confc++
6.cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalivedbash
7.chkconfig keepalived on 設置開機啓動ssh
8.service keepalived start 啓動url
ps:
使用service keepalived start命令啓動服務時,
默認會將/etc/sysconfig/keepalived文件中KEEPALIVED_OPTIONS參數做爲keepalived服務啓動時的參數,
並從/etc/keepalived/目錄下加載keepalived.conf配置文件,或用-f參數指定配置文件的位置。或者修改啓動腳本里的
keepalived=/usr/local/keepalived/sbin/keepalived 啓動腳本
keepalived_config=/usr/local/keepalived/etc/keepalived/keepalived.conf 配置文件地址
keepalived_pid=/usr/local/keepalived/run/keepalived.pid pid沒的說router
配置以下:具體含義能夠本身查
! Configuration File for keepalivedserver
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 LVS_DEVEL
#vrrp_skip_check_adv_addr
#vrrp_strict 暫不須要這些參數
#vrrp_garp_interval 0
#vrrp_gna_interval 0
}
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh" ##監控腳本
interval 2 ##時間間隔,2秒
weight -10 ##權重weight 爲正時,腳本檢測成功時此weight會加到priority上 ,weight爲負時,腳本檢測成功時此weight不影響priority,檢測失敗時priority – abs(weight)
fall 2
rise 1
}進程
vrrp_instance VI_1 {
state MASTER
interface em1
mcast_src_ip 192.168.17.32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx #監控腳本
}
virtual_ipaddress {
192.168.18.200
}
}ip
備用節點修改mcast_src_ip爲本身ip ,priority值小於主節點 99便可,注意跟權重的配合。
修改state=BACKUP
check_nginx.sh 最靠譜的方式應該檢查某個url是否返回值
#!/bin/bash
# 若是進程中沒有nginx則將keepalived進程kill掉
A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx進程 把值賦給變量A
if [ $A -eq 0 ];then ## 若是沒有進程值得爲 零
service keepalived stop ## 則結束 keepalived 進程
fi
雙主模式只須要再建一個vrrp_instance 將slave 變成master master裏配置 slave便可。注意ip不能重複。