簡體   English   中英

如何組織集中日志?

[英]How to organize centralized logging?

情況是:我們有很多在C#上開發的工作應用程序實例。 我們希望他們登錄一個地方(可能是一個文件)。 據我所知, log4netNLog可以通過TCP發送日志。 問題是 - 如何監聽這些日志並存儲它? 是否有任何可行的解決方案來收集這些日志?

在log4Net中你應該配置appender, 這里的官方文檔見RemotingAppender

對於聽TCP你應該使用的TcpListener像這樣的資源 ,還有存在着一些客戶的log4net 這樣

在NLog中,您可能會考慮數據庫目標。 NLog還有一些您可能會考慮的目標,包括LogReceiverService ,它將日志消息發送到WCF服務或Web服務,在那里它們可以記錄到任何NLog目標,包括文件。

在log4Net中,您可能會考慮使用AdoNetAppender 這里的配置示例。

我會注意到,在過去,我實現了一個基於WCF的LoggingService(最終類似於NLog的LogReceiverService),這對我很有用。

最好使用MS提供的應用程序洞察功能。 它可以使用任何語言,而不僅僅是Microsoft語言。 應用見解分為兩部分。 SDk用於儀表遙測(記錄數據)並在天藍色儀表板中顯示這些日志。 SDK是開源的,您需要為azure可視化工具付費。 如果您不想付費,請在代碼中使用Application insgists並將這些日志發送到開源的彈性堆棧

最好的建築

MS Application Insights - 用於檢測日志

Apache Kafka - 充當管道和臨時stoarge,將您的日志發送到kafka

logstash--用於過濾日志的過濾器

elasticsearch - 一個沒有sql db到存儲過濾數據的地方

kibana - 儀表板,從彈性中提取數據並提供視覺效果。

你也可以將spark鏈接到kafka輸出,以電子郵件,短信的形式觸發警報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM