◆林朝熾
?
基于Elastic Stack的分布式數(shù)據(jù)采集與分析平臺(tái)探索
◆林朝熾
(中國(guó)人民銀行溫州市中心支行 浙江 325029)
分布式架構(gòu)、大數(shù)據(jù)技術(shù)應(yīng)用是當(dāng)下人民銀行IT技術(shù)架構(gòu)轉(zhuǎn)型的兩個(gè)重要方向。研究利用開(kāi)源軟件技術(shù)和工具,是推動(dòng)人民銀行IT技術(shù)架構(gòu)轉(zhuǎn)型,提高人民銀行信息技術(shù)架構(gòu)自主可控的重要手段。分布式架構(gòu)技術(shù)在賦予應(yīng)用系統(tǒng)高可用性、高可靠性等諸多優(yōu)勢(shì)的同時(shí),也帶來(lái)系統(tǒng)運(yùn)維監(jiān)控高度復(fù)雜、應(yīng)用故障和網(wǎng)絡(luò)異常事件日志排查定位更加困難等諸多難題。溫州市中支在杭州中支指導(dǎo)下試點(diǎn)運(yùn)用Elastic Stack技術(shù),實(shí)現(xiàn)人民銀行業(yè)務(wù)網(wǎng)網(wǎng)絡(luò)設(shè)備、應(yīng)用系統(tǒng)日志數(shù)據(jù)和網(wǎng)絡(luò)通信數(shù)據(jù)的采集、存儲(chǔ)、檢索與分析,服務(wù)器與應(yīng)用程序性能指標(biāo)數(shù)據(jù)的采集,應(yīng)用層服務(wù)可用性和設(shè)備狀態(tài)的在線監(jiān)控,不僅對(duì)完善分布式架構(gòu)應(yīng)用運(yùn)維手段進(jìn)行了有益嘗試,也為完善數(shù)據(jù)采集手段和大數(shù)據(jù)分析工具提供了有益借鑒。
分布式;大數(shù)據(jù);Elastic Stack;日志
Elastic Stack基于開(kāi)源軟件協(xié)議Apache License 2.0,是近些年興起的一種分布式數(shù)據(jù)采集與分析套件,包括全文搜索引擎ElasticSearch、日志解析工具Logstash、數(shù)據(jù)分析與可視化平臺(tái)Kibana,數(shù)據(jù)采集組件Beats,是一種以搜索引擎技術(shù)為核心的開(kāi)源分布式大數(shù)據(jù)解決方案。
Elastic Stack支持多種數(shù)據(jù)源,支持?jǐn)?shù)據(jù)集中處理,數(shù)據(jù)解析方式靈活簡(jiǎn)單,支持關(guān)鍵詞秒級(jí)搜索,支持組合條件搜索,能夠按照時(shí)間段對(duì)特定字段進(jìn)行統(tǒng)計(jì),支持?jǐn)?shù)據(jù)可視化展示,可以大大增強(qiáng)運(yùn)維人員的應(yīng)用系統(tǒng)運(yùn)行監(jiān)控和狀態(tài)感知能力,增強(qiáng)應(yīng)用故障分析排查能力。Elastic Stack兼容分布式開(kāi)源消息中間件Kafka,能夠進(jìn)一步擴(kuò)展部署規(guī)模,均衡網(wǎng)絡(luò)傳輸,避免數(shù)據(jù)丟失。主要特性如下:
(1)分布式架構(gòu):Elastic Stack的主要組件Elasticsearch、Logstash等均支持分布式部署,配合分布式消息中間件Kafka和高可用服務(wù)管理組件Zookeeper,不同組件可部署在不同服務(wù)器,實(shí)現(xiàn)整個(gè)平臺(tái)的分布式部署。
(2)橫向擴(kuò)展:Elastic Stack的主要組件Elasticsearch、Logstash以及Kafka均支持水平擴(kuò)展,可通過(guò)橫向擴(kuò)展增加節(jié)點(diǎn)的方式,擴(kuò)充整個(gè)平臺(tái)的存儲(chǔ)容量和數(shù)據(jù)處理能力。最大可擴(kuò)展到上百臺(tái)服務(wù)器,實(shí)現(xiàn)PB級(jí)別數(shù)據(jù)量的存儲(chǔ)和處理。
(3)高實(shí)時(shí)性:Elastic Stack采用分布式多副本數(shù)據(jù)存儲(chǔ),內(nèi)嵌有基于索引倒排技術(shù)的搜索引擎,能提供很高的數(shù)據(jù)查詢檢索能力,可實(shí)現(xiàn)億級(jí)數(shù)據(jù)量下的秒級(jí)查詢響應(yīng)。
(4)高可靠性:Elastic Stack的核心組建Elasticsearch同時(shí)提供了分布式多副本數(shù)據(jù)存儲(chǔ)技術(shù),數(shù)據(jù)分片(Shard)的多個(gè)副本分布在不同的數(shù)據(jù)節(jié)點(diǎn)(DataNode),確保單點(diǎn)故障時(shí)數(shù)據(jù)的安全可靠。
(5)高可用性:Elastic Stack的各組件均支持以集群方式部署,能有效防止單點(diǎn)故障,實(shí)現(xiàn)集群服務(wù)整體的高可用性。
目前,溫州市中支試點(diǎn)部署的Elastic Stack集群分為四層,共包括6個(gè)節(jié)點(diǎn),具體如圖1所示:數(shù)據(jù)采集層1個(gè)節(jié)點(diǎn)(Packetbeat+Heartbeat),其余數(shù)據(jù)采集與傳輸Beats代理程序直接部署在各應(yīng)用服務(wù)器上。數(shù)據(jù)處理及緩存層2個(gè)節(jié)點(diǎn)(Logstash+Kafka+ZooKeeper),數(shù)據(jù)持久化層數(shù)據(jù)節(jié)點(diǎn)2個(gè)節(jié)點(diǎn)(Elasticsearch),數(shù)據(jù)檢索展示層1個(gè)節(jié)點(diǎn)(Elasticsearch+Kibana)。
整個(gè)Elastic Stack集群以虛擬服務(wù)器形式部署在深信服超融合基礎(chǔ)架構(gòu)虛擬化管理平臺(tái)上,Elastic Stack各組件的版本為5.3,虛擬機(jī)使用CentOS7.0-x86_64操作系統(tǒng),配置4核虛擬CPU,8GB內(nèi)存,500GB虛擬硬盤(pán)空間。目前各節(jié)點(diǎn)虛擬機(jī)CPU平均負(fù)載在10%、內(nèi)存使用率在37%左右。如果某個(gè)層次節(jié)點(diǎn)負(fù)載過(guò)高,可通過(guò)增加相應(yīng)功能節(jié)點(diǎn)數(shù)量,實(shí)現(xiàn)水平擴(kuò)展系統(tǒng)容量和處理能力。
溫州市中支已利用Elastic Stack平臺(tái)實(shí)現(xiàn)多種系統(tǒng)的運(yùn)維數(shù)據(jù)源采集及運(yùn)行監(jiān)控,具體包括:38臺(tái)業(yè)務(wù)網(wǎng)網(wǎng)絡(luò)設(shè)備日志數(shù)據(jù);10臺(tái)Windows服務(wù)器的系統(tǒng)、安全和應(yīng)用日志;11臺(tái)服務(wù)器的CPU、內(nèi)存、磁盤(pán)、進(jìn)程等性能指標(biāo)。監(jiān)控的操作系統(tǒng)種類(lèi)包括Windows Server 2003/2008,SUSE Linux 11、Ubuntu Linux 14.04、Centos7。利用PacketBeat實(shí)現(xiàn)了深信服超融合基礎(chǔ)架構(gòu)管理平臺(tái)集群流量的實(shí)時(shí)采集,并實(shí)現(xiàn)了應(yīng)用層HTTP、MySQL、DNS等協(xié)議的在線解析,關(guān)聯(lián)事務(wù)的請(qǐng)求與響應(yīng),監(jiān)控各主機(jī)發(fā)送和接收流量大小。通過(guò)HeartBeat監(jiān)控12個(gè)業(yè)務(wù)網(wǎng)WEB服務(wù)的可用性和18臺(tái)設(shè)備UP/Down狀態(tài)。
該平臺(tái)自2017年4月上線運(yùn)行以來(lái),一直穩(wěn)定運(yùn)行。Elasticsearch數(shù)據(jù)節(jié)點(diǎn)已累計(jì)接收日志及其它數(shù)據(jù)量382.2GB,數(shù)據(jù)分片(Shard)18248個(gè),索引量108502375個(gè)。目前Elastic Stack平臺(tái)保持較高的數(shù)據(jù)查詢檢索能力,創(chuàng)建Kibana儀表盤(pán)(Dashboard) 37個(gè),可進(jìn)行包括多種數(shù)據(jù)查詢檢索,數(shù)據(jù)檢索響應(yīng)時(shí)間為秒級(jí)。例如在Kinaba的Discover中輸入關(guān)鍵字 “Intrusion Detected”搜索,秒級(jí)返回查詢結(jié)果并可視化,結(jié)果顯示“YjyZJwnz_cn-cswB01”的Ethernet0/4接口有大量非法MAC接入告警信息,網(wǎng)絡(luò)管理員可以快速對(duì)入侵事件進(jìn)行響應(yīng)(見(jiàn)圖2)。也可以通過(guò)采集分析MySQL數(shù)據(jù)庫(kù)服務(wù)器網(wǎng)絡(luò)通信數(shù)據(jù),可透明分析SQL操作類(lèi)型、統(tǒng)計(jì)MySQL錯(cuò)誤、MySQL吞吐量、最頻繁和最慢的MySQL查詢語(yǔ)句等,幫助管理員深入了解數(shù)據(jù)庫(kù)運(yùn)行情況。
圖2 日志關(guān)鍵字檢索
本文研究了開(kāi)源Elastic Stack技術(shù)棧,通過(guò)分布式架構(gòu)實(shí)現(xiàn)網(wǎng)絡(luò)日志、操作系統(tǒng)日志、應(yīng)用日志,網(wǎng)絡(luò)流量、服務(wù)器與應(yīng)用程序性能指標(biāo)數(shù)據(jù)的采集、存儲(chǔ)、檢索,通過(guò)分析與可視化展示,使運(yùn)維人員可以從網(wǎng)絡(luò)、操作系統(tǒng)、應(yīng)用服務(wù)等多個(gè)層次,多個(gè)方位,全局視角進(jìn)行態(tài)勢(shì)感知,從而提高系統(tǒng)故障和網(wǎng)絡(luò)安全事件定位準(zhǔn)確性,提高故障排查效率和增強(qiáng)網(wǎng)絡(luò)安全監(jiān)控能力。
[1]吳兆松.zabbix企業(yè)級(jí)分布式監(jiān)控系統(tǒng)[M].北京:電子工業(yè)出版社,2014.
[2]李艷鵬,楊彪.分布式服務(wù)架構(gòu):原理、設(shè)計(jì)與實(shí)戰(zhàn)[M]. 北京:電子工業(yè)出版社,2017.
[3]高凱.大數(shù)據(jù)搜索與日志挖掘及可視化方案:ELK Stack:Elasticsearch、Logstash、Kibana(第2版)[M].北京:清華大學(xué)出版社,2016.
[4]詹志輝,鄭倚志.數(shù)據(jù)中心跨區(qū)域一體化運(yùn)營(yíng)[M].北京:清華大學(xué)出版社,2014.
[5]Elastic Stack使用文檔.[EB/OL]. https://www.elastic.co/guide/index.html.