開源之殤 ELK
運維就要無所不能,無所不會
大家好,我是 Stanley「史丹利」,今天聊聊日誌服務 ELK。
ELK 作爲日誌 UI 產品,自誕生就備受關注,時至今日也熱度不減,在 Github 上有着高達 54.7k 的關注。
K8S、MESOS、微服務技術出現後,更助力 ELK 成爲企業級日誌系統標配。
常見的構架如下:
elk
但如上架構通常會造成
-
logstash 壓力過大,出現數據錄入延遲過大;
-
毛刺高峯數據寫入甚至會拖垮 Logstash;
-
支持的 Input 端有限;
等問題。爲了解決如上問題,業內通用方案是在 ELK 再加入一個 Kafka
實時流處理器,藉助 Kafka
接入海量吞吐,但 "平滑" 輸出數據的能力,很好的解決了如上三個問題。
事已至此,新的問題和瓶頸出現在 ElasticSearch 「後面簡稱 ES」,當數據量大到一定程度,TB 級別,ES 的查詢和成本投入簡直就是災難現場,主要有如下問題:
-
ES 高內存、高 CPU、高存儲佔用,50TB,硬件投入樂觀估計在 50W,費用高昂;
-
隨熱數據不斷增加,定期清理策略逐步失效,搜索返回時間越來越長,分佈、聚合優化時間惡性延長;
-
擴縮容成本巨大,技術門檻高昂;
主要優化方案有:
-
冷熱數據隔離;
-
增加緩存;
-
提高數據預熱頻次;
-
增加分頁性能優化;
但只能緩解,無法根除!自建 ES 的成本及問題隨數據量增長,日趨明顯。
綜合考量,我們對自建 ES 和阿里 SLS 日誌解決方案做了對比,如下爲日誌架構及數據存儲方案對比:
架構圖對比
- 關注
橘紅方框爲架構核心變動項。主要爲 SLS 日誌服務取代 ELK, OSS 存儲取代原來的硬件存儲。
除此外,我們還針對
-
收費
-
人力
-
時間
-
功能
四方面進行更爲詳盡的對比。
資源投入對比
這個表格算的腦殼疼,不得不說,商人就是商人,在費用計算上,永遠算不清楚... 和算到凌晨,還依然差了 3 分錢和阿里計算器對不上。
使用阿里 SLS,主要費用有 2 大塊「裏面有很多其它收費項,比如讀寫費用、數據加工費用、投遞費用等... 難算。。」:
-
sls 應用收費
-
OSS 存儲收費
sls 收費
如果只看 SLS 收費,我們認爲還算合理。3 年總花費大概 10W, 5 年在 17W, 算是良心便宜
只用 SLS 喫不消,需要永久保存的數據,按架構設計放在 OSS。
OSS 其實才是費用一大支出。
OSS 費用
3 年費用在 19.3w,5 年大概 45W, 這些費用都是基於折扣後的費用。其中 OSS 的花費逐年上漲,且比例攀升。主因是數據是增長且永久存放。
做一個費用整體對比
費用整體對比
依然能看的出,SLS 確實在費用投入上,無論是 1 年、3 年,還是 5 年,確實投入要比自建的要便宜很多,如果只用其基本功能,樂觀估計,成本可以優化 39%。
諾亞現在使用的是 K8S, 在 k8s 環境下,接入 SLS 也很方便,我們目前採用的方案是 sidecar + logtail 的方式。
-
開發基本無需改造;
-
新業務使用 sdk 的方式,無縫接入;
sls 存取策略
SLS 的 UI 大致長這個樣子:
SLS UI
左側是 logstore, 相當於項目的概念,基於 logstore 級別可以:
-
二次數據加工,這個功能非常強大;
-
基於 logstore 級別做權限管控;
-
自動投遞數據到 OSS;
sql 語法很靈活:
-
支持 mysql sql 語法;
-
鼠標點劃自動生成語句;
-
最主要是,百億級數據量查詢速度仍然是秒級。
-
原始數據支持二次過濾、開發
-
默認支持多種類型圖表 UI
功能確實贊爆了。至此,我對阿里 SLS 的評價是:
sls 的數據過濾加工功能異常強大,幾乎可以加工達成我們想要的任何數據。目前發現也有一些缺陷:
價格不便宜
語法入門快,深入成本不低
速度慢,及時性一般。首次接入測試最少 6 分鐘後纔有數據
數據加工後,是基於原有的 logstore 複製流量修改後,重新錄入到一個全新的 logstore 。即數據雙份存儲。成本翻倍 (還不算加工的成本)
但總的來講,sls 算是目前接觸的最強大的日誌產品了。
嘮了這麼多,最後想說的是啥呢?... 別再自己折騰 ES 了,包括一些開源產品,公有云 PAAS 產品真的很香...
基於開源改造優化後的產品是真的香。。。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/WRU_6TaoPnaRtVnPpGRc0Q