您好,登錄后才能下訂單哦!
建設背景及現狀
背景
在過去,華泰證券具有系統運維繁瑣、日志不能長期保存、日志數據價值沒有挖掘、大數據領的一角的四個特點。所謂的系統運維繁瑣是指系統多、獨立建設、服務產生大量日志、運維時需要登陸服務器才能查看日志等,遇到復雜問題時需要一臺臺地登陸服務器搜索相關日志文件才能定位問題。日志沒有長期保存是指根據證券行業相關的法律法規,日志數需要保存一定年限并支持隨時調取。日志數據價值沒有挖掘是指日志中包含非常有價值的信息,但并沒有深入挖掘。大數據領域的一角是指Hadoop主要面向的是結構化數據的存儲和分析,而不是非結構化數據的存儲和分析。
現狀
2016年6月,華泰證券開始建設Elasticsearch集群,由于機房通過專線進行聯網,當數據量太大時機房會被占用,所以機房不一樣會導致需要許多個集群,因此集群需要單獨建設。
Elasticsearch建設容量為120T,每天數據量會占用 600G甚至800G的空間,由于Elasticsearch容量比較小,所以日志保存時間非常短,有些只能保存兩個月甚至幾個星期,只有非常重要的信息才能保存三個月。在未來計劃將Elasticsearch容量進行擴展,預期日志保存時間能夠達到一年甚至兩年以上。
華泰證券支持的應用包括支撐漲樂、理財平臺、監控數據分析、日志分析等。例如理財平臺,Elasticsearch能夠發現用戶的行為,并給出用戶建議方案。展望未來,中國證券市場已發生根本性轉變,現在正面臨著歷史性的發展機遇。面對新的形勢,華泰證券將繼續堅持規范化、集團化、國際化發展戰略,進一步加快公司做大做強步伐,力爭盡快使公司成為具有核心競爭力的、業務規模和綜合實力進入行業前列的證券控股集團。
應用實踐
日志搜索
在日志搜索中,日志源是整個ES上的第一部分,跟ELK的采集與展示基本一致,它主要分為日志采集模塊、采集代理、日志存儲模塊、日志檢索模型、前臺展示模塊、采集管理模塊。其中,日志采集模塊又分為采集代理和日志處理兩部分。采集處理主要用來做數據的緩存,日志處理是把日志消費成兩份,一份消費進入到ES,另一份消費日志進行實時報警。日志檢索模塊是對日志進行展示,它主要有三個功能,即統一的日志檢索、實時監控報警、統一權限管理功能。
日志分析
數據源不僅包括日志,還包括網頁和數據庫。數據源通過morphling將數據采集放置三個庫中,三個庫包含ES、HDFS和Hbase。ES最終進行日志檢索,HDFS和Hbase最終通過Hve和Kylin進行展現。
鏈路管理系統
在鏈路管理系統中,由數據質量分析、統一采集框架、自動化部署、應用監控構成一個內循環系統。
對于數據質量的分析而言,用戶要求數據一條不能多一條不能少,但在實際上對于分支系統來講,由于鏈路比較長,所以幾乎是不可能實現數據不多不失的。但是鏈路管理系統可以做到的是去輔助鏈路發現是否有質量問題,并在這個系統里及時對數據質量進行分析。例如,一個節點發送1000萬條數據,通過鏈路管理最終進入到ES。在這個過程中可能會出現數據延遲的現象,若發送的曲線和對應發送的最終曲線一致,那么就說明數據質量是完好的,即最終數據是一致的。若兩條曲線不能擬合,那就說明有數據已丟失。
對于統一采集框架而言,即在采集的日志文件中對日志進行標準化,比如,日志應該包含什么等等。
自動化部署即對部署過程的每一個步驟自動化,目前部署過程涉及到應用、環境和部署流程等。要實現自動化首先要做的是將需要部署的應用、環境和流程進行建模,并需要一個自動化部署系統來支撐。
應用監控,即每天巡檢只需要通過應用監控系統就能夠知道每個鏈路上的節點是否正常,如果異常則會報警。
使用經驗
華泰證券Elasticsearch的使用有六點注意事項。
第一,磁盤目錄不易過多,建議做Raid5,便于管理;
第二,索引分片根據實際需求分配;
第三,冷熱分離策略;
第四,根據業務特點進行集群部署,通過TrieNode連接;
第五,元數據不易過多,過多會導致集群性能降低,觸發BUG;
第六,設置節點離開時的分片延遲分配策略。
其中,對于磁盤目錄不易過多問題而言,需采取官網建議,即采取裸盤。由于單臺機器有24塊盤,長期運行當某些分片都落在某個磁盤上時,會造成單盤的讀寫熱點問題,且這些分片的數據量較大時,這個磁盤的空間很容易爆滿,ES也不會進行數據均衡,一旦磁盤超過閾值,整個節點都不會再分配分片,造成空間利用率不足的情況。可以通過新購機器的磁盤做Raid5和統一管理來解決這個問題,這樣既不會出現某一塊盤爆滿,還能提升整體I/O吞吐,將老機器逐漸替換。
Jstat發現Master持續GC時,CPU使用率會非常高。可能存在有內存泄露問題,這就需要把Jmap內存dump出來分析,接著進一步分析漏點,最后修改源碼并驗證。
對于使用經驗中的第六點, 集群運行很久后,集群分片就會越來越多,元數據就會多,當集群分片個數超過1.5萬時,性能將出現問題,運行一段時間后集群運行不正常,節點就會無法連接Master。在集群實際運轉過程中,往往會出現節點由于網絡或GC等原因從集群中離開、日常運維時節點下線的情況。集群為避免數據丟失,必須保證每個分片都有足夠的副本,所以會產生大量的網絡I/O,而這時如果節點重新加入集群,Elasticsearch會為該節點再次分配數據分片,這將再次導致大量的網絡I/O操作。在這種情況下,集群長期處于Yellow狀態,恢復非常緩慢,通過監控可看到分片處于遷移狀態。這就需要通過設置參數index.unassigned.nod_left.delayed_timeout來延遲分片平衡的時間,為運維和節點異常恢復提供緩沖時間。
【本文轉自 云棲社區 作者:云跡九州 原文鏈接:https://yq.aliyun.com/】
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。