Java程式設計師須知的七個日誌管理工具
日誌管理工具有 Splunk、Sumo Logic、LogStash、GrayLog、Loggly 和 PaperTrails 等等,數不勝數。日誌就像石油,二十多年了我們一直想擺脫它,卻一直沒有做到。
為了處理日益增長的資料,近年來出現了一大批分析和管理日誌的工具,開發和管理人員能夠藉助這些工具來了解增長的資料。在這篇文章中,我將站在開發者的角度,分析一下這些工具的特點。
Splunk vs. Sumo Logic vs. LogStash vs. GrayLog vs. Loggly vs. PaperTrails vs. Splunk>Storm
作為這個領域中最大的工具,我決定將 Splunk 做一個單獨的分類。並不是說這個工具是最好的,而是對這個產品給予肯定,因為它從本質上創造了一個新的領域。
優點
在這個領域內功能最齊全的可能就是 Splunk 了。它有數百個來分析各種形式日誌資訊的程式(我計算的是537 個)——從安全領導到商業分析,再到底層監控。Splunk 的搜尋和圖表工具如此豐富,沒有通過它(UI 和 API)得不到的資料。
缺點
Splunk 主要有兩個缺點。第一,這個因素可能有些主觀,我覺得這個解決方案太複雜了。如果要在一個高度複雜的環境中部署,就需要安裝和配置一個專用叢集。作為一個開發者,通常會因為這點而不把這個方案作為第一選擇。
第二個缺點是它太昂貴了。要支援一個真實世界的軟體,你可能會花費一萬多美金,這很可能就意味著你需要從其他地方削減預算,這樣開發程式就慢了。如果你剛上架了一款 app,但是要得到高質量的日誌分析卻又不影響開發程式——請繼續閱讀。
更多企業級日誌分析工具請點選這裡。
SaaS 日誌分析工具
Sumo 是在 Splunk 的基礎上建立的 SaaS 版本,它沿用了 Splunk 早期的一些特性和視覺效果。不得不說,SL 今天已經發展成了一個成熟的企業級日誌管理工具。
優點
SL 具備對資料簡化、查詢、製表等功能。可能是 SaaS 型的日誌分析工具中功能最多的了。同樣,作為 SaaS 型,SL 還具有安裝簡單,操作簡單等優點。最吸引人的地方是,你可以建立一個基線,當一個事件(像是一個新版本首次上線或者惡意的請求等)使一些重要的指標發生了 變化時,你可以收到動態通知。
缺點
由於這是通過 SaaS 的方式進行日誌分析的,所以你必須將大量的資料上傳至伺服器進行分析,這就可能產生一些問題:
- 作為一個開發者,如果要分析的日誌涉及到敏感資訊或者 PII 你要確保做好了遮蔽。
- 在日誌生成的時間與日誌上傳至服務的時間之間可能存在一些衝突。
- 在你的機器上回多出來幾個 GB 的開銷用於上傳日誌,不過這取決於你日誌的吞吐量。
Sumo 服務的購買價格不是透明的,所以你要是想刷你團隊的信用卡來購買的話會很麻煩。
更新——SL 團隊剛剛告訴我們,你可以直接用信用卡從免費版本中購買服務,雖然不像網頁版那樣方便,但是也蠻不錯的。
Loggly 也是一個健壯的日誌分析工具,強調簡潔樸素讓開發者用起來方便。
優點
SL 注重的是企業級別的應用和安全性,而 Loggly 卻將重點放在了幫助開發者查詢和修復操作性的問題上。因為操作介面非常友好,自定義效能和開發者儀表盤這種東西非常簡單。並且它的價格透明,入門方便。
缺點
不要奢望 Loggly 具備成熟的架構、安全和分析解決方案。Loggly 不具備取證和監控基礎架構,它僅僅是幫助開發者處理應用伺服器資料的一個工具。除此之外的其他事情就需要你自己去做了。
PaperTrails 擅長從多臺機器上查詢日誌,並提供一個合併的視窗,使用起來很方便。鑑於你是從雲端追蹤日誌,所以你離他們不會太遠。
優點
PT 就是這麼一個工具。通過它你可以從一個視窗輕鬆的查詢多臺機器上的日誌。使用者操作本身就像你機器上的日誌,搜尋命令也一樣。它致力於將日誌管理變得簡單、易用,可以優雅地處理。而且它還不算很貴。
缺點
PT 是基於文字格式的。如果需要支援先進的整合、預測和報告功能,就顯得力不從心了。
這是 Splunk 的兄弟, Splunk 的伺服器上提供託管。
優點
Storm 讓你無需安裝軟體,就能體驗 Splunk 的完整版的功能。
缺點
Storm 不是商業的,所以你的流量有限。你可以將其視作一個 Splunk 的限制版本,無需部署即可幫助新產品測試。最近有個叫 Splunk Cloud 的新服務,致力於提供 Splunk SaaS 的完整體驗。
開源的分析軟體
Logstash 是一款收集和管理日誌的開源工具。它用到了一些其他的開源的資源:使用 ElasticSearch 來索引和查詢資料,使用 Kibana 製表和視覺化處理。他們聯合起來,組成一個強大的日誌管理解決方案。
優點
作為一個開源的解決方案,Logstash 允許使用者有更大的定製空間,而且很便宜。Logstash 用了三個成熟的開源部件——都受到了很好的維護——組成一個強大的可擴充套件的軟體包。由於開源,安裝和使用和非常方便。
缺點
由於 Logstash 從本質上來說是三個部件的堆砌,所以你需要面對三個不同的產品。這就意味著擴充套件也變得很複雜。Logstash 的過濾器是用 Ruby 寫的,Kibana 是用純 Javascript 寫的,而 ElasticSearch 也有自己的 REST 介面和 JSON 模板。
當你轉向產品時,還需要將三個不同的工具部署到伺服器上,無疑增加了複雜度。
最近出現的一顆新星——GL2,用 MongoDB 和 ElasticSearch 支援的用來儲存與搜尋日誌錯誤的工具。它致力於幫助開發者找到並修復程式中的錯誤。
在這一方面,還有 fluentd 和 Kafka 也是專注於儲存日誌的。看!我們有這麼多選擇啊!
Takipi for Logs
雖然這篇文章不是關於 Takipi 的,但是它有一項特性,你也許會發現和日誌有關。
對於日誌分析工具來說,最大的缺點就是你必須要有日誌可以分析。從整合開發環境的角度看,如果沒有異常報告,或者沒有錯誤資訊的資料,你就沒辦法知道哪裡出問題了,這樣世界上任何工具都幫不了你了!Debug 就卡在這裡了。:(
在 Takipi 的一項優勢就是可以跳過日誌檔案,進入到除錯資訊中。這樣你就能看到真實的原始碼和錯誤範圍的變數了。瞭解更多點選這裡。
Takipi 會報告所有的異常和錯誤,並且告訴你哪裡出錯了,即使是多執行緒或者是發生在多臺機器上。1 分鐘之內就能安裝,維護費用不足2%-部署 Taikipi。
英文原文:The 7 Log Management Tools You Need To Know 翻譯: ImportNew - 賴信濤
相關文章
- PHP程式設計師必須知道的兩種日誌PHP程式設計師
- 每個Java程式設計師必須知道的5個JVM命令列標誌Java程式設計師JVM命令列
- 程式設計師必須掌握的五個seo知識程式設計師
- Java程式設計師必須掌握的5個註解!Java程式設計師
- Java程式設計師必須掌握的7個Java效能指標!Java程式設計師指標
- 新手程式設計師須知30個技巧!少走彎路程式設計師
- JAVA程式設計師“黃金5年”必須要掌握的知識技能Java程式設計師
- Swoole 程式設計須知程式設計
- 列舉幾個Java程式設計師通用的、必須掌握的框架Java程式設計師框架
- 高效程式設計師的七個習慣程式設計師
- Java程式設計師須知:分散式微服務為什麼很難?Java程式設計師分散式微服務
- 每個程式設計師都必須遵守的程式設計原則程式設計師
- Java 程式設計師必須掌握的 Linux 命令Java程式設計師Linux
- java程式設計師進階架構師你必須掌握的架構知識體系Java程式設計師架構
- 新入行程式設計師須知的8件事行程程式設計師
- 每個 Python 程式設計師都要知道的日誌實踐Python程式設計師
- 15個IT程式設計師必須思考的問題程式設計師
- 一網打盡:Java 程式設計師必須瞭解的計算機底層知識!Java程式設計師計算機
- 優秀的程式設計師的七個特質程式設計師
- Java程式設計師面試必須要掌握的面試題Java程式設計師面試題
- Java程式設計師必須熟知的十項技術Java程式設計師
- 網路遊戲程式設計師須知 UDP vs TCP(轉)遊戲程式設計師UDPTCP
- 作為一個程式設計師,CPU的這些硬核知識你必須會!程式設計師
- 成為程式設計師之前必知的七件事程式設計師
- 高效能程式設計師的七個習慣程式設計師
- 程式設計師必看的書(七)程式設計師
- 一、(基礎知識)一個前端程式設計師的java小白之路前端程式設計師Java
- 程式設計師須知,Python匯入模組的幾種姿勢!程式設計師Python
- 程式設計師必須知道的幾個國外IT網站程式設計師網站
- Java程式設計師微服務架構你必須要掌握的十個要點Java程式設計師微服務架構
- Java程式設計師必須瞭解的7個效能指標,你都知道嗎?Java程式設計師指標
- 每個程式設計師1小時內必須解決的5個程式設計問題程式設計師
- 程式設計師成熟的標誌程式設計師
- 程式設計師的墓誌銘程式設計師
- 每個程式設計師必知之SEO程式設計師
- Java程式設計師必須掌握的Spring依賴管理原理Java程式設計師Spring
- 程式設計師必須克服的十大程式設計禁忌程式設計師
- 強烈推薦:程式設計師必須懂的資料庫知識程式設計師資料庫