Logstash-Grok过滤器添加本地主机名



我有一个4实例的Nagios日志服务器集群,它处理来自多个服务器的日志。我希望日志条目具有处理它的日志服务器的名称;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环境变量。


或者您可以使用由logstash自动创建和设置的host字段。

您可以复制如下字段的内容:

mutate {
add_field => { "processingLogServer" => "%{host}" }
}

相关内容

  • 没有找到相关文章

最新更新