Graylog: 选择输入格式

本文档属于选择输入类型指南的一部分。您可以在此处查看完整指南:如何选择合适的 Graylog 输入类型

👋 欢迎使用 Stackhero 文档!

Stackhero 提供即用型 Graylog 云 解决方案,具有众多优势,包括:

  • 包含无限制和专用的 SMTP 电子邮件服务器
  • 只需点击即可轻松完成更新
  • 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
  • 专用私有 VM提供的最佳性能和强大安全性

节省时间简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!

第一步是选择日志消息的格式。主要有三种选项:RAW/PlaintextSyslogGELF

这是最简单的格式。它适用于任何系统,因为它发送的是完整的纯文本消息。非常易于使用,非常适合初步测试,比如使用 netcat 工具发送消息。

要进行测试,您可以创建一个“Raw/Plaintext UDP”输入,然后使用以下命令之一发送测试日志:

  1. 在 macOS 上:echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555
  2. 在 Linux 上:echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555

是不是很简单?不过,由于这是基础格式,您很快会遇到功能上的限制。因此,我们不建议将其用于简单测试之外的场景。

这是服务器环境中广泛用于存储和传输日志的标准格式。它在 Linux、Windows、*BSD 及其他操作系统中都可以找到。

如果您正在使用 Syslog、Rsyslog 或其他兼容服务,并希望将日志从服务器发送到 Graylog,syslog 输入是最简单的选择。

不过,由于 GELF 更为强大,如果您可以发送 GELF 格式的消息,我们建议优先选择 GELF,具体说明见下文。

请注意,syslog 格式的消息长度限制为 1024 个字符。

GELF 是“Graylog Extended Log Format”的缩写。该格式由 Graylog 创建,现已被众多产品广泛采用,成为行业标准。

GELF 格式的优势在于它以结构化方式发送日志。结构化日志允许您传递多个字段和值,而不是单一的非结构化文本消息。这让 Graylog 更容易解析和检索信息。

例如,如果您希望发送包含 IP 地址和请求类型的日志,可以发送包含 iprequest_type 两个字段的消息。在 Graylog 端,您可以直接基于这些字段进行检索,比如通过查询:request_type: POST 查找所有 POST 请求。

GELF 基于 JSON,必须至少包含 versionhostshort_message 字段。您还可以添加其他字段,这些字段名称需以下划线(_)开头。

例如,包含额外字段 device_id 的简单消息如下:

{
  "version": "1.1",
  "host": "myIotDevice",
  "short_message": "Something is happening",
  "_device_id": "abcd"
}

随后,您可以在 Graylog 上通过查询 device_id: abcd 检索所有来自设备“abcd”的消息。

如需了解 GELF 的更多细节,请参考官方规范:https://docs.graylog.org/en/4.0/pages/gelf.html

如果您希望从服务器或应用程序发送日志,可以使用众多现成的库,这些库会自动生成并发送您的消息。相关示例可参考 Node.js.NETPython