【问题标题】:how to remove hostname and timestamp from logs coming from remote syslog server如何从来自远程系统日志服务器的日志中删除主机名和时间戳
【发布时间】:2019-04-23 08:29:32
【问题描述】:

我正在使用 rsyslog 将所有 syslog 文件和一些额外的应用程序日志文件发送到远程 syslog 服务器,该服务器正在运行 syslog-ng 服务器,并使用 splunk 转发器发送到 Splunk。我的问题是,当 rsyslog 将日志发送到远程 syslog 服务器(syslog-ng)时,在日志事件中它会添加时间戳和主机名。如何告诉 rsyslog 不要将时间戳和主机名添加到任何日志事件中? 根据我的发现,rsyslog.conf 中有一个模板。我们可以在其中定义有关日志事件的格式和其他内容。我试过了,但没有用。

在我的 rsyslog.conf 我有模板条目,

$template noTimeStampFormat,"%syslogtag% %msg%\n"
$ActionFileDefaultTemplate noTimeStampFormat

我重新启动了 syslog 服务,此更改不起作用。

有人可以帮我解决这个问题吗?

目前的事件看起来像

<timestamp> <hostname> <tag> sudo: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)

理想的是,

<tag> sudo: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)

提前致谢!

【问题讨论】:

  • ActionFileDefaultTemplate 是一个遗留命令。如果您将它与action(...) 等较新样式的 Rainer 脚本混合使用,则无效。此外,转发可能使用模板RSYSLOG_TraditionalForwardFormat。在您的规则中使用显式模板,例如对于旧版,它可能是 *.* @@server;noTimeStampFormat

标签: linux syslog splunk rsyslog syslog-ng


【解决方案1】:

我有类似的情况,我正在登录到本地系统日志,然后将所有 local0 设施条目转发到 Graylog 系统日志输入。

这是一个示例 /etc/rsyslog.d/60-graylog.conf

template(name="MyFormat" type="string"
     string= "%syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
    )

local0.* @1.2.3.4:10514;MyFormat

(最后一行是“legacy”格式,应该用“action”语法重写)

更多信息和模板属性,请访问https://www.rsyslog.com/doc/v8-stable/configuration/templates.html

【讨论】:

    【解决方案2】:

    在 linux 命令行上:

    cut -d$' ' -f 3-20 logfile.log &gt;newfile.log

    “cut”分割成由 ' '(空格)分隔的部分,并输出部分 3 到 20 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多