[英]Logstash Grok filter add local hostname
我有一个 4 实例 Nagios Log Server 集群,可以处理来自多个服务器的日志。 我希望日志条目具有处理它的日志服务器的名称。 我一直在查看“add_field”并试图让一些东西工作,它采用本地处理日志服务器的名称并将其添加为一个名为“processingLogServer”的字段;
if [type] == 'Log' {
grok {
match => [ 'message', '%{TIME:logTime}%{GREEDYDATA:logEntry}' ]
}
mutate {
remove_field => [ '@version', 'highlight', 'port', 'SourceModuleType', 'EventReceivedTime', 'message' ]
add_field => [ 'processingLogServer', 'hostname' ]
}
}
我需要的解决方案是使用 ruby,按照https://discuss.elastic.co/t/logstash-hostname-as-field/146662
filter {
ruby {
init => "require 'socket'"
code => "event['some-field-name'] = Socket.gethostname"
}
}
您可以在 logstash 配置文件中使用环境变量。 因此,您可以使用它将依赖于服务器的信息添加到日志中:
在 Windows 上,可以使用COMPUTERNAME
环境:
mutate {
add_field => { "processingLogServer" => "${COMPUTERNAME}" }
}
在 Linux 系统上,您应该能够使用HOSTNAME
环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.