keepalived監(jiān)控nginx進(jìn)程的實(shí)現(xiàn)示例
1、說(shuō)明
keepalived本身只是監(jiān)控自身的進(jìn)程是否掛掉,如果機(jī)器并沒(méi)有掛機(jī),只是nginx掛了,那么keepalived是不會(huì)做切換主備的,所以我們需要寫(xiě)個(gè)腳本來(lái)監(jiān)控nginx進(jìn)程是否存在。
2、上傳腳本
上傳腳本check_nginx.sh到/etc/keepalived目錄。
#!/bin/bash # 如果進(jìn)程中沒(méi)有nginx則將keepalived進(jìn)程kill掉 A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx進(jìn)程 把值賦給變量A if [ $A -eq 0 ];then ## 如果沒(méi)有進(jìn)程值得為 零 service keepalived stop ## 則結(jié)束 keepalived 進(jìn)程 fi
設(shè)置check_nginx.sh腳本可執(zhí)行權(quán)限:
chmod 755 check_nginx.sh
或者 chmod +x check_nginx.sh
如果執(zhí)行腳本出錯(cuò),需要使用dos2unix工具轉(zhuǎn)化下格式:
安裝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 ##時(shí)間間隔,2秒 weight 2 ##權(quán)重 }
3.2 在實(shí)例中加入啟用監(jiān)控
vrrp_instance VI_1 { state BACKUP #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 100 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 8888 } virtual_ipaddress { #設(shè)置vip 192.168.0.55 #可以多個(gè)虛擬IP,換行即可 } track_script { check_nginx #監(jiān)控腳本 } }
4、keepalived.conf配置示例
! Configuration File for keepalived #全局配置 global_defs { notification_email { #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定發(fā)件人 #smtp_server 192.168.200.1 #指定smtp服務(wù)器地址 #smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí) } vrrp_instance VI_1 { state MASTER #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 100 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 1111 } virtual_ipaddress { #設(shè)置vip 192.168.0.55 #可以多個(gè)虛擬IP,換行即可 } } #虛擬服務(wù)器 80端口的配置 virtual_server 192.168.0.55 80 { delay_loop 6 #(每隔10秒查詢r(jià)ealserver狀態(tài)) lb_algo rr #lvs調(diào)度算法rr|wrr|lc|wlc|lblc|sh|dh lb_kind DR #負(fù)載均衡轉(zhuǎn)發(fā)規(guī)則NAT|DR|RUN #nat_mask 255.255.255.0 #掩碼 persistence_timeout 50 #會(huì)話保持時(shí)間(同一IP的連接60秒內(nèi)被分配到同一臺(tái)realserver) protocol TCP #使用的協(xié)議 #實(shí)際服務(wù)器的IP和端口 real_server 192.168.0.48 80 { weight 1 #默認(rèn)為1,0為失效 HTTP_GET { #使用http get檢測(cè)方式 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 #連接超時(shí)時(shí)間 nb_get_retry 3 #重連次數(shù) delay_before_retry 3 #重連間隔時(shí)間 } } }
到此這篇關(guān)于keepalived監(jiān)控nginx進(jìn)程的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)keepalived監(jiān)控nginx進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用ngxtop實(shí)時(shí)監(jiān)控Nginx日志文件的示例代碼
- Nginx監(jiān)控模塊(vts模塊)詳解
- Zabbix自定義腳本監(jiān)控nginx以及微信告警的全過(guò)程
- ELK與Grafana聯(lián)合打造可視化監(jiān)控來(lái)分析nginx日志
- prometheus監(jiān)控nginx的實(shí)現(xiàn)
- ELK監(jiān)控nginx日志的整體流程
- Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase操作詳解
- 解析prometheus+grafana監(jiān)控nginx的方法
- Nginx狀態(tài)監(jiān)控以及日志分析詳解
- python監(jiān)控nginx端口和進(jìn)程狀態(tài)
- Python實(shí)現(xiàn)監(jiān)控Nginx配置文件的不同并發(fā)送郵件報(bào)警功能示例
相關(guān)文章
Centos7.3 安裝部署Nginx并配置https的方法步驟
這篇文章主要介紹了Centos7.3 安裝部署Nginx并配置https的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04nginx代理無(wú)法訪問(wèn)后端服務(wù)的解決
這篇文章主要介紹了nginx代理無(wú)法訪問(wèn)后端服務(wù)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05nginx+lua+redis防刷和限流的實(shí)現(xiàn)
本文將介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,首先,我們將了解防刷和限流的基本概念和必要性,然后,我們將詳細(xì)介紹如何使用nginx lua redis實(shí)現(xiàn)防刷和限流,感興趣的可以了解一下2023-09-09nginx打印請(qǐng)求頭日志方法(親測(cè)可用)
之前想用nginx打印收到的請(qǐng)求的請(qǐng)求頭,但是只找到打印請(qǐng)求體的,沒(méi)有打印請(qǐng)求頭的,本文就來(lái)介紹一下nginx打印請(qǐng)求頭日志方法,感興趣的可以了解一下2023-11-11配置Nginx出現(xiàn)403(Forbidden)靜態(tài)文件加載不出來(lái)的解決方法
本文主要介紹了配置Nginx出現(xiàn)403(Forbidden)靜態(tài)文件加載不出來(lái)的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12windows下快速安裝nginx并配置開(kāi)機(jī)自啟動(dòng)的方法
這篇文章主要介紹了windows下快速安裝nginx 并配置開(kāi)機(jī)自啟動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用(最新解決方案)
這篇文章主要介紹了Nginx+keepalived實(shí)現(xiàn)七層的負(fù)載均衡的高可用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03