我有一些随机文件,我想收集并转发到我的日志服务器。这些应用程序实际上不支持 GELF,因此我尝试使用 rsyslog 转发这些文件:
# Apache access log
input(type="imfile" File="/var/log/misc/blah.log"
Tag="Apache Access Log"
StateFile="statefile1")
*.* @@log.ospreyreach.com:12514
一些问题/疑问:
- 这将转发所有 syslog 文件。如何指定仅转发某些特定文件?
- 这似乎没有从我定义的文件中收集任何数据。我看到常规系统日志消息弹出在我的 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 输入创建一些提取器。这将为您提供一些用于图表等的细粒度选项。