您當前的位置:首頁 > 收藏

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?

作者:由 vilicvane 發表于 收藏時間:2015-12-06

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?小芋頭君2015-12-07 09:37:40

日誌需要滿足三個基本前提:

1。 分散式集中採集,應用一般都是分散式的,但是日誌不能分散式,一定要最終收集到一起來,否則線上除錯或者排查會變得非常困難,需要使用一個可以統一收集日誌然後索引的解決方案。

2。 日誌報警,出現致命錯誤的時候需要能夠透過日誌系統,將錯誤以郵件或者簡訊的形式告知,並且在系統中留下全部的堆疊和當時機器狀態的資訊,方便排查。

3。 日誌收集,支援日誌分類收集,至少要支援個debug,info,error,然後在本地會按照日期切割日誌之類的。

解決方案有很多,我們使用Sentry來完成第一和第二個任務。具體可以google,特別是日誌排錯還是很屌的。

日誌收集是在業務端程式碼裡的,方案也有很多,log4js或者我們用的bunyan,都支援日誌分級的,pm2本身也支援一些日誌收集的功能,不過對大型應用來說不太夠用。

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?知乎使用者2015-12-07 11:20:17

elasticsearch+logstash+kibana完全滿足要求,推薦。

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?阿安2015-12-07 22:47:02

我們之前用 log4js

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?黃友昆2015-12-08 09:55:13

1。log要具備顯示呼叫方檔名和行號的能力,要不然你連誰打的這個log都不知道

2。log要具有按請求聚合的能力,不然上下文全是亂的,沒法看。光給你一行報錯log你能分析為啥出錯?必須是這個請求的完整log才有價值。

3。在2的基礎上要有按使用者聚合的能力,方便查流水

4。在3的基礎上要有染色能力,指定使用者能log全開,實時定位問題

5。log能還原成fiddler抓包,重現現場,對於機率性問題保留現場再重要不過了。

6。log要具備單機除錯功能,可以不停機編寫條件開啟指定log,無視日誌級別。

6這個用到的機會很少,主要是1-5

好的伺服器端 Node.js 日誌方案應該考慮和解決哪些問題?itlr2016-03-12 11:13:08

“一個非常輕量的 Node。js 伺服器端框架”裡是沒有必要去關心logging的,讓使用框架的人自己去整合就行了,除非你能作出特別好的封裝和抽象。

標簽: 日誌  log  收集  分散式  上要