如何使用 rsyslog 将任意文件转发到 graylog2

如何使用 rsyslog 将任意文件转发到 graylog2

我有一些随机文件,我想收集并转发到我的日志服务器。这些应用程序实际上不支持 GELF,因此我尝试使用 rsyslog 转发这些文件:

# Apache access log
input(type="imfile" File="/var/log/misc/blah.log"
Tag="Apache Access Log"
StateFile="statefile1")


*.* @@log.ospreyreach.com:12514

一些问题/疑问:

  1. 这将转发所有 syslog 文件。如何指定仅转发某些特定文件?
  2. 这似乎没有从我定义的文件中收集任何数据。我看到常规系统日志消息弹出在我的 graylog 服务器中,但没有那个文件。

答案1

尝试这个 LEGACY rsyslog 格式的版本:

# Forward apache logs to graylog2 server
$ModLoad imfile # needs to be done just once

$InputFileName /var/log/httpd/access.log
$InputFileTag ApacheAccessLog:
$InputFileStateFile access.log.statefile
$InputFileFacility local4
$InputFileSeverity info
$InputRunFileMonitor

$InputFileName /var/log/httpd/error.log
$InputFileTag ApacheErrorLog:
$InputFileStateFile error.log.statefile
$InputFileFacility local4
$InputFileSeverity error
$InputRunFileMonitor

local4.*                        @@log.ospreyreach.com:12514
& stop

您可以对其他日志文件进行类似的输入。

之后,在 graylog2 服务器上为 12514/TCP 输入创建一些提取器。这将为您提供一些用于图表等的细粒度选项。

相关内容