Splunk ES 接入 log 的方式
Splunk ES 接入 log 的方式主要有两种:
使用 Splunk Universal Forwarder (UF)
UF 是一个轻量级的代理,可以安装在各种操作系统和设备上。它可以收集各种类型的日志文件,并将它们发送到 Splunk ES 进行索引和分析。
通用转发器 (Universal Forwarder):通用转发器是一种轻量级代理,可以安装在各种操作系统上,包括 Windows、Linux、Mac OS X 等。Universal Forwarder 可以从各种来源收集数据,包括:
- 系统日志
- 应用程序日志
- 网络流量
- 安全事件
使用Heavy Forwarder (HF)
Heavy Forwarder 是一种高性能转发器,需要安装代理。它可以处理高数据量和高事件速率。
Heavy Forwarder 适用于大型环境,其中需要收集大量数据或事件速率很高。
Heavy Forwarder 可以安装在任何能够满足其系统要求的服务器上。 这些要求包括:
- 操作系统:Red Hat Enterprise Linux、CentOS、Ubuntu、Debian、SUSE Linux Enterprise Server、Windows Server
- CPU:至少 2 核
- 内存:至少 4 GB
- 磁盘空间:至少 10 GB
使用 HTTP Event Collector (HEC)
HEC 是一个 RESTful API,可以用于将日志数据从任何应用程序或设备发送到 Splunk ES。
HEC (HTTP Event Collector) 是一种使用 HTTP 协议发送日志到 Splunk Enterprise 或 Splunk Cloud 的工具。它可以从各种应用程序和设备收集数据,包括:
- 应用程序
- 脚本
- 设备
HEC 发送日志的过程如下:
- 应用程序或设备将日志数据发送到 HEC 端点。
- HEC 端点将日志数据转发到 Splunk Enterprise 或 Splunk Cloud。
- Splunk Enterprise 或 Splunk Cloud 将日志数据索引和分析。
HEC 发送日志的示例:
curl -X POST \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"events": [
{
"timestamp": "2023-01-01T00:00:00.000Z",
"source": "myapp",
"sourcetype": "syslog",
"message": "This is a log message."
}
]
}' \
"https://<HEC_endpoint>/services/collector"
在这个示例中,curl 命令用于将日志数据发送到 HEC 端点。
-X POST
指定 HTTP 方法为 POST。-H "Authorization: Bearer <token>"
指定 HEC 令牌。-H "Content-Type: application/json"
指定请求内容类型为 JSON。-d '{ "events": [ { "timestamp": "2023-01-01T00:00:00.000Z", "source": "myapp", "sourcetype": "syslog", "message": "This is a log message." } ] }'
指定要发送的日志数据。"https://<HEC_endpoint>/services/collector"
指定 HEC 端点 URL。
有关 HEC 的更多信息,请参阅 Splunk 文档:
以下是一些使用 HEC 发送日志的第三方工具:
- Logstash
- Fluentd
- Beats
这些工具可以帮助您从各种来源收集数据并将其发送到 Splunk 进行索引和分析。