Hello!
I'm using dockerized elasticsearch7.3 on my local machine and I'm trying to use my GeoIP2-City.mmdb
to add geoip info.
I've read the length and breadth of the official geoip processor description and I still can't manage to create a processor with custom geoip library.
I'm sending HTTP PUT request to
http://{{ elasticsearch_host }}:{{ elasticsearch_port }}/_ingest/pipeline/geoip
with data:
{
"description" : "Add geoip info",
"processors" : [
{
"geoip" : {
"field" : "ip",
"target_field" : "geo",
"database_file" : "GeoIP2-City.mmdb"
}
}
]
}
And getting the following error:
{
"error": {
"root_cause": [
{
"type": "parse_exception",
"reason": "[database_file] database file [GeoIP2-City.mmdb] doesn't exist",
"property_name": "database_file",
"processor_type": "geoip"
}
],
"type": "parse_exception",
"reason": "[database_file] database file [GeoIP2-City.mmdb] doesn't exist",
"property_name": "database_file",
"processor_type": "geoip"
},
"status": 400
}
However if I try to create pipeline with database_file
field set to the name of any shipped libraries (ex. GeoLite2-City.mmdb
), the pipeline is created successful.
What I've done until now:
-
Created Dockerfile for elasticsearch:
ARG ES_VERSION=7.3.0 FROM docker.elastic.co/elasticsearch/elasticsearch:${ES_VERSION} # Here I copy the Geoip library and set the same ownership # as other geoip lite libraries have. COPY ./libs/GeoIP2-City.mmdb /usr/share/elasticsearch/modules/ingest-geoip/GeoIP2-City.mmdb RUN chown elasticsearch:root /usr/share/elasticsearch/modules/ingest-geoip/GeoIP2-City.mmdb
Here I've supposed that mentioned in docs
$ES_CONFIG/ingest-geoip
is the/usr/share/elasticsearch/modules/ingest-geoip
(also I've tried/usr/share/elasticsearch/config/ingest-geoip
) because there are absolutely no mentions in docs about the$ES_CONFIG
variable. -
Starting elasticsearch as a service via docker-compose:
elasticsearch: build: context: ./elasticsearch dockerfile: Dockerfile args: ES_VERSION: 7.3.0 network_mode: host env_file: - ./elasticsearch/env.sh volumes: - ./data/elastic:/usr/share/elasticsearch/data
Any help is appreciated.
Thank you.