mirror of
https://github.com/elastic/logstash.git
synced 2025-06-28 09:46:03 -04:00
* geoip: extract database manager to stand-alone feature Introduces an Elastic-licensed GeoipDatabaseManagement tool that can be used by ANY plugin running on Elastic-licensed Logstash to retrieve a subscription to a GeoIP database that ensures EULA-compliance and frequent updates, and migrates the previous Elastic-licensed code-in-Logstash-core extension to the Geoip Filter to use this new tool, requiring ZERO changes to in-the-wild versions of the plugin. The implementation of the new tool follows the previous implementation as closely as possible, but presents a new interface that ensures that a consumer can ATOMICALLY subscribe to a database path without risk that the subscriber will receive an update or expiry before it is finished applying the initial value: ~~~ ruby geoip_manager = LogStash::GeoipDatabaseManagement::Manager.instance subscription = geoip_manager.subscribe('City') subscription.observe(construct: ->(initial_dbinfo){ }, on_update: ->(updated_dbinfo){ }, on_expire: ->( _ ){ }) subscription.release! ~~~ * docs: link in geoip database manager docs * docs: reorganize pending 'geoip database management' feature * docs: link to geoip pages from feature index * geoip: add SubscriptionObserver "interface" simplifies using Subscription#observe from Java * geoip: fixup SubscriptionObserver after rename * geoip: quacking like a SubscriptionObserver is enough * geoip: simplify constants of legacy geoip filter extension * geoip: bump logging level to debug for non-actionable log * geoip: refine log message to omit non-actionable info * re-enable invokedynamic (was disabled to avoid upstream bug) * geoip: resolve testing fall-out from filter extension's "private" constants removal * geoip: consistently use `DataPath#resolve` internally, too
19 lines
1.3 KiB
Text
19 lines
1.3 KiB
Text
[role="xpack"]
|
|
[[logstash-geoip-database-management]]
|
|
=== GeoIP Database Management
|
|
|
|
Logstash provides a mechanism for provisioning and maintaining GeoIP databases, which plugins can use to ensure that they have access to an always-up-to-date and EULA-compliant database for geo enrichment.
|
|
This mechanism requires internet access or a network route to an Elastic GeoIP database service.
|
|
|
|
If the database manager is enabled in `logstash.yml` (as it is by default), a plugin may subscribe to a database, triggering a download if a valid database is not already available.
|
|
Logstash checks for updates every day.
|
|
When an updated database is discovered, it is downloaded in the background and made available to the plugins that rely on it.
|
|
|
|
The GeoIP databases are separately-licensed from MaxMind under the terms of an End User License Agreement, which prohibits a database from being used after an update has been available for more than 30 days.
|
|
When Logstash cannot reach the database service for 30 days or more to validate that a managed database is up-to-date, that database is deleted and made unavailable to the plugins that subscribed to it.
|
|
|
|
NOTE: GeoIP database management is a licensed feature of Logstash, and is only available in the Elastic-licensed complete distribution of Logstash.
|
|
|
|
include::metrics.asciidoc[]
|
|
|
|
include::configuring.asciidoc[]
|