藉助keepalived + nginx雙機熱備加固flume線路
原來的狀況: 兩臺flume ,10.0.15.70,10.0.15.71。在這兩臺flume機器上,分別會啟2個mina的server端,監聽客戶端傳送到8080,8081埠的資料,flume收集資料寫入到kafka及hdfs上。 由於現在flume單機的原因,如果出現問題,資料將無法轉發到別的機器上。於是,做了以下方案用於加固。
新方案:
兩個VIP(供keepalived使用):10.0.15.15,10.0.15.16
nginx,keepalive伺服器:10.0.15.70,10.0.15.71
4臺flume:10.0.15.210,10.0.15.215,10.0.15.217,10.0.15.218
最新架構方案如下圖所示:
兩臺nginx互備,其中一臺出現當機,另外一臺接替繼續工作。
flume機器: 10.0.15.210 10.0.15.217 互相備份,nginx 將8082,8083埠的資料轉發到這兩臺機器中的任意一臺的8080,8081埠,由這臺flume機器將資料寫入hdfs, 如果這臺機器出現問題,nginx將請求轉發到另外一臺。 同理,10.0.15.215,10.0.15.218互備,nginx 將8084,8085埠的資料轉發到這兩臺機器中的任意一臺的8080,8081埠,由這臺flume機器將資料寫入hdfs, 如果這臺機器出現問題,nginx將請求轉發到另外一臺。
下面來看具體的配置:
nginx和keepalived安裝不做描述,只關注配置:
keepalived配置,兩個keepalived互為主從備份關係
10.0.15.15的配置如下:cat /etc/keepalived/keepalived.conf
10.0.15.16的配置如下:
10.0.15.15與10.0.15.16互為主備。
在配置中涉及到一個chk_nginx.sh指令碼,這個指令碼用於檢測nginx服務是否存活,如果nginx服務掛掉了,先重啟,如果出現當機的情況,則將對應的keepalived服務關掉,從而實現nginx的熱備份,指令碼內容如下:
這個指令碼一定要有可執行許可權,否則無法實現熱備,這個點之前被坑了。
10.0.15.70及10.0.15.71l兩臺nginx的nginx.conf配置資訊如下:
其中 tcp是在conf目錄下的一個資料夾,包含4個檔案:tcp_8082.com,tcp_8083.com,tcp_8084.com,tcp_8085.com
tcp_8082.com對應檔案內容:
server {
listen 8082;
proxy_pass proxy_tcp8082;
}
其它3個檔案的內容是一樣的,只是listen埠不同而已。
配置完成後,啟動nginx, keepalived, flume agent,就可以實現上面的功能。 nginx雙機熱備,加固flume.
nginx啟動: /usr/local/nginx/sbin/nginx
nginx停止: /usr/local/nginx/sbin/nginx -s stop
keepalived啟動: service keepalived start/stop
關於nginx+ keepalive雙機熱備,可以參考如下博文:
http://blog.csdn.net/zhu_tianwei/article/details/43603771
http://www.cnblogs.com/kaituorensheng/p/4889268.html
新方案:
兩個VIP(供keepalived使用):10.0.15.15,10.0.15.16
nginx,keepalive伺服器:10.0.15.70,10.0.15.71
4臺flume:10.0.15.210,10.0.15.215,10.0.15.217,10.0.15.218
最新架構方案如下圖所示:
兩臺nginx互備,其中一臺出現當機,另外一臺接替繼續工作。
flume機器: 10.0.15.210 10.0.15.217 互相備份,nginx 將8082,8083埠的資料轉發到這兩臺機器中的任意一臺的8080,8081埠,由這臺flume機器將資料寫入hdfs, 如果這臺機器出現問題,nginx將請求轉發到另外一臺。 同理,10.0.15.215,10.0.15.218互備,nginx 將8084,8085埠的資料轉發到這兩臺機器中的任意一臺的8080,8081埠,由這臺flume機器將資料寫入hdfs, 如果這臺機器出現問題,nginx將請求轉發到另外一臺。
下面來看具體的配置:
nginx和keepalived安裝不做描述,只關注配置:
keepalived配置,兩個keepalived互為主從備份關係
10.0.15.15的配置如下:cat /etc/keepalived/keepalived.conf
點選(此處)摺疊或開啟
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- }
- router_id LVS_DEVEL
- }
- vrrp_script chk_nginx {
- script "/etc/keepalived/chk_nginx.sh"
- interval 2
- weight 2
- }
- vrrp_instance VI_1 {
- state MASTER
- interface eth1
- virtual_router_id 200
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 123456
- }
- track_script {
- chk_nginx
- }
- virtual_ipaddress {
- 10.0.15.15
- }
- }
- vrrp_instance VI_2 {
- state BACKUP
- interface eth1
- virtual_router_id 251
- priority 50
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 123456
- }
- track_script {
- chk_nginx
- }
- virtual_ipaddress {
- 10.0.15.16
- }
- }
點選(此處)摺疊或開啟
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- }
- router_id LVS_DEVEL
- }
- vrrp_script chk_nginx {
- script "/etc/keepalived/chk_nginx.sh"
- interval 2
- weight 2
- }
- vrrp_instance VI_1 {
- state BACKUP
- interface eth1
- virtual_router_id 200
- priority 99
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 123456
- }
- track_script {
- chk_nginx
- }
- virtual_ipaddress {
- 10.0.15.15
- }
- }
- vrrp_instance VI_2 {
- state MASTER
- interface eth1
- virtual_router_id 251
- priority 51
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 123456
- }
- track_script {
- chk_nginx
- }
- virtual_ipaddress {
- 10.0.15.16
- }
- }
在配置中涉及到一個chk_nginx.sh指令碼,這個指令碼用於檢測nginx服務是否存活,如果nginx服務掛掉了,先重啟,如果出現當機的情況,則將對應的keepalived服務關掉,從而實現nginx的熱備份,指令碼內容如下:
點選(此處)摺疊或開啟
- #!/bin/bash
- # description:
- status=$(ps -C nginx --no-heading|wc -l)
- if [ "${status}" = "0" ]; then
- /usr/local/nginx/sbin/nginx
- status2=$(ps -C nginx --no-heading|wc -l)
- if [ "${status2}" = "0" ]; then
- /etc/init.d/keepalived stop
- fi
- fi
這個指令碼一定要有可執行許可權,否則無法實現熱備,這個點之前被坑了。
10.0.15.70及10.0.15.71l兩臺nginx的nginx.conf配置資訊如下:
點選(此處)摺疊或開啟
- worker_processes 2;
- error_log logs/error.log;
-
- pid /var/run/nginx.pid;
- worker_rlimit_nofile 102400;
-
- events {
- use epoll;
- worker_connections 102400;
- }
-
- stream {
-
-
- upstream proxy_tcp8082 {
-
- least_conn;
- server 10.0.15.210:8080 weight=1 max_fails=3 fail_timeout=30s;
- server 10.0.15.217:8080 weight=1 max_fails=3 fail_timeout=30s;
- }
-
-
- upstream proxy_tcp8083 {
-
- least_conn;
- server 10.0.15.210:8081 weight=1 max_fails=3 fail_timeout=30s;
- server 10.0.15.217:8081 weight=1 max_fails=3 fail_timeout=30s;
- }
-
- upstream proxy_tcp8084 {
-
- least_conn;
- server 10.0.15.215:8080 weight=1 max_fails=3 fail_timeout=30s;
- server 10.0.15.218:8080 weight=1 max_fails=3 fail_timeout=30s;
- }
-
- upstream proxy_tcp8085 {
-
- least_conn;
- server 10.0.15.215:8081 weight=1 max_fails=3 fail_timeout=30s;
- server 10.0.15.218:8081 weight=1 max_fails=3 fail_timeout=30s;
- }
- include tcp/*;
-
- }
其中 tcp是在conf目錄下的一個資料夾,包含4個檔案:tcp_8082.com,tcp_8083.com,tcp_8084.com,tcp_8085.com
tcp_8082.com對應檔案內容:
server {
listen 8082;
proxy_pass proxy_tcp8082;
}
其它3個檔案的內容是一樣的,只是listen埠不同而已。
配置完成後,啟動nginx, keepalived, flume agent,就可以實現上面的功能。 nginx雙機熱備,加固flume.
nginx啟動: /usr/local/nginx/sbin/nginx
nginx停止: /usr/local/nginx/sbin/nginx -s stop
keepalived啟動: service keepalived start/stop
關於nginx+ keepalive雙機熱備,可以參考如下博文:
http://blog.csdn.net/zhu_tianwei/article/details/43603771
http://www.cnblogs.com/kaituorensheng/p/4889268.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31347383/viewspace-2127290/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Keepalived - Keepalived 實現 tomcat雙機熱備Tomcat
- Keepalived雙機熱備實現高可用
- 使用Keepalived實現Nginx的雙機主備高可用Nginx
- 生產環境部署Nginx伺服器雙機熱備部署-keepalived(多種模式教程)Nginx伺服器模式
- 使用Keepalived實現Nginx的自動重啟及雙主熱備高可用Nginx
- 9、雙機熱備
- 你需要了解的高可用方案之使用keepalived搭建雙機熱備一覽
- 計算機網路之策略路由與雙機熱備計算機網路路由
- HCIE Security 雙機熱備 備考筆記(幕布)筆記
- keepalived(四)Keepalived+NginxNginx
- MySQL 主從複製,雙機熱備MySql
- MySQL雙機互備熱備自動切換KVMySql
- 兩臺Linux完美實現雙機熱備Linux
- 防火牆的雙機熱備1:主備、負載方式防火牆負載
- 新雙機熱備軟體排名看這裡!
- SQL Server 2008 R2雙機熱備方案SQLServer
- 如何藉助網路營銷機構提升短影片營銷效果?
- KeepAlived+LVS+NginxNginx
- 雙機熱備與資料備份的關係說明一二
- Redis高可用方案:使用Keepalived實現主備雙活Redis
- 伺服器雙機熱備軟體是什麼?伺服器
- 什麼是雙機熱備?實現方式有哪些?
- nginx+keepalived高可用Nginx
- PostgreSQL線上熱備SQL
- keepalived 主備使用
- 藉助babel理解jsxBabelJS
- SANGFOR NGAF雙機主備專線故障的排查
- 企業如何藉助SEO優化線上聲譽?優化
- 恆訊科技推薦:Windows與Linux雙機熱備軟體WindowsLinux
- 部分雙機熱備軟體詳細介紹-行雲管家
- 雙機熱備與叢集的區別分析-行雲管家
- nginx實現keepalived高可用Nginx
- keepalived + nginx 實現高可用Nginx
- 低程式碼平臺如何藉助Nginx實現閘道器服務Nginx
- 深度乾貨 | 如何藉助雲原生搞定Oracle備份快速恢復?Oracle
- 藉助 PrivateLink 與 EMQX Cloud 建立安全可靠的連線MQCloud
- flume線上配置
- Nginx&Keepalived 實現高可用Nginx
- Nginx + Keepalived 高可用叢集部署Nginx