The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

eris::log::context::GeoIP - Apply MaxMind GeoIPv2 Data to events

VERSION

version 0.005

SYNOPSIS

Use this module to tag geo location data to events with matching field names. You'll probably need to configure the geo_db attribute.

ATTRIBUTES

priority

Defaults to 1000, run last.

field

Defaults to '_exists_'

matcher

A regex matching any string ending in '_ip'.

geo_db

The file location for the GeoIPv2 Databases, defaults to '/usr/share/GeoIP/GeoLite2-City.mmdb'. Set in the config:

    ---
    contexts:
      configs:
        GeoIP:
          geo_db: '/var/lib/geoip/GeoIP2-Full.mmdb'

geo_lookup

This is an instance of a GeoIP2::Database::Reader used to lookup GeoIP data for an IP

warnings

Should warnings about this context failing initialization be displayed.

Defaults to false so you won't get spew when the geo_db is missing.

METHODS

contextualize_message

Inspects the eris::log context for any fields ending in '(.*)_ip'. If found, a new key "${1}_geoip" is created to contain a HashRef with the following data:

    city, country, continent, location, traits, postal_code

The only special elements being, location which is "latitude,longitude" and traits, which is an array containing the following possible tags: anonymous, proxy, and/or satellite.

SEE ALSO

eris::log::contextualizer, eris::role::context, GeoIP2::Database::Reader

AUTHOR

Brad Lhotsky <brad@divisionbyzero.net>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Brad Lhotsky.

This is free software, licensed under:

  The (three-clause) BSD License