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 應用程式中的日誌。它允許開發人員配置各種接收器以進行日誌存儲和可視化。

以下是一個演示 Serilog 使用的基本範例:

var log = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

log.Information("Hello, Serilog!");

要將日誌發送到 Graylog 伺服器,您可以使用 serilog-sinks-graylog 套件。此接收器可直接將日誌以 GELF 格式傳輸到 Graylog

  1. 安裝套件

    通過執行以下命令將 serilog-sinks-graylog 套件添加到您的專案中:

    Install-Package serilog.sinks.graylog
    
  2. 配置 Serilog 用於 Graylog

    使用以下代碼片段更新您的應用程式配置。將 <XXXXXX>.stackhero-network.com 替換為您的 Graylog 實例的域名:

    var loggerConfig = new LoggerConfiguration()
        .WriteTo.Graylog(
            new GraylogSinkOptions
            {
                HostnameOrAddress = "<XXXXXX>.stackhero-network.com",
                Port = 12201
            }
        );
    
  3. 設置 Graylog

    • 登錄到您的 Graylog 儀表板。
    • 導航到 System > Inputs
    • 創建一個類型為 "GELF UDP" 的新輸入。
    • 點擊 "Launch new input"。在出現的模態窗口中,啟用 "Global" 選項,為輸入分配一個標題,並在不進一步更改的情況下保存設置。

為了增強安全性,建議限制允許連接到端口 12201 的 IP。您可以通過訪問 Stackhero 儀表板,選擇您的 Graylog 服務,並管理 "Firewall" 設置以僅允許特定 IP 來配置此項。

通過遵循這些步驟,您可以使您的 .NET 應用程式安全且高效地將日誌發送到您的 Graylog 實例。