Logstash收集多台设备的beats日志信息,如何添加多台源设备的源ip字段并输出到Elasticsearch?
Logstash | 作者 qhlhelo | 发布于2016年11月23日 | 阅读数:13134
最初使用Metricbeast --> Elasticsearch,原始文档内容可以看到host名称,比如windows的主机名"admin-PC"或者其他,但是我有需求是区分源ip地址的数据,基于Beats的配置好像不行,所以我又将环境改为了Metricbeat --> Logstash --> Elasticsearch,想通过Logstash的geoip或者add_field增加ip地址信息。后来发现geoip无法识别内网(局域网)地址,如127.0.0.1和192.168.1.1等等,而add_field增加%{host}也不行,依然是主机名。。
如何区分源(内网地址)ip信息,如何输出到Elasticsearch中呢?
如何区分源(内网地址)ip信息,如何输出到Elasticsearch中呢?
4 个回复
Dalen_fly
赞同来自: novia
这个问题是因为 logstash-input-beats 没有实现获取ip功能导致的.
详见github bug论 :https://github.com/logstash-pl ... s/180
logstash-input-beats 是个独立的插件,有自己的版本,目前4.0.3已修复该问题,在logstash大版本未发布前,可以单独升级 该插件 到4.0.3 及以上版本。
新插件中,通过以下方式获取ip
filter {
mutate {
add_field => { "remote_ip" => "%{[@metadata][ip_address]}" }
}
}
参见https://github.com/logstash-pl ... 59a0a
如何升级插件 请参考 https://github.com/logstash-pl ... ME.md
Jea - 一只猿
赞同来自:
在logstash收集之前
Dalen_fly
赞同来自:
从logstash6.0中(安装后)拷贝出 logstash-input-beats-5.0.0-java 的gems 和 specifications
文件在
/usr/share/logstash/vendor/bundle/jruby/1.9/gems
/usr/share/logstash/vendor/bundle/jruby/1.9/specifications
将其中的所有版本号5.0.0修改成3.1.23(3.1.23是你的logstash里比较老的那个 logstash-input-beats的版本号)
改完后
将
logstash-input-beats-3.1.23-java
替换到 logstash5.5.2
/usr/share/logstash/vendor/bundle/jruby/1.9/gems
logstash-input-beats-3.1.23-java.gemspec
替换到 logstash5.5.2
/usr/share/logstash/vendor/bundle/jruby/1.9/specifications
然后重启logstash,即可
wang509020 - 我无泪
赞同来自: