有什么方法可以为 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 => json
。foobarStaticTag
是您想要添加的任何标签。