【发布时间】:2015-01-23 17:19:44
【问题描述】:
Logstash 可以使用捆绑的 GeoLiteCity.dat 数据库进行 IP 地址地理查找。这个数据库和the one provided by MaxMind一样吗? MaxMind 在每个月的第一个星期二更新数据库。
设置一个自动刷新数据库而不是等待从 ElasticSearch 更新到 Logstash 是否明智?
编辑:2014 年 12 月 1 日 这是我为执行数据库的自动更新而编写的 bash 脚本。我对the source code for this filter 的阅读是,可能需要重新启动服务才能占用更新的数据库文件。
#!/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
【问题讨论】:
-
找到地理过滤器的来源:github.com/logstash-plugins/logstash-filter-geoip/blob/master/… 它提醒我可以在配置中为这些数据库设置一个备用位置,这可能是比覆盖分布式数据库更好的解决方案。跨度>
-
每次新的 GeoLiteCity.dat 就位时都必须重新启动 logstash 是很愚蠢的。我看到有一个选项可以使用“periodic_flush”,但我不确定它的确切作用或频率,正如它所说的那样:“定期调用过滤器刷新方法”(elastic.co/guide/en/logstash/2.4/…)
标签: elasticsearch logstash geoip kibana