geoip
Logstash收集多台设备的beats日志信息,如何添加多台源设备的源ip字段并输出到Elasticsearch?
Logstash • wang509020 回复了问题 • 4 人关注 • 4 个回复 • 13188 次浏览 • 2020-12-17 14:06
GeoIP解析IP地理位置
Logstash • ziyou 发表了文章 • 0 个评论 • 9568 次浏览 • 2019-12-20 10:09
<dependency>
<groupId> com.maxmind.geoip2 </groupId >
<artifactId > geoip2 </artifactId >
<version >2.12.0</version >
</dependency >
3、使用
// A File object pointing to your GeoIP2 or GeoLite2 database
System.out.println(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("/",""));
File database = new File(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("file:/",""));
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
DatabaseReader reader = new DatabaseReader.Builder(database).build();
InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
// Replace "city" with the appropriate method for your database, e.g.,
// "country".
CityResponse response = reader.city(ipAddress);
Country country = response.getCountry();
System.out.println(country.getIsoCode()); // 'US'
System.out.println(country.getName()); // 'United States'
System.out.println(country.getNames().get("zh-CN")); // '美国'
Subdivision subdivision = response.getMostSpecificSubdivision();
System.out.println(subdivision.getName()); // 'Minnesota'
System.out.println(subdivision.getIsoCode()); // 'MN'
City city = response.getCity();
System.out.println(city.getName()); // 'Minneapolis'
Postal postal = response.getPostal();
System.out.println(postal.getCode()); // '55455'
Location location = response.getLocation();
System.out.println(location.getLatitude()); // 44.9733
System.out.println(location.getLongitude()); // -93.2323
logstash 配置geoip 报The database provided is invalid or corrupted错
Logstash • hotyei2003 回复了问题 • 5 人关注 • 9 个回复 • 11374 次浏览 • 2018-10-24 14:01
求教大神,Kibana上使用Map报错,没有“geo_point”,如何解决
Elasticsearch • vidi 回复了问题 • 3 人关注 • 1 个回复 • 7866 次浏览 • 2018-06-25 09:13
kibana使用geoip插件展示地图热力图
Kibana • ziyou 发表了文章 • 10 个评论 • 25653 次浏览 • 2018-02-09 16:56
上图是我们最终的地图效果。
总体步骤:
一、使用logstash geoip插件解析IP字段;
二、配置geoip.location字段为geo_point类型。
三、使用kibana的Coordinate map作图。
具体步骤:
一、解析IP字段
使用logstash的geoip插件 logstash-filter-geoip 解析IP字段,需要在logstash的配置文件中配置geoip的解析配置,配置如下:
geoip {
source => "ip" //需要解析的IP地址
}
解析出的效果如下:
"geoip": {
"city_name": "Wuhan",
"timezone": "Asia/Shanghai",
"ip": "117.136.52.200",
"latitude": 30.5801,
"country_name": "China",
"country_code2": "CN",
"continent_code": "AS",
"country_code3": "CN",
"region_name": "Hubei",
"location": {
"lon": 114.2734,
"lat": 30.5801
},
"region_code": "42",
"longitude": 114.2734
}
备注:这个只是geoip的配置,解析日志的时候需要先解析出ip字段
二、配置geoip字段类型
IP经过logstash解析后就可以使用IP的所有解析信息了,但是如果想要在kibana中作图,就必须把geoip里面的相应信息配置成相应的字段类型,才能够被kibana识别,然后经过聚合作图。 需要配置的字段:geoip.location 需要配置的类型:geo_point 在mapping中的配置为:
"geoip" : {
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
备注1: ignore_malformed 如果true,格式错误的地理位置被忽略。如果false(默认),格式错误的地理位置引发异常并拒绝整个文档。 此字段需要配置成true,以防地理格式错误导致文档被拒绝。 也可以在所以级别进行设置: "settings": { "index.mapping.ignore_malformed": true }
备注2:需要先设置mapping,再导入数据mapping才会生效,如果先导入数据,再设置mapping,则第二天八点后才会生效(北京时间)。
三、kibana作图
1、在kibana中打开visualize->coordinate map
2、选择相应的索引进行画图
3、选择geoip.location作为聚合字段,然后设置Options,调整地图效果即可。
geoip插件ip查出的详细信息怎么显示成中文的
Logstash • huebryliu 回复了问题 • 6 人关注 • 5 个回复 • 6173 次浏览 • 2017-12-19 18:04
geoip和timestamp的两个问题
Kibana • benny 回复了问题 • 3 人关注 • 2 个回复 • 6781 次浏览 • 2017-11-02 09:42
使用ES的GEO获取附近信息失败
Elasticsearch • kennywu76 回复了问题 • 2 人关注 • 1 个回复 • 3129 次浏览 • 2017-09-22 11:53
logstash IP地理位置解析不准确
Logstash • hexiaoxin 回复了问题 • 4 人关注 • 2 个回复 • 10241 次浏览 • 2017-07-31 09:52
Logstash收集多台设备的beats日志信息,如何添加多台源设备的源ip字段并输出到Elasticsearch?
回复Logstash • wang509020 回复了问题 • 4 人关注 • 4 个回复 • 13188 次浏览 • 2020-12-17 14:06
logstash 配置geoip 报The database provided is invalid or corrupted错
回复Logstash • hotyei2003 回复了问题 • 5 人关注 • 9 个回复 • 11374 次浏览 • 2018-10-24 14:01
求教大神,Kibana上使用Map报错,没有“geo_point”,如何解决
回复Elasticsearch • vidi 回复了问题 • 3 人关注 • 1 个回复 • 7866 次浏览 • 2018-06-25 09:13
geoip插件ip查出的详细信息怎么显示成中文的
回复Logstash • huebryliu 回复了问题 • 6 人关注 • 5 个回复 • 6173 次浏览 • 2017-12-19 18:04
GeoIP解析IP地理位置
Logstash • ziyou 发表了文章 • 0 个评论 • 9568 次浏览 • 2019-12-20 10:09
<dependency>
<groupId> com.maxmind.geoip2 </groupId >
<artifactId > geoip2 </artifactId >
<version >2.12.0</version >
</dependency >
3、使用
// A File object pointing to your GeoIP2 or GeoLite2 database
System.out.println(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("/",""));
File database = new File(GeoIP2Test.class.getClassLoader().getResource("GeoLite2-City.mmdb").toString().replaceFirst("file:/",""));
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
DatabaseReader reader = new DatabaseReader.Builder(database).build();
InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
// Replace "city" with the appropriate method for your database, e.g.,
// "country".
CityResponse response = reader.city(ipAddress);
Country country = response.getCountry();
System.out.println(country.getIsoCode()); // 'US'
System.out.println(country.getName()); // 'United States'
System.out.println(country.getNames().get("zh-CN")); // '美国'
Subdivision subdivision = response.getMostSpecificSubdivision();
System.out.println(subdivision.getName()); // 'Minnesota'
System.out.println(subdivision.getIsoCode()); // 'MN'
City city = response.getCity();
System.out.println(city.getName()); // 'Minneapolis'
Postal postal = response.getPostal();
System.out.println(postal.getCode()); // '55455'
Location location = response.getLocation();
System.out.println(location.getLatitude()); // 44.9733
System.out.println(location.getLongitude()); // -93.2323
kibana使用geoip插件展示地图热力图
Kibana • ziyou 发表了文章 • 10 个评论 • 25653 次浏览 • 2018-02-09 16:56
上图是我们最终的地图效果。
总体步骤:
一、使用logstash geoip插件解析IP字段;
二、配置geoip.location字段为geo_point类型。
三、使用kibana的Coordinate map作图。
具体步骤:
一、解析IP字段
使用logstash的geoip插件 logstash-filter-geoip 解析IP字段,需要在logstash的配置文件中配置geoip的解析配置,配置如下:
geoip {
source => "ip" //需要解析的IP地址
}
解析出的效果如下:
"geoip": {
"city_name": "Wuhan",
"timezone": "Asia/Shanghai",
"ip": "117.136.52.200",
"latitude": 30.5801,
"country_name": "China",
"country_code2": "CN",
"continent_code": "AS",
"country_code3": "CN",
"region_name": "Hubei",
"location": {
"lon": 114.2734,
"lat": 30.5801
},
"region_code": "42",
"longitude": 114.2734
}
备注:这个只是geoip的配置,解析日志的时候需要先解析出ip字段
二、配置geoip字段类型
IP经过logstash解析后就可以使用IP的所有解析信息了,但是如果想要在kibana中作图,就必须把geoip里面的相应信息配置成相应的字段类型,才能够被kibana识别,然后经过聚合作图。 需要配置的字段:geoip.location 需要配置的类型:geo_point 在mapping中的配置为:
"geoip" : {
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
备注1: ignore_malformed 如果true,格式错误的地理位置被忽略。如果false(默认),格式错误的地理位置引发异常并拒绝整个文档。 此字段需要配置成true,以防地理格式错误导致文档被拒绝。 也可以在所以级别进行设置: "settings": { "index.mapping.ignore_malformed": true }
备注2:需要先设置mapping,再导入数据mapping才会生效,如果先导入数据,再设置mapping,则第二天八点后才会生效(北京时间)。
三、kibana作图
1、在kibana中打开visualize->coordinate map
2、选择相应的索引进行画图
3、选择geoip.location作为聚合字段,然后设置Options,调整地图效果即可。