龔萍
(中國移動(深圳)有限公司,廣東 深圳 518048)
ELK-Stack在業務監控系統中的應用
龔萍
(中國移動(深圳)有限公司,廣東 深圳 518048)
隨著企業信息化程度的不斷提高以及大規模集群的部署應用,日常運維工作面臨著越來越嚴峻的考驗,借助自動化運維手段提高系統運維效率成為一種趨勢。以日志數據為突破口,借助ELK-Stack開源軟件,構建日志分析管理平臺,并與現有監控運維類平臺進行融合,能快速增強系統運維分析能力,有效提高日常運維效率。
ELK;日志分析;自動化運維;監控
隨著云計算和大數據技術的不斷發展,IT系統架構和技術框架的變革,驅動著系統運維從傳統的IT運維管理開始向IT運維分析轉變,從運維人員手工操作向自動化運維服務轉變。在日常運維工作中,操作系統、應用服務和業務邏輯等主要維護對象,每天都在不停地產生日志數據,這些數據包含了系統可用性信息、效能信息、安全信息、異常信息、錯誤信息等系統信息,在信息價值、獲取成本上具有特有的優勢。因此,日志數據的分析挖掘將成為IT運維分析的首要突破口。
過去,日志數據基本都存在于單機磁盤上,通過運維工程師登陸對應服務器,手工輸入命令進行臨時的、事后的分析和審計。在大數據的時代,海量日志分布在各個不同的地方,傳統的日志處理方案顯得非常笨拙和低效,對日志進行統一管理和分析成為亟待解決的問題。ELK技術棧的出現,實現了海量日志的統一管理和高效的挖掘分析,有效地發揮了系統日志在故障告警、問題定位、性能優化等實際運維中的作用,極大地提高了IT系統的運維效率。
ELK是一整套解決方案,是三個軟件產品的首字母縮寫:Elasticsearch,Logstash和Kibana。這三款軟件都是開源軟件,通常配合使用,而且又先后歸于Elastic.co公司名下,故被簡稱為ELK技術棧。
Elasticsearch是一個建立在全文搜索引擎Apache Lucene基礎上的實時的分布式搜索和分析引擎,使用Java語言編寫。它可以用于全文搜索,結構化搜索以及實時分析,具備以下特點:支持分布式實時文件存儲,并將每一個字段都編入索引;文檔導向,所有的對象全部是文檔;高可用性,易擴展,支持集群、分片和復制;接口友好,支持JSON。
Logstash是一個具有實時渠道能力的數據收集引擎,使用JRuby語言編寫。Logstash幾乎可以訪問任何數據,它的四大組件(Shipper、Broker&indexer、Search&Storage和Web Interface)可以和多種外部應用結合,同時支持彈性擴展。
Kibana基于Apache開源協議,使用JavaScript語言編寫。它為Elasticsearch提供分析和可視化的Web平臺,可以在Elasticsearch的索引中查找、交互數據,并生成各種維度的表圖。
圖1展示了ELK-Stack中Logstash,Elasticsearch和Kibana三款軟件的組織方式及協同工作的原理。

圖1 ELK-Stack體系架構圖
ELK技術棧在日志管理與分析方面具備以下優點:
(1)處理方式靈活:Elasticsearch是實時全文索引,不需要像storm那樣預先編程才能使用;
(2)配置簡易上手:Elasticsearch全部采用JSON接口,Logstash是Ruby DSL設計,都是目前業界最通用的配置語法設計;
(3)檢索性能高效:雖然每次查詢都是實時計算,但是優秀的設計和實現基本可以達到百億級數據查詢的秒級響應;
(4)集群線性擴展:不管是Elasticsearch集群還是Logstash集群都是可以線性擴展的;
(5)前端操作炫麗:Kibana界面上,只需要點擊鼠標,就可以完成搜索、聚合功能,生成炫麗的儀表板。
本次應用中,嘗試將ELK技術棧融入某業務監控系統,通過在該系統中部署日志管理分析模塊,實現日志統一管理與分析展現,達到提升運維自動化程度,從而提高運維效率的目標。
為保證日志分析服務的可擴展性,采取搭建獨立的ELK日志分析模塊,然后以與原業務監控系統的能力貫通的方式構建整體應用框架。系統整體框架如圖2所示。
這個架構中,首先在業務監控系統監控的各個監控對象(應用主機)上分別部署獨立的Logstash-Agent進行原始日志采集,所有采集到的日志集成到Redis集群中,利用消息隊列機制降低數據丟失的隱患;隨后Logstash的Indexer組件將負責從Redis中取出日志數據,進行日志解析轉換等數據預處理工作,并將經過預處理的數據輸入Elasticsearch集群進行進一步的處理與存儲;最終Kibana負責完成面向用戶的日志數據統計、分析與展現。
在整個系統中,ELK日志分析模塊與業務監控系統各有一套獨立的“數據采集-數據處理-數據分析-數據展現”機制,互不影響。ELK日志分析模塊只需根據監控需要,將日志處理后生成的相關數據或分析結果傳送給業務監控系統,借助系統原有的監控告警及運維工單流轉功能,即可發揮日志分析在日常監控運維中的作用。同時,ELK日志分析模塊的獨立性保障了往后其它應用系統日志的快速接入。
按照官方網站的安裝指南完成ELK基礎環境搭建,本文不贅述具體安裝過程,只對安裝完成后的重要配置進行說明。
(1)配置日志生成樣式
以采集nginx日志為例,在配置文件nignx.conf中指定日志輸出格式及日志存放路徑:

(2)配置Logstash采集日志數據寫入Redis
創建Logstash配置文件,指定日志采集路徑與輸出路徑:


(3)配置Logstash讀取Redis中的日志數據寫入Elasticsearch
配置輸入指向Redis和輸出指向Elasticsearch:

(4)配置Elasticserach
只需要在Elasticsearch配置文件elasticsearch.yml中進行相關路徑和端口設置:

(5)配置Kibana
只需要在Kibana配置文件kibana.yml中配置Elasticsearch路徑:

(6)訪問Kibana
所有安裝和配置完成后,在瀏覽器中輸入http∶//192.168.1.20∶5601即可看到最終的Kibana界面,如圖3所示。
在本次應用中,ELK日志分析模塊主要為原業務監控系統提供日志集中管理和日志分析兩大功能。

圖3 ELK日志分析統計示意圖
在日志管理方面,不僅將以往分散在各臺主機的日志進行了集中管理,而且簡化了日志查詢的方式,大幅調高了日志查詢的效率:引入ELK之前,人工查看單臺應用主機日志平均耗時5分鐘;引入ELK之后,所有應用主機日志均可在界面上集中查詢,平均耗時1s,且不受應用主機數量和日志數量的限制。
在日志分析方面,ELK的分析挖掘能力,對監控過程中的異常告警和故障診斷起到了極大的輔助作用:通過從日志中挖掘出被監控系統的各項指標,及時反映系統的健康狀態和性能瓶頸,改變了原先需要編寫復雜腳本才能部署監控的方式,不僅效率更高,同時對系統正常的業務運行沒有任何影響;通過對多種日志的快速檢索、關聯分析和直觀展現,有效地幫助運維人員提高了定位故障原因的速度和難度。
大數據時代,服務器規模的不斷擴大和分布式應用的快速普及,使得系統運行監控和日常維護變得尤為重要,而日志的管理和利用是其中一個不可忽視的部分。本文通過介紹ELK日志分析模塊在業務監控系統中的部署方式和應用情況,體現了ELK技術棧在實現自動化運維分析服務、增強系統監控運維能力、提升日常運維效率方面的突出作用,也為以ELK技術棧為代表的自動化運維工具在IT系統運維工作中的快速引入和廣泛使用提供了參考。
[1]饒琛琳.ELK Stack權威指南[M].北京:機械工業出版社,2015.
[2]魏山林.基于ELK的日志分析系統[J].電腦知識與技術,2017(2):69-70.
[3]龍煒.自動化運維工具在企業信息管理系統中的應用[J].微型機與應用,2017,36(5):102-104.
Application of ELK-Stack in Business Monitoring System
Gong Ping
(China Mobile(Shenzhen)Co.,Ltd.,Shenzhen 518048,Guangdong)
With the continuous improvement of enterprise informatization and the deployment of large-scale clusters,daily operation and maintenance work is facing more and more severe test.Therefore,it has become a trend to improve the system operation efficiency by means of automated operation and maintenance.This paper builds the log analysis and management platform based on ELK-Stack,which integrates with the existing monitoring and operation platform.It can enhance the system operation and analysis ability,and improve the efficiency of daily operation
ELK;log analysis;automated operation and maintenance;monitoring
TP277
A
1008-6609(2017)10-0065-03
龔萍(1989-),女,湖北仙桃人,本科,研究方向為業務監控、自動化運維。