繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM