Rsyslog 不会使用 JSON 模板转发

Rsyslog 不会使用 JSON 模板转发

因此,我尝试使用 rsyslog 在端口 514 上接受 udp 流量,应用 json 模板,然后通过 udp 将其发送到端口 10514(这样我的 logstash 安装就可以接收它)。我正在运行 Ubuntu 19.04,这是我的 rsyslog.conf 文件(没有默认注释):

module(load="imuxsock") # provides support for local system logging

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

module(load="imklog" permitnonkernelfacility="on")

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$RepeatedMsgReduction on

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

$WorkDirectory /var/spool/rsyslog

$IncludeConfig /etc/rsyslog.d/*.conf

    ############
    # APPENDED #
    ############

template(name="json-template"
  type="list") {
    constant(value="{")
      constant(value="\"@timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
      constant(value="\",\"@version\":\"1")
      constant(value="\",\"message\":\"")     property(name="msg" format="json")
      constant(value="\",\"sysloghost\":\"")  property(name="hostname")
      constant(value="\",\"severity\":\"")    property(name="syslogseverity-text")
      constant(value="\",\"facility\":\"")    property(name="syslogfacility-text")
      constant(value="\",\"programname\":\"") property(name="programname")
      constant(value="\",\"procid\":\"")      property(name="procid")
    constant(value="\"}\n")
}

*.* action(type="omfwd" target="localhost" port="10514" protocol="udp" template="json-template")

我没有弄乱 /etc/rsyslog.d/20-ufw.conf 中的默认规则文件,并且我已经确认流量确实从 514 进入,尽管端口 10514 上没有任何内容通过。有什么建议吗?

相关内容