Summary:
If geolocation data is mapped to geo_points in ElasticSearch (to enable 
bounding box/polygon/pin and distance searches), Graylog maps no longer 
function with the new data.

System: Graylog 2.1 OVA, ES and everything else as shipped in the OVA.

Background:
Enabled the geolocation processor on 27th September 2016 (over 4 months 
ago).  The maps worked since that time without issue (I have another 
problem with the maps - revolving around the apparent inability to 
graph/map anything other than the message count - but that is a separate 
discussion and I'll start a new thread for that).

Decided to try and run some geo bounding box searches on ElasticSearch 
using the geolocation info acquired (from 4 months ago to current).

Only to discover that ES requires a mapping of the geolocation points to be 
actual geo_points rather than strings (as the geolocation plugin creates 
them now). Result: that 4 months worth of data is unusable.

So the geolocation processor/plugin is loading geolocation data into a 
geolocation-aware database, but *not* in a format that the 
geolocation-aware database can use to do a native geo-based search.  This 
in itself appears counterintuitive.

So I added the mapping to ES (after a lot of digging - eventually found the 
1st reference below).  And the bounding box search works beautifully (using 
a python script to query ES directly).

However, all the maps are now broken and return status 500 errors when 
clicking the "World Map" option in a geolocation enabled field (message 
shown in the red background at lower part of screen):
Could not load map information
Loading map information failed: cannot POST 
http://localhost/api/plugins/org.graylog.plugins.map/mapdata (500)

Maps of the data before the change to the ES mapping still work as expected 
- so can still map the old data.

So it seems that I can have mapping ability in Graylog, _or_ I can do a 
(python) bounding box/polygon/pin and distance search - but not 
simultaneously have both?

It would seem to me to be a bug - when I enabled the geolocation processor 
I expected:
1) to be able to do a bounding box/polygon/pin-distance style search at a 
later time (ie:that the location data is put in the db in a format the db 
can _natively_ use in a geo query - a standard function of said db)
2) to have maps in the graylog interface
3) for 1 and 2 not to be mutually exclusive

"1)" is currently not the case unless the geo_point mapping is added.
"2)" only works while "1)" is not enabled.

So the question is: How to fix maps in graylog without removing the 
geo_point mapping from elasticsearch? Am confident this was a minor 
oversight when the map processor/plugin was built.

Note: The format of the data loaded into ES is unchanged - it is still a 
string as such in query results eg: "srcip_geolocation" : 
"-37.7204,145.0698" - it is only the mapping in ES that has been changed.

References:
Graylog plugin - elastic field types: Last post describes the way to enable 
correct ES mapping of the geo_points.
https://groups.google.com/forum/?hl=en#!searchin/graylog2/geopoint%7Csort:relevance/graylog2/G1hOxGMFls4/FDAsN3h3BQAJ

Not sure if relevant, but this page indicated additional requirement for 
the mapping, namely "lat_lon" : true - unsure if that is required/necessary 
but it didn't cause any errors - I obviously changed the URL to suit my 
graylog instance:
ie: curl -XPUT 'localhost:9200/listing/listing/_mapping?pretty' -d 
'{"listing": {"properties": {"rent": {"type": "intger"}, "location": 
{"type": "geo_point", *"lat_lon": true*}}}}'
https://gist.github.com/mastermunj/a58298bc56615b54d643

-- 
You received this message because you are subscribed to the Google Groups 
"Graylog Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to graylog2+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/graylog2/d631139d-77bd-451b-a819-5c5f8e96f0fc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to