Graylog: 选择输入格式
本文档属于选择输入类型指南的一部分。您可以在此处查看完整指南:如何选择合适的 Graylog 输入类型。
👋 欢迎使用 Stackhero 文档!
Stackhero 提供即用型 Graylog 云 解决方案,具有众多优势,包括:
- 包含无限制和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松完成更新。
- 使用 HTTPS 保护的可定制域名(例如,https://logs.your-company.com)。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Graylog 云托管 解决方案!
第一步是选择日志消息的格式。主要有三种选项:RAW/Plaintext、Syslog 或 GELF。
RAW/Plaintext 格式
这是最简单的格式。它适用于任何系统,因为它发送的是完整的纯文本消息。非常易于使用,非常适合初步测试,比如使用 netcat 工具发送消息。
要进行测试,您可以创建一个“Raw/Plaintext UDP”输入,然后使用以下命令之一发送测试日志:
- 在 macOS 上:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - 在 Linux 上:
echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555
是不是很简单?不过,由于这是基础格式,您很快会遇到功能上的限制。因此,我们不建议将其用于简单测试之外的场景。
Syslog 格式
这是服务器环境中广泛用于存储和传输日志的标准格式。它在 Linux、Windows、*BSD 及其他操作系统中都可以找到。
如果您正在使用 Syslog、Rsyslog 或其他兼容服务,并希望将日志从服务器发送到 Graylog,syslog 输入是最简单的选择。
不过,由于 GELF 更为强大,如果您可以发送 GELF 格式的消息,我们建议优先选择 GELF,具体说明见下文。
请注意,syslog 格式的消息长度限制为 1024 个字符。
GELF 格式(推荐)
GELF 是“Graylog Extended Log Format”的缩写。该格式由 Graylog 创建,现已被众多产品广泛采用,成为行业标准。
GELF 格式的优势在于它以结构化方式发送日志。结构化日志允许您传递多个字段和值,而不是单一的非结构化文本消息。这让 Graylog 更容易解析和检索信息。
例如,如果您希望发送包含 IP 地址和请求类型的日志,可以发送包含 ip 和 request_type 两个字段的消息。在 Graylog 端,您可以直接基于这些字段进行检索,比如通过查询:request_type: POST 查找所有 POST 请求。
GELF 基于 JSON,必须至少包含 version、host 和 short_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、.NET 和 Python。