2014-11-25 23 views
8

Logstash IP adresi coğrafi aramaları için bir paketlenmiş GeoLiteCity.dat veritabanından yararlanabilir. Bu veritabanı the one provided by MaxMind ile aynı mı? MaxMind her ayın ilk Salı günü veritabanını günceller.GeoLiteCity.dat'ı periyodik olarak güncellemeli miyim?

ElasticSearch'ten Logstash güncellemelerini beklemek yerine veritabanını otomatik olarak yenilemek için bir iş kurmak akıllıca olur mu?

DÜZENLEME: Ara 1 2014 Veritabanlarının otomatik güncelleştirmesini gerçekleştirmek için yazdığım bash komut dosyası. Benim the source code for this filter okumam, güncelleştirilmiş veritabanı dosyalarını almak için muhtemelen bir hizmet yeniden başlatmanın gerekli olmasıdır.

#!/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

Coğrafi filtrenin kaynağını buldu: https://github.com/logstash-plugins/logstash-filter-geoip/blob/master/lib/logstash/filters/geoip.rb Beni hatırlattı. Bu veritabanları için alternatif bir konum yapılandırın; bu da dağıtılmış veritabanlarının üzerine yazılmasından daha iyi bir çözüm olabilir. –

+0

Yeni bir GeoLiteCity.dat her defasında yere düştüğünde logstash'ı yeniden başlatması aptalca. Görüyorum ki "periodic_flush" seçeneğine sahip olmak için bir seçenek var, ancak tam olarak ne sıklıkta veya ne sıklıkta yaptığından emin değilim: "Filtreli yıkama yöntemini düzenli aralıklarla arayın" (https://www.elastic.co/ kılavuzu/tr/logstash/2.4/plugins-filters-geoip.html # plugins-filters-geoip-periodic_flush) – totalflux

cevap

4

Evet, aynı veritabanı ve evet, güncellemeleri maxmind web sitesinden kullanabilirsiniz. Veritabanı dosyalarını maxmind otomatik olarak güncellemek için bir cronjob içeren ubuntu içinde geoip-database-contrib paketini kullanın.

Maxmind veri kümesinin ne kadar hızlı değişmediğini, ancak logstash'ın (veritabanı dosyasını içeren) yavaş bir yayınlanma planına sahip olduğundan (şimdiki 1.4.2 5 ay önce yayımlandı), güncelliğini kullanıyorum veri tabanı.

+0

Düzenli güncellemeleri almak için ticari bir lisansa ihtiyacınız var gibi görünüyor mu? –

+1

Her ay http://dev.maxmind.com/geoip/legacy/geolite/: ücretsiz güncellemelere bakın. Daha fazla güncellemeye ihtiyacınız varsa, ödeme yapmanız gerekir. – whyscream

+0

Güzel görünüyor. Son soru: Güncelleştirilmiş .dat dosyalarını almak için logstash'ı yeniden başlatmanız mı gerekiyor? –