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 的请求。

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