我正在使用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)
谢谢!
答案 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的部分;)