keepalived監(jiān)控nginx進程的實現(xiàn)示例
1、說明
keepalived本身只是監(jiān)控自身的進程是否掛掉,如果機器并沒有掛機,只是nginx掛了,那么keepalived是不會做切換主備的,所以我們需要寫個腳本來監(jiān)控nginx進程是否存在。
2、上傳腳本
上傳腳本check_nginx.sh到/etc/keepalived目錄。
#!/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設置check_nginx.sh腳本可執(zhí)行權限:
chmod 755 check_nginx.sh 或者 chmod +x check_nginx.sh
如果執(zhí)行腳本出錯,需要使用dos2unix工具轉化下格式:
安裝dos2unix: yum -y install dos2unix
使用:dos2unix check_nginx.sh
3、修改keepalived.conf
3.1 定義監(jiān)控腳本
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh" ##監(jiān)控腳本
interval 2 ##時間間隔,2秒
weight 2 ##權重
}3.2 在實例中加入啟用監(jiān)控
vrrp_instance VI_1 {
state BACKUP #標示狀態(tài)為MASTER 備份機為BACKUP
interface eth0 #設置實例綁定的網(wǎng)卡
virtual_router_id 51 #同一實例下virtual_router_id必須相同
priority 100 #MASTER權重要高于BACKUP 比如BACKUP為99
advert_int 1 #MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒
authentication { #設置認證
auth_type PASS #主從服務器驗證方式
auth_pass 8888
}
virtual_ipaddress { #設置vip
192.168.0.55 #可以多個虛擬IP,換行即可
}
track_script {
check_nginx #監(jiān)控腳本
}
}4、keepalived.conf配置示例
! Configuration File for keepalived
#全局配置
global_defs {
notification_email { #指定keepalived在發(fā)生切換時需要發(fā)送email到的對象,一行一個
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #指定發(fā)件人
#smtp_server 192.168.200.1 #指定smtp服務器地址
#smtp_connect_timeout 30 #指定smtp連接超時時間
router_id LVS_DEVEL #運行keepalived機器的一個標識
}
vrrp_instance VI_1 {
state MASTER #標示狀態(tài)為MASTER 備份機為BACKUP
interface eth0 #設置實例綁定的網(wǎng)卡
virtual_router_id 51 #同一實例下virtual_router_id必須相同
priority 100 #MASTER權重要高于BACKUP 比如BACKUP為99
advert_int 1 #MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒
authentication { #設置認證
auth_type PASS #主從服務器驗證方式
auth_pass 1111
}
virtual_ipaddress { #設置vip
192.168.0.55 #可以多個虛擬IP,換行即可
}
}
#虛擬服務器 80端口的配置
virtual_server 192.168.0.55 80 {
delay_loop 6 #(每隔10秒查詢realserver狀態(tài))
lb_algo rr #lvs調度算法rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #負載均衡轉發(fā)規(guī)則NAT|DR|RUN
#nat_mask 255.255.255.0 #掩碼
persistence_timeout 50 #會話保持時間(同一IP的連接60秒內被分配到同一臺realserver)
protocol TCP #使用的協(xié)議
#實際服務器的IP和端口
real_server 192.168.0.48 80 {
weight 1 #默認為1,0為失效
HTTP_GET { #使用http get檢測方式
url {
path /index.html
#digest ff20ad2481f97b1754ef3e12ecd3a9cc #http://192.168.0.48/index.html的digest值
status_code 200 #http://192.168.0.48/index.html的返回狀態(tài)碼
}
connect_timeout 3 #連接超時時間
nb_get_retry 3 #重連次數(shù)
delay_before_retry 3 #重連間隔時間
}
}
}到此這篇關于keepalived監(jiān)控nginx進程的實現(xiàn)示例的文章就介紹到這了,更多相關keepalived監(jiān)控nginx進程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 使用ngxtop實時監(jiān)控Nginx日志文件的示例代碼
- Nginx監(jiān)控模塊(vts模塊)詳解
- Zabbix自定義腳本監(jiān)控nginx以及微信告警的全過程
- ELK與Grafana聯(lián)合打造可視化監(jiān)控來分析nginx日志
- prometheus監(jiān)控nginx的實現(xiàn)
- ELK監(jiān)控nginx日志的整體流程
- Prometheus監(jiān)控實戰(zhàn)篇Nginx、Hbase操作詳解
- 解析prometheus+grafana監(jiān)控nginx的方法
- Nginx狀態(tài)監(jiān)控以及日志分析詳解
- python監(jiān)控nginx端口和進程狀態(tài)
- Python實現(xiàn)監(jiān)控Nginx配置文件的不同并發(fā)送郵件報警功能示例
相關文章
Centos7.3 安裝部署Nginx并配置https的方法步驟
這篇文章主要介紹了Centos7.3 安裝部署Nginx并配置https的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
配置Nginx出現(xiàn)403(Forbidden)靜態(tài)文件加載不出來的解決方法
本文主要介紹了配置Nginx出現(xiàn)403(Forbidden)靜態(tài)文件加載不出來的解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12
Nginx+keepalived實現(xiàn)七層的負載均衡的高可用(最新解決方案)
這篇文章主要介紹了Nginx+keepalived實現(xiàn)七層的負載均衡的高可用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03

