王軍利 楊衛中
在傳統的基于IOE集中架構的IT系統中,部署的主機及軟件數量較少,產生的日志種類和數量也較少;隨著互聯網技術的快速發展,“平臺+應用”的分布式架構成為主流,主機數量和軟件規模急劇增加,日志分析變得日益困難。本文主要針對基于ELK架構的日志分析系統進行研究,實現對分布式部署的主機和軟件日志進行收集、分析、存儲,并提供良好的UI界面進行數據展示、快速搜索、處理分析等功能,從而提升日志分析、問題定位、性能優化等工作的效率。
隨著新一代BSS的上線,IT系統架構發生了巨大變化,從傳統的IOE集中架構過渡為當前流行的“平臺+應用”的分布式架構。目前新一代BSS系統運行在近500臺x86物理機和虛擬機上,眾多的主機、組件及應用,每天合計產生TB級的日志,這些日志往往被運維人員忽略,加上日志分析工具的缺乏,這些日志遠沒有被有效利用起來。因此,對各組件、各環節、各路徑的日志的分析與管控,是傳統業務運維走向“統一管控、智能運營”目標的重要手段,是滿足IT系統開放、敏捷、智能化要求的重要保障。
在復雜的分布式的主機及應用集群中,記錄日志的方式多種多樣,且不易歸檔,以及無法提供有效的日志監控手段等,無論是開發人員還是運維人員都無法高效搜索日志內容從而快速準確定位問題,因此迫切需要一個集中的、獨立的、能夠收集管理各個應用和服務器上的日志,并提供良好的UI界面進行數據展示、快速搜索、處理分析等功能的工具或系統。
經過分析研究,基于開源ELK組件的日志分析系統(以下簡稱該系統)提供了相應的解決方案,該方案能高效、簡便的滿足以上場景。
(一)ELK架構及特點
ELK架構主要由ElasticSearch、Logstash和Kibana等三個開源軟件組成,其中E(ElasticSearch,也簡稱ES)是分布式搜索引擎,完成搜索、分析、存儲數據等功能;L(Logstash)是收集、分析、過濾日志的工具,支持多種數據獲取方式;K(Kibana)為EL提供友好的日志分析Web界面,并可以匯總、分析和搜索日志。其架構見圖1。

ELK原理簡述如下:由Logstash收集和處理各種日志并存放到ES集群中;由Kibana從ES集群中查詢數據,并生成圖表,最后返回給客戶端。
ELK主要特點如下:
開源組件部署:ELK中使用到的各類組件均為開源軟件,降低成本;
集中化日志管理:將不同主機上的各類日志進行收集、匯總和存儲;
分布式集群部署:平臺自身采用分布式架構部署,自身可靠性高,如圖1所示。
日志傳輸實時可靠:該系統中引入實時消息隊列kafka,提高了日志傳輸的實時性和可靠性;
強大的搜索功能:ES以分布式搜索的方式快速檢索,支持DSL語法;
良好的展示和UI分析功能:可以展示詳細的圖表信息,定制展示內容;提供友好的日志分析Web界面,可進行匯總、分析和搜索。
(二)ELK部署規劃
1. 主機集群規劃
目前該系統采用三臺主機集群部署:

2. 日志信息規劃
日志規劃包括日志字段定義、不同組件日志定義、日志索引規則等,主要涉及Host、Teledb(mysql)、Kafka、Redis等組件。
日志字段定義如下:

3.組件日志規劃

(三)ELK部署過程簡述
ElasticSearch部署:經過解壓elasticsearch-7.2.0.zip、配置elasticsearch.yml、啟動服務,完成部署。
Logstash部署:經過解壓logstash-7.2.0.tar.gz、配置agent.conf和kafka.conf、啟動服務,完成部署。
Kibana部署:經過解壓kibana-7.2.0.tar.gz、配置kibana.yml、啟動服務,完成部署。
通過上述規劃、部署和配置,到此該系統已基本就緒,下面展示下在生產環境中的應用情況。
(一)日志查詢
通過以下幾種方式可以查詢到Teledb(mysql)組件的相關日志:登陸kibana界面,點擊Discover,默認顯示15分鐘內信息;選擇要顯示的字段如host、thread,完成后即可顯示其信息,見圖2。通過關鍵字查找日志,在界面輸入查詢關鍵字,即可查詢相關日志。
(二)組件監控
該系統可以對組件進行指標監控,如圖3所示對Teledb(mysql)監控的展示,包括mysql操作命令、mysql進程、當前連接、打開表的情況等指標。

該系統在實際應用后,原來逐個到服務器上查詢日志排查問題的手工方式得到了很大改善;運維人員搜索日志、定位問題、解決故障的效率得到了很大提升。因此該系統可以有效降低故障恢復時間目標RTO,加快IT系統恢復,減少故障對客戶感知的影響,提升客戶滿意度和中國電信的品牌形象。
從實際使用情況看,使用該系統前,我們搜索目前70多套Mysql數據庫的日志,需要到70多臺主機上去逐個檢查,消耗1個小時以上的時間;使用該系統后,基本上是一鍵搜索,在1分鐘內即可返回結果,從時間上看效率提升了60倍以上。

參照目前市場上比較成熟的日志監控商業工具splunk、日志易等收費標準,根據測算BSS中40多套應用及組件,日均日志量TB級,理論上節省至少百萬元的成本投入。按照集團規劃,預期三年內隨著IT應用全面上云的實施,該系統會涵蓋更多的應用和組件,則可以節省更多的成本。
作者單位:中國電信股份有限公司河南分公司