昨日の記事に書いたGoAccessでは、アクセス元の国名を併せて表示することができる。そのためにはGeoIPデータベースをインストールしなければならないのだが、幸いなことに無料で提供されているGeoIPデータベースがある。今回はそのインストール手順を覚え書き。
GoAccessの設定ファイル
GoAccessの設定ファイルを見ると以下のように書かれている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# vi /etc/goaccess/goaccess.conf ###################################### # GeoIP Options # Only if configured with --enable-geoip ###################################### # To feed a database either through GeoIP Legacy or GeoIP2, you need to use the # geoip-database flag below. # # === GeoIP Legacy # Legacy GeoIP has been discontinued. If your GNU+Linux distribution does not ship # with the legacy databases, you may still be able to find them through # different sources. Make sure to download the .dat files. # # Distributed with Creative Commons Attribution-ShareAlike 4.0 International License. # https://mailfud.org/geoip-legacy/ # IPv4 Country database: # Download the GeoIP.dat.gz # gunzip GeoIP.dat.gz # # IPv4 City database: # Download the GeoIPCity.dat.gz # gunzip GeoIPCity.dat.gz # Standard GeoIP database for less memory usage (GeoIP Legacy). # #std-geoip false # === GeoIP2 # For GeoIP2 databases, you can use DB-IP Lite databases. # DB-IP is licensed under a Creative Commons Attribution 4.0 International License. # https://db-ip.com/db/lite.php # Or you can download them from MaxMind # https://dev.maxmind.com/geoip/geoip2/geolite2/ # For GeoIP2 City database: # Download the GeoLite2-City.mmdb.gz # gunzip GeoLite2-City.mmdb.gz # # For GeoIP2 Country database: # Download the GeoLite2-Country.mmdb.gz # gunzip GeoLite2-Country.mmdb.gz # #geoip-database /usr/local/share/GeoIP/GeoLiteCity.dat |
geoip-databaseにGeoIP LegacyまたはGeoIP2のデータベースを指定しろということらしい。ただし、GeoIP Legacyは既に配布終了となっている模様。ということは、選択肢はGepIP2だけ、ということか。
GeoIP2の無料データベースを取得する
設定ファイルに記載されているリンクにアクセス。
GeoLite2 Free Geolocation Data
https://dev.maxmind.com/geoip/geoip2/geolite2/
無料版はGeoLite2という名称らしい。ダウンロードには無料のGeoLite2アカウントが必要とのこと。
GeoLite2 Sign Up | MaxMind
https://www.maxmind.com/en/geolite2/signup
必要事項を記入するとメールが来るので、メール本文のリンクをクリックしてログインし、パスワードを設定したらアカウント作成は完了。
サイドメニューからGeoIP2/GeoLite2 -Download Filesページに移動すると、データベースがダウンロードできる。今回はアクセス元IPの国情報が欲しいので、GeoLite2 Country (tar.gz形式) をダウンロードする。
GoAccess用のセットアップ
ダウンロードしたアーカイブを解凍して、.mmdbファイルを適当なディレクトリに配置する。
1 2 3 4 |
# cd /usr/local/share # mkdir GeoIP # cd GeoIP # cp <解凍先ディレクトリ> GeoLite2-Country.mmdb |
あとはGoAccessの設定ファイルでGeoIPデータベースのパスを指定するだけ。
1 2 3 |
# vi /etc/goaccess/goaccess.conf # 以下を追加 geoip-database /usr/local/share/GeoIP/GeoLite2-Country.mmdb |
GoAccessを実行して解析ページを生成してみる。[VISITOR HOSTNAME AND IPS]セクションに[COUNTRY]カラムが表示されるようになった。
参考サイト
Industry leading IP Geolocation and Online Fraud Prevention | MaxMind
https://www.maxmind.com/en/home
GoAccess – Visual Web Log Analyzer
https://goaccess.io/