高可用高性能日志收集系統平臺搭建
在傳統的訪問日志分析系統中, 資料采集效率較低且日志采集目錄不能被遞回監聽, 存盤 系統及計算系統缺乏高可用性,構建基于分布式集群的高可用日志采集系統,以減少服務中斷時間為目的的服務器集群技術. 由 Flume 核心角色 Agent 將 Nginx 服務器與 HDFS 連接起來, 這一程序由內部有三個組件之一 Source 與 Nginx 服務器下日志檔案對接獲取資料,Channel 傳輸給 Sink,由 Sink 上傳到 HDFS.而這一程序需要在 Hadoop集群基礎上完成,本專案使用 LVS+Keepalived+Nginx 高可用負載均衡搭建日志服務器集群,
涉及技術:Hadoop集群、LVS+Keepalived+Nginx、Flume
<高可用高性能目錄>
- 高可用高性能日志收集系統平臺搭建
- 一、專案包含的模塊
- 二、Hadoop 安裝部署
- (一)hadoop集群規劃圖
- (二)實作程序
- 三、 LVS+Keepalived+Nginx 安裝
- (一)系統環境準備
- (二)LVS+KeepAlived安裝部署
- (三)Nginx安裝部署
- (四)realserver.sh配置
- 四、負載均衡及高可用測驗
- 五、面向日志服務器集群的高可用日志采集服務部署
- (一)Flume 安裝
- (二)Flume 測驗
- (三) 高可用日志采集服務器部署
- 六、 高可用高性能日志收集系統平臺整體測驗
- 七、高可用高性能日志收集系統平臺故障測驗
- 八、專案結語
一、專案包含的模塊

1、Flume是一個分布式、可靠、和高可用的海量日志采集、聚合和傳輸的 系統,
下圖為Flume運行機制

2、專案流程圖如下:

二、Hadoop 安裝部署
(一)hadoop集群規劃圖

(二)實作程序
1、 將上傳好的 Hadoop 解壓到/opa/apps,根據上文的集群規劃部署集群
2、編輯六個主要檔案,分別是 hadoop-env.sh, core-site.xml, mapred-site.xml, yarn-site.xml, workers

3、將配置好的 Hadoop 目錄整個復制到 mini2 和 mini3 上
4、Hadoop 集群第一次啟動需要在 mini1 使用 hdfs namenode -format 命令
格式化集群,生成 hdfs 的存盤資料的檔案
5、格式化完成后啟動 HDFS 集群和 YARN 集群會,各個節點出現以下行程
(1)mini1 的行程

(2)mini2

(3)mini3

(4)YARN 集群 web 界面: http://mini1:8088/

(5)瀏覽 HDFS web 界面: http://mini1:9870/

(6)HDFS 資料節點資訊

三、 LVS+Keepalived+Nginx 安裝

(一)系統環境準備
1、關閉防火墻
systemctl stop firewalld (臨時關閉防火墻)
systemctl disable firewalld (禁止firewall開機啟動)
systemctl status firewalld (查看防火墻狀態)

2、禁用Selinux(安全權限管理模塊)
vi /etc/sysconfig/selinux
SELINUX=disabled

3、配置免密登錄
配置主機之間的免密ssh登陸
(1)假如 mini1 要登陸 mini2,mini3,mini4
在mini1上操作:
首先生成密鑰對,命令如下:
ssh-keygen (提示時,直接回車即可)
(2)將生產的秘鑰copy到【mini1,mini2,mini3】上,命令如下
ssh-copy-id mini1
ssh-copy-id mini2
ssh-copy-id mini3
ssh-copy-id mini4
(二)LVS+KeepAlived安裝部署
1、LVS無需安裝,安裝的是管理工具,第一種叫ipvsadm,第二種叫keepalive,ipvsadm是通過命令列管理,而keepalive讀取組態檔管理,
(1)分別在mini1和mini2執行此操作:yum -y install ipvsadm
(2)檢車是否ipvsadm模塊加載進系統: lsmod | grep ip_vs
(3)把模塊加載進系統 :modprobe ip_vs
2、keepalived安裝
(1)分別在mini1和mini2執行如下操作:yum -y install keepalived
(2)mini1的keepalived配置如下圖


(3)mini2keepalived配置如下圖


(三)Nginx安裝部署
1、安裝c++依賴: yum -y install gcc pcre-devel openssl openssl-devel(必須執行),
2、解壓Nginx安裝包, 進入解壓好的目錄檢查安裝環境,并指定安裝目錄./configure --prefix=/opt/apps/nginx.
3、執行make && make install安裝成功后有以下四個目錄:
conf目錄:存放組態檔
html目錄:存放靜態資源
logs目錄:存放日志資訊
sbin目錄:存放nginx的啟動命令
4、修改組態檔,
將默認埠已修改為81,配置如下圖

(四)realserver.sh配置
1、此腳本用于節點服務器系結 VIP ,并抑制回應 VIP 的 ARP 請求,這樣做的目的是為了不讓關于 VIP 的 ARP 廣播時,節點服務器應答( 因為節點服務器都系結了 VIP ,如果不做設定它們會應答,就會亂套 ),配置完后要賦予可執行權限,
2、詳細配置,如下圖所示

四、負載均衡及高可用測驗
1、啟動Keepalived
2、啟動nginx
3、運行realserver.sh腳本: sh realserver.sh start
4、頁面訪問http://192.168.80.100:81/
5、 mini1上執行:ipvsadm -ln, 檢查連接情況,結果如圖所示便搭建成功

五、面向日志服務器集群的高可用日志采集服務部署
(一)Flume 安裝
flume安裝非常簡單,解壓即可使用,但前提是已有 hadoop 環境上傳安裝包到資料源所在節點上
(二)Flume 測驗
1、先用一個最簡單的例子來測驗一下程式環境是否正常

2、測驗結果通過,程序如下圖


(三) 高可用日志采集服務器部署

1、實際生產環境中 mini3 和 mini4 其中一個有可能會因為某種原因宕機,因此
我們需要將日志檔案進行多層冗余,以防止可能的宕機帶來的資料損失
2、第一層 agent 采集配置(mini3、mini4 )


3、 第二層 agent 采集配置


六、 高可用高性能日志收集系統平臺整體測驗
目前為止, 高可用高性能日志收集系統平臺搭建完畢,下一步進行性能測驗
1、mini1,mini2 啟動第二層 agent 采集程式,出現新行程

2、在 mini3,mini4 啟動第一層 agent 采集程式,出現一下新行程

3、將提前寫好的主頁部署到 Nginx 服務器上,模擬用戶進入主頁產生日志
(1) 查看 Nginx 服務器時間


(2)進入主頁,反復重繪,產生足夠多的日志

(3)查看 hdfs 目錄下是否存在上傳的日志

(4)日志存在,上傳成功, 高可用高性能日志收集系統平臺,測驗完畢,搭建成功,
七、高可用高性能日志收集系統平臺故障測驗
(一)故障測驗
- 在mini2查找到Flume的行程

- 用kill命令結束行程

- 為了區分mini3h和mini4的日志,這里直接往nginx服務器的日志檔案追加寫入


- 然后進入hdfs的Web端查看日志上傳情況

- 可以看日志檔案上傳成功,接下來下載日志

- 下載完成后解壓打開第一和第二個日志檔案

- 打開第三個日志檔案

- 日志完整,故障測驗通過,
八、專案結語
日志內容有時會包含敏感資訊,特別是error日志,直接把系統的具體錯誤拋出來,所以日志除了查看方便,還需要確保日志檔案的安全,本文構建了基于分布式集群的高可用日志分析系統,通過實作安全地日志采集服務,
Nginx直連Flume, 自定義Source組件的Flume對訪問日志的采集環節做出改進,采用高可用分布式存盤系統HDFS、分析訪問日志,為企業提供可靠的日志采集服務,實驗分別測驗了本系統的實時資料采集、監聽、存盤系統和分析系統的高可用性,
由實驗結果表明,相比傳統的訪問日志分析系統,本系統在資料采集安全性大大提高,且分布式存盤系統HDFS及分布式計算系統均滿足高可用行,綜合分析可得,本文平臺可以更加安全地,穩定地完成訪問日志的離線和實時分析所需要的日志需求,已完成本次專案部署,
(注:本專案由團隊6人合作完成
成員名單:Aisen,康康,飛飛,詩詩,翁翁,升升)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382825.html
標籤:其他
上一篇:31天拿下騰訊、阿里、京東offer,只憑這份P9架構師整理的Java核心技術
下一篇:別再用定時任務來關閉超時訂單了
