如何从来自远程syslog服务器的日志中删除主机名和时间戳

时间:2018-11-20 20:05:58

标签: linux syslog splunk rsyslog syslog-ng

我正在使用rsyslog将所有syslog文件和少量其他应用程序日志文件发送到运行syslog-ng服务器的远程syslog服务器,并使用splunk转发器将其发送到Splunk。我的问题是,当rsyslog将日志发送到远程syslog服务器(syslog-ng)时,在日志事件中会向其中添加Timestamp和Hostname。如何告诉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)

谢谢!

2 个答案:

答案 0 :(得分:0)

我遇到类似的情况,我先登录到本地系统日志,然后将所有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

(最后一行是“旧版”格式,实际上应该使用“动作”语法重写)

有关更多信息和模板属性,请访问Comment

答案 1 :(得分:-1)

在Linux命令行上:

cut -d$' ' -f 3-20 logfile.log >newfile.log

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