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

nbysray5  于 2023-02-21  发布在  Linux
关注(0)|答案(3)|浏览(212)

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

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

我重新启动了系统日志服务,此更改不起作用。
有人能帮我解决这个问题吗?
目前事件看起来像

<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)

先谢了!

iyfjxgzm

iyfjxgzm1#

我有一个类似的情况,我记录到本地syslog,然后将所有local 0工具条目转发到Graylogsyslog输入。
这是一个/etc/rsyslog.d/60-灰色日志文件的示例

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

(That最后一行是“遗留”格式,实际上应该用“action”语法重写)
有关详细信息和模板属性,请访问https://www.rsyslog.com/doc/v8-stable/configuration/templates.html

bjg7j2ky

bjg7j2ky2#

这对我来说是有效的。我们使用dynaFiles来处理基于主机名的文件。
我需要从已经用JSON格式化的事件的前缀中删除时间戳和主机名。

template (name="LOG_TYPE_PATH" type="string"
  string="/path/to/your/logs/LOG_TYPE/%HOSTNAME%.log")

template(name="noTimestamp" type="list") {
    property(name="syslogtag")
    property(name="msg" spifno1stsp="on" )
    property(name="msg" droplastlf="on" )
    constant(value="\n")
    }

if ($hostname contains "10.0.0.17") then {
  action(type="omfile" dynaFile="LOG_TYPE_PATH" template="noTimestamp")
}

这些链接很有帮助:
https://serverfault.com/questions/1042248/rsyslog-8-dynafile-with-a-templatehttps://www.rsyslog.com/doc/v8-stable/configuration/templates.html

jucafojl

jucafojl3#

在linux命令行上:
cut -d$' ' -f 3-20 logfile.log >newfile.log
“cut”拆分为由“”(空格)界定的部分和输出部分3至20 ;)

相关问题