Graylog: 與 Dot NET 搭配使用
如何將 .NET/Serilog 的日誌傳送到 Graylog
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 Graylog cloud 解決方案,帶來多項好處,包括:
- 包含無限和專用的 SMTP 電郵伺服器。
- 只需一鍵即可輕鬆更新。
- 使用 HTTPS 保護的可自訂域名(例如,https://logs.your-company.com)。
- 由專用私有 VM提供的最佳性能和強大安全性。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Graylog cloud hosting 解決方案!
Serilog 是一套廣受歡迎且高度可擴充的日誌管理函式庫,廣泛用於 .NET 應用程式的日誌管理。它讓開發人員可以設定多種 sink 來儲存與視覺化日誌。
以下是一個基本範例,說明如何使用 Serilog:
var log = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log.txt")
.CreateLogger();
log.Information("Hello, Serilog!");
若要將日誌傳送到 Graylog 伺服器,您可以使用 serilog-sinks-graylog 套件。這個 sink 可直接以 GELF 格式將日誌傳送到 Graylog。
步驟說明
-
安裝套件:
透過下列指令將
serilog-sinks-graylog套件加入您的專案:Install-Package serilog.sinks.graylog -
設定 Serilog 連接 Graylog:
請將您的應用程式設定更新為以下程式碼片段。請將
<XXXXXX>.stackhero-network.com替換為您的 Graylog 實例網域名稱:var loggerConfig = new LoggerConfiguration() .WriteTo.Graylog( new GraylogSinkOptions { HostnameOrAddress = "<XXXXXX>.stackhero-network.com", Port = 12201 } ); -
設定 Graylog:
- 登入您的
Graylog控制台。 - 前往 System > Inputs。
- 建立一個新的 "GELF UDP" 輸入。
- 點擊「Launch new input」。在彈出視窗中,啟用「Global」選項,為輸入指定一個名稱,然後直接儲存設定,無需修改其他參數。
- 登入您的
為提升安全性,建議限制可連接至 12201 埠的 IP。您可以在 Stackhero 控制台中,選擇您的 Graylog 服務,並於「Firewall」設定中僅允許特定 IP 存取。
依照上述步驟,您的 .NET 應用程式即可安全且高效地將日誌傳送至您的 Graylog 實例。