Graylog: 选择输入格式

本文件是选择输入类型指南的一部分。您可以在这里查看完整指南:如何选择合适的 Graylog 输入类型

👋 欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 Graylog cloud 解决方案,专为高效与简便而设计。您可以:

  • 依赖于服务内置的无限制专用 SMTP 邮件服务器
  • 只需一键即可轻松完成更新,无需手动操作。
  • 使用由HTTPS保护的自定义域名(例如 https://logs.your-company.com),为您的团队提供安全、直接的访问。
  • 专属私有基础设施上获得卓越的性能安全性,无共享资源,无干扰邻居。

专注于您的数据,而非工具本身:只需几分钟,即可开始使用 Stackhero 的 Graylog cloud hosting 解决方案。

第一步是选择日志消息的格式。主要有三种选项: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