2014-11-25 9 views
8

Logstash może korzystać z dołączonej bazy danych GeoLiteCity.dat do wyszukiwania adresów geograficznych adresów IP. Czy ta baza danych jest taka sama jak the one provided by MaxMind? MaxMind aktualizuje bazę danych w pierwszy wtorek każdego miesiąca.Czy powinienem okresowo aktualizować GeoLiteCity.dat?

Czy byłoby mądrze ustawić zadanie, aby automatycznie odświeżyć bazę danych zamiast czekać na aktualizacje do Logstash z ElasticSearch?

EDYCJA: 1 grudnia 2014 Oto skrypt, który napisałem, aby przeprowadzić automatyczną aktualizację baz danych. Moja lektura: the source code for this filter jest taka, że ​​ponowne uruchomienie usługi jest prawdopodobnie wymagane do przejęcia zaktualizowanych plików baz danych.

#!/bin/bash 

# Downloads the latest GeoLight DBs from maxmind. 
# Updates/replaces the databases that logstash uses. 
# These are the IP-to-location databases that logstash uses. 
# Maxmind updates them once a month on the first Tuesday of the month. 
# See http://dev.maxmind.com/geoip/legacy/geolite/ 

echo Beginning update of GeoIP databases for logstash. 
cd /tmp 
rm -f GeoIPASNum.dat.gz GeoIPASNum.dat GeoLiteCity.dat.gz GeoLiteCity.dat 
echo Downloading latest files. 
wget --quiet --output-document GeoIPASNum.dat.gz http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz || { echo 'Download of GeoIPASNum.dat.gz failed' ; exit 1; } 
wget --quiet --output-document GeoLiteCity.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz || { echo 'Download of GeoLiteCity.dat.gz failed' ; exit 1; } 

echo Unzipping 
gunzip GeoIPASNum.dat.gz 
gunzip GeoLiteCity.dat.gz 

echo Setting permissions 
chmod 664 GeoIPASNum.dat GeoLiteCity.dat 
chown logstash:logstash GeoIPASNum.dat GeoLiteCity.dat 

echo Replacing existing files and backing up the old. 
cd /opt/logstash/vendor/geoip/ 
mv -f GeoIPASNum.dat GeoIPASNum.dat.bak && mv /tmp/GeoIPASNum.dat . 
mv -f GeoLiteCity.dat GeoLiteCity.dat.bak && mv /tmp/GeoLiteCity.dat . 

echo Restarting logstash 
# Modify for your distro services model. 
service logstash restart 

echo Done 
+0

Znaleziono źródło filtra geograficznego: https://github.com/logstash-plugins/logstash-filter-geoip/blob/master/lib/logstash/filters/geoip.rb Przypomniało mi, że mogę ustawić skonfiguruj alternatywną lokalizację dla tych baz danych, która prawdopodobnie byłaby lepszym rozwiązaniem niż nadpisywanie rozproszonych baz danych. –

+0

To głupie, że trzeba ponownie uruchamiać logstash za każdym razem, gdy nowy GeoLiteCity.dat zostanie zrzucony na miejsce. Rozumiem, że istnieje opcja "okresowego" czyszczenia, ale nie jestem pewien, co dokładnie robi lub jak często to wszystko mówi: "Wezwij metodę filtrowania filtra w regularnych odstępach czasu" (https://www.elastic.co/ guide/pl/logstash/2.4/plugins-filters-geoip.html # plugins-filters-geoip-periodic_flush) – totalflux

Odpowiedz

4

Tak, to ta sama baza danych i tak, można używać aktualizacji ze strony maxmind. Używam pakietu geoip-database-contrib w Ubuntu, który obejmuje cronjob do automatycznego aktualizowania plików baz danych z maxmind.

Nie wiem, jak szybko zmienia się zestaw danych maxmind, ale ponieważ logstash (który zawiera plik bazy danych) ma powolny harmonogram wydań (bieżący 1.4.2 został wydany 5 miesięcy temu), używam aktualnego Baza danych.

+0

Wygląda na to, że potrzebujesz licencji komercyjnej, aby otrzymywać regularne aktualizacje? –

+1

Zobacz http://dev.maxmind.com/geoip/legacy/geolite/: bezpłatne aktualizacje co miesiąc. Jeśli potrzebujesz więcej aktualizacji, musisz zapłacić. – whyscream

+0

Wygląda dobrze. Ostatnie pytanie: Czy musisz ponownie uruchomić program logstash, aby pobrać zaktualizowane pliki .dat? –