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

圖2 日志關鍵字檢索
本文研究了開源Elastic Stack技術棧,通過分布式架構實現網絡日志、操作系統日志、應用日志,網絡流量、服務器與應用程序性能指標數據的采集、存儲、檢索,通過分析與可視化展示,使運維人員可以從網絡、操作系統、應用服務等多個層次,多個方位,全局視角進行態勢感知,從而提高系統故障和網絡安全事件定位準確性,提高故障排查效率和增強網絡安全監控能力。
[1]吳兆松.zabbix企業級分布式監控系統[M].北京:電子工業出版社,2014.
[2]李艷鵬,楊彪.分布式服務架構:原理、設計與實戰[M]. 北京:電子工業出版社,2017.
[3]高凱.大數據搜索與日志挖掘及可視化方案:ELK Stack:Elasticsearch、Logstash、Kibana(第2版)[M].北京:清華大學出版社,2016.
[4]詹志輝,鄭倚志.數據中心跨區域一體化運營[M].北京:清華大學出版社,2014.
[5]Elastic Stack使用文檔.[EB/OL]. https://www.elastic.co/guide/index.html.