Graylog: 与 Dot NET 配合使用
如何将 .NET/Serilog 日志发送到 Graylog
👋 欢迎使用 Stackhero 文档!
Stackhero 提供即用型 Graylog 云 解决方案,具有众多优势,包括:
- 包含无限制和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松完成更新。
- 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!
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" 的新输入(Input)。
- 点击 "Launch new input"。在弹出的窗口中,启用 "Global" 选项,为该输入命名,然后无需更改其他设置,直接保存。
- 登录您的
为提升安全性,建议限制允许连接 12201 端口的 IP 地址。您可以在 Stackhero 控制台中,选择您的 Graylog 服务,在“Firewall”防火墙设置中,仅允许特定 IP 访问。
按照上述步骤,您的 .NET 应用即可安全高效地将日志发送到您的 Graylog 实例。