为 rsyslog 添加标签(即源 IP)以发送到 rsyslog 远程服务器

为 rsyslog 添加标签(即源 IP)以发送到 rsyslog 远程服务器

有什么方法可以为 rsyslog 发送的日志添加标签吗?我将这些日志发送到另一台服务器,我可以检测源 IP 作为目标,但我需要在源中添加标签。

答案1

您应该能够匹配发出日志的系统的主机名。这还不够吗?

Rsyslog 有一个选项$PreserveFQDN on,可以用你的 FQDN 替换该主机名,这对于 syslog 集中器来说可能更好,...

我想在另一端你有一些 logstash 或 elasticsearch?无论哪种方式,rsyslog 还允许你定义模板,例如:

template(name="jsonfmt" type="list" option.json="on") {
    constant(value="{")
    constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
    constant(value="\",\"@version\":\"1")
    constant(value="\",\"message\":\"") property(name="msg")
    constant(value="\",\"@fields.host\":\"") property(name="hostname")
    constant(value="\",\"@fields.severity\":\"") property(name="syslogseverity-text")
    constant(value="\",\"@fields.facility\":\"") property(name="syslogfacility-text")
    constant(value="\",\"@fields.programname\":\"") property(name="programname")
    constant(value="\",\"@fields.procid\":\"") property(name="procid")
    constant(value="\",\"@fields.mytag\":\"foobarStaticTag\"}\n")
}

local7.* @logstash.example.com:1514;jsonfmt
local7.* action(type="omelasticsearch"
       action.resumeretrycount="-1"
       dynSearchIndex="on"
       bulkmode="on"
       queue.type="linkedlist"
       queue.size="1000000"
       queue.dequeuebatchsize="1000"
       queue.workerthreads="2"
       searchIndex="logidx"
       server="esearchgw.example.com"
       template="jsonfmt")

请注意,示例 logstash 转发器假定您的输入定义包括codec => jsonfoobarStaticTag是您想要添加的任何标签。

相关内容