在LogStash中,如何获取客户端的公共IP地址作为字段



我使用文件拍打将日志从我的节点发送到logstash。有多种这样的节点,他们使用文件拍打将日志发送到logstash。

基本上,我想知道我的节点的公共IP地址,以便我可以在基于GEOIP的位置绘制Kibana的可视化。

并且由于我的节点在NAT后面,因此我无法将IP地址打印为日志条目的一部分(例如,Syslog条目);因为在本地我只知道节点的私有IP。

有什么方法可以自动知道我的节点的IP地址并将其插入弹性搜索字段?

理论上应该有可能,就像logstash从Beats获取信息时,他应该从他获得的位置了解IP地址。

预先感谢。

不可能使用当前的logstash beats输入来配置它以通过接收到该事件的远程IP丰富传入的事件。

过去,该功能是针对较旧的Logstash Lumberjack输入提出的,但是Beats Input中没有开放的功能请求。我建议您要求它。

https://github.com/logstash-plugins/logstash-input-beats/issues/180https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html#plugins-inputs-beats-ecs_metadata

input {
    beats {
        port => "5044"
        add_field => { "remote_ip" => "%{[@metadata][input][beats][host].[ip]}" }
    }
}

最新更新