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