Logstash & Beats,在整個 Elastic Stack 數據鏈路中,屬於前數據鏈路,目的是把多源數據接入到 Elasticsearch 中,並由 Elasticsearch 進行各種分析及檢索,所以對於 Elastic Stack 來說,前數據鏈路的數據接入難度及複雜度,決定了業務數據實時監測及問題定位的難度。如何快速、簡單、低成本接入多源數據?本文告訴你答案。
本文作者:沐澤 — 阿里巴巴高級產品經理
本文字數:3454
閱讀時間:6~10分鐘
您將瞭解:
1、傳統方式接入多源數據的難點
2、雲上輕量化數據解決方案
3、雲上數據接入的核心優勢
4、如何搭建雲上日誌分析平臺
5、如何實現數據遷移及數據同步
6、如何搭建 ELK 運維監控體系
【全鏈路雲上Elastic Stack 全景圖】100%兼容開源,9大獨有能力
----> 直播回顧 | 請點擊觀看 :阿里雲Elasticsearch 輕量化數據接入解決方案
數據接入的場景和挑戰
(圖 1)
場景一:收集日誌文件,通過故障分析和告警監控,定位業務系統異常。
該場景下,當面臨大規模業務場景,服務器數量1000+、日誌增量超過TB級的情況下,用戶會想如何降低日誌接入門檻、如何實現網絡訪問配置的一致性,以及在多主機配置上,如何實現標準化和集中化管理。
場景二:雲上 MySQL、Maxcompute 等數據庫的業務數據接入阿里雲 Elasticsearch,或者自建的 Elasticsearch 集群上做查詢和檢索。
在該場景下,會有很多數據的搜索、解析,以及後續的聚合、實時查詢分析的工作,所以如何處理雲上多樣的數據來源和數據格式,並在處理過程中保障完善的監控報警、日常處理方案,這些都是整個數據接入場景下面的問題及挑戰。
傳統數據鏈路接入流程
(圖 2)
在搭建開源 Elastic Stack 集中式日誌平臺的時候,我們可以在網上找到很多教程,最常見的就是在應用服務器上,通過部署 Filebeat 去採集服務器日誌文件,並近實時推送到 Logstash,再由 Logstash 數據管道的 Pipeline,對數據進行處理後,推送到 Elasticsearch 進行儲存和分析。
在操作上述流程時,我們會面臨較多複雜、冗餘動作。
首先大家需要在應用服務器上,下載並解壓 Beats 安裝包,但當用戶的業務規模較大時,將面臨數百臺服務器的 Beats 安裝,同時還要配置 Beats 採集器,並逐一驗證。在這個過程中,還會遇到網絡一致性、監測採集器 Agent的運行異常的情況。而通過本地搭建統一的監測平臺,又是一件比較困難的事情。
當用戶希望把數據通過 Beats 傳輸到 Logstash,並做後續處理時,還需要單獨購買 ECS 機器,安裝部署 Logstash 實例。最後是配置 Logstash Pipeline,並啟動管道處理。那麼在用戶對數據處理的過程中,同樣會面臨複雜的處理邏輯,比如多管道的集中處理。如果還需要使用額外插件,需要手動安裝配置。
以上問題都是比較細節的操作,但對開發者來說,上述數據鏈路的接入流程,是非常麻煩且會耗費大量的精力和成本的。而且在運維監控及業務拓展方便,依舊會面臨以上操作的重複配置操作。
雲上輕量化數據接入方案
通過雲上輕量化接入方案,簡便、快速接入多源數據。
(圖 3)
阿里雲 Elasticsearch 控制檯,不僅僅是對數據的檢索和分析,還包括 Beats 數據採集中心,可以幫助用戶集中下發客戶端,也提供 Logstash 數據傳輸工具,在 Elasticsearch 數據搜索和分析過程中,會結合 Kibana 可視化數據管理。還有 X-pack 商業插件能力,其中包括APM / 可視化 / Monitor 等各種功能組件。
雲上 Beats 數據採集中心
在最新上線的阿里雲 Beats 數據採集中心,幫助用戶接入 ECS 服務器的日誌數據,只需要兩步
(圖 4)
第一步:採集器的配置;
支持用戶選擇採集器類型和版本,目前支持通用的Filebeat、Metricbeat、Auditbeat 和 Heartbeat 四種,版本目前支持6.8.5的,與阿里雲 Elasticsearch 和 Logstash 兼容。
用戶可以靈活的配置他想要的 Beats 採集器的 Output,包括是否使用Monitor、是否啟用 kibana Dashboard 這樣的功能。我們也會幫助用戶做一些校驗,保證配置能快速拉起。
(圖 5)
第二步:採集器安裝;
通過解析用戶上一步的“Out / put”,幫用戶過濾網絡情況,並獲取專有網絡下的 ECS 機器,這樣能保證網絡的連通性,不需要用戶在安裝的過程中,再去監測網絡是否相通。
另外在列表上,我們支持用戶批量選擇服務器。用戶在選擇、安裝採集器實例後,實現一鍵安裝並下發同樣的Agent。
用戶通過以上兩個步驟做簡單UI化配置,就能夠實現快速接入。同時在運維檢測中,通過一些包括狀態和心跳的監測,更好的監控 Agent 安裝和運行的情況。
Logstash 數據處理全託管
阿里雲 Logstash 提供數據處理雲上全託管服務,降低用戶部署和運維成本。
(圖 6)
能力一:可彈性收縮的獨立部署
Logstash 實例是部署在 VPC 網絡下。在同一集群下,用戶可以選擇部署多個 Logstash 節點,每個節點可以部署多個 Pipeline 進程,從而處理不同的數據管道流程。
在雲上部署的時候,隨著用戶量、數據量的增多,用戶可以通過水平擴展方式,增加節點個數,靈活滿足用戶業務擴縮容的需求。
能力二:完善的雲上運維監控;
不管是 Elasticsearch,還是 Logstash ,用戶不僅是接入阿里雲的雲監控,同樣可以自定義報警規則,從而較好的監測在數據傳輸和處理的過程中出現問題,並對異常排查。
由於本身 Elasticsearch 和 Logstash 可以實現打通,當用 Logstash 去關聯阿里雲 Elasticsearch 實例,就能夠用 X-pack 監測,並通過 Kibana 對各種指標監控。
(圖 7)
能力三:提供 Logstash 開源原生能力
阿里雲 Logstash 100%支持開源能力,其中包括帶條件和多管道的動態數據流。通過管理 Elasticsearch 實例,使用 X-pack 對數據管道做集中化管理;再者就是通過身份驗證和加密,來保障數據傳輸過程中的安全性。
能力四:阿里雲 Logstash 獨有能力
1、獨立管道管理和配置界面;用戶可以在上面進行創建、修改和部署,甚至是複製現有管道配置。簡單兩步,幫助用戶完成整個 Logstash pipeline 的配置。
2、提供簡單的端口校驗,保障用戶配置在整體網絡下是相通的。
3、集群監控,日誌查詢的模塊,用戶不用去黑屏上,查看日誌哪些地方有報錯。
4、提供擴展文件的管理中心,通過上傳配置使用第三方文件。
雲產品數據鏈路打通
用戶網絡訪問日誌,會根據業務的不同,將數據存儲在不同介質中。如文件存儲在 OSS、本地文件緩存在 MySQL、或者將日誌數據,存儲在阿里雲 LogService 上。
(圖 8)
阿里雲 Logstash 靈活的插件中心,幫用戶對接各種雲上數據源
Logstash 可以通過 SLS input 插件、Maxcompute input 插件,去讀取 SLS、Maxcompute 上的數據。在日誌採集方面,同樣會去讀取日誌存儲的文件系統,Logstash 會更多的做一些日誌的截取和過濾的功能,去實現各種日誌的格式化。
相較於開源,阿里雲 Logstash 最大的不同點,是做了雲上數據鏈路打通,用戶可以更為方便的對接雲上數據源,像 RDS,通過 Logstash jdbc的插件去完成。
雲上數據接入的核心優勢
Logstash & Beats 在雲上數據接入的構成的核心優勢:在海量數據源中,實現穩定可控的快速接入。
(圖 9)
海量數據
支持安裝各種 Beats ,Logstash 多管道處理多數據流程,採集海量服務器日誌、Metric指標。並對接雲上多數據源,針對將數據存在 Maxcompute、MySQL 裡的用戶,都可以進行對接。
快速接入
提供UI化配置,幫助用戶保障監測網絡及配置的一致性,儘可能少的出現問題。同時支持服務器日誌採集器批量下發,可以一次性部署 Agent,完成數據接入。
穩定可控
雲上各種日誌監控和報警規則上豐富的,方便用戶直接檢測 Agent 安裝、心跳狀態。不管是我們去添加/移除機器,或者添加/移除 Logstash 節點,在雲上均可提供靈活的彈性伸縮及業務擴展。
搭建雲上日誌分析平臺
快速實現日誌數據接入,通用的就是搭建雲上日誌分析平臺。
(圖 10)
以客戶案例來說,圖10 中是一個互聯網教育直播平臺的系統架構,主營業務為在線教育。該業務會大量使用CDN等網絡資源,從而產生較多的CDN Log,並通過轉碼、解碼服務進行後續處理。所以對於這類用戶來說,整個數據及日誌鏈路是非常長的,而且直播對延遲監測要求是非常高的,像直播中的抖動、打開的問題,都需要能快速監測並定位問題。
針對客戶的業務場景,我們通過運用圖 10 中搭建的數據鏈路,幫助用戶快速、實時的接入日誌數據源,從而實現後續的監測、確定問題的定位。
在解決方案架構圖上,通過 Beats 對用戶各種 CDN Log、Metric、網絡日誌進行採集和集中處理,並接入 kafka 消息隊列,建立緩存機制,解決吞吐量的問題,最後輸送到 Logstash 處理和解析後,結合阿里雲 Elasticsearch、Kibana,更好的完成數據分析和展現的過程。
雲上數據遷移和數據同步
Logstash 幫助用戶實現數據上雲、遷移、同步。
(圖 11)
場景一:用戶自建集群,希望搬站上雲,做集群間的遷移或備份,
用戶自建集群的情況下,業務複雜度往往會比較高,且平臺容量、擴展能力都非常有限,所以選擇 Logstash & Beats 對希望上雲的用戶是一個非常好的選擇。
阿里雲的logstash,也可以對騰訊雲、AWS 這樣一些數據遷移。
如果已經有阿里雲 Elasticsearch 集群的用戶,想重新建集群,也可以通過 Logstash,在兩個集群中進行數據遷移。
場景二:對接存於 OSS、Logservice、數據庫上的數據
Logstash 會有各種 input / Output 插件,實現基於數據庫、消息隊列,與下游的一些計算引擎和存儲系統同步,這樣 Logstash 中間去做一些處理和 Data filter 功能,他也能非常靈活的通過 input、output 插件去進行對接,這也是 Logstash 做數據同步,完成數據接入基礎。
ELK 運維監控架構方案
(圖 12)
架構中,像路由器/網關的數據,需要 Packetbeat 去採集;在業務服務器上的數據,需要 Metricbeat、Auditbeat 進行採集;在日誌服務器上的數據,我們通過 Filebeat、Auditbeat。這些 Beats 在阿里雲上,都能夠免費的去使用和批量下發安裝的.我們通過 Packetbeat 去採集 Http 網絡請求日誌、DNS 日誌,也可以通過 Metricbeat,蒐集各種指標,包括一些硬件指標、數據庫指標、容器指標的數據。
日誌數據中 想 Weblog、Syslog,通過下游的消息隊列 Kafka,傳輸到 Logstash,在 Logstash中進一步格式轉化、過濾,最終存儲到阿里雲 Elasticsearch 的集群中,進行後續分析。
下游對接包含 Kibana、DataV、Grafana 運維可視化大屏,通過這樣的大屏能夠幫助用戶更好的分析和查看數據情況。同時阿里雲 Kibana 在告警配置、監測方面,也是有非常多的功能的,比如通過 Webhock,對接一些短信網關、郵件網關、或者通過釘釘給大家發送一些告警信息。
所以不管是業務服務器還是路由器/網關,去採集數據到 Logstash,對於整個運維監控架構的搭建是非常重要的,我們將進一步提供更好的接入方案,進一步降低數據接入門檻,提高數據易用性。
最佳實踐
阿里雲Elasticsearch數據採集解決方案
阿里雲Elasticsearch通過Beats搭建可視化運維繫統
從騰訊雲遷移Elasticsearch索引至阿里雲
相關活動
更多折扣活動,請訪問阿里雲 Elasticsearch 官網
• 阿里雲 Elasticsearch 商業通用版,1核2G首月免費
• 阿里雲 Elasticsearch 日誌增強版,首月六折,年付六折
• 阿里雲 Logstash 2核4G首月免費