Mauticで利用するGeoLite2を自動更新する

こんにちは。香田です。

前回こちらの記事でGCPの環境にMauticをデプロイしましたが、

今回はMauticのIPルックアップサービスのデータベースとして利用しているGeoLite2の自動更新を設定していきます。

はじめに

前回GCPのワンクリックデプロイで作成したMauticでは、/etc/cron.d/mauticにcronが設定されています。

初期状態ではGeoLite2 IPデータベースの自動更新はコメントアウトされおり、

## download geoip db on start if it does not exist
# @reboot                www-data   [[ "$(ls -A /var/www/html/app/cache/ip_data 2>/dev/null)" ]] || php /var/www/html/app/console mautic:iplookup:download > /var/log/cron.pipe 2>&1

現在の設定を元にコマンド実行してみると、下記のように取得に失敗している状態になります。

$ sudo php /var/www/html/mautic/bin/console mautic:iplookup:download
IPルックアップデータの自動取得に失敗しました

MauticのGitHub Issueを見ると、MaxMindより提供されているGeoLite2は、現在直接ダウンロードできずライセンスキーを使用しダウンロードする必要があります。

また、MaxMindから提供されているgeoipupdateコマンドを利用することで、GeoLite2 IPデータベースの自動更新が可能になります。

MaxMind GeoLite2のライセンスキー取得

はじめにGeoLite2のライセンスキーを取得する必要がある為、MaxMindのサイトよりアカウントを作成します。

アカウント作成後、[My License Key]より[Generate new license key]にてライセンスキーを発行していきます。

m1
m2

[Download Config]よりAccountIDLicenseKey等が記載されたGeoIP.confをダウンロードします。

m3

geoipupdate インストール

次にMauticがインストールされたサーバーにてgeoipupdateをインストールしていきます。

$ wget https://github.com/maxmind/geoipupdate/releases/download/v4.3.0/geoipupdate_4.3.0_linux_amd64.deb
$ sudo dpkg -i geoipupdate_4.3.0_linux_amd64.deb

インストールに成功すると/etc/GeoIP.confが作成されるので、先ほどダウンロードしたGeoIP.confをもとにLicenseKeyなどを設定します。

geoipupdate 初回実行確認

geoipupdateコマンドを実行してダウンロードが成功するか確認します。

$ sudo mkdir /var/www/html/mautic/var/cache/ip_data
$ sudo chown www-data. /var/www/html/mautic/var/cache/ip_data
$ sudo su -s /bin/bash www-data -c "geoipupdate -f /etc/GeoIP.conf -d /var/www/html/mautic/var/cache/ip_data -v"

/var/www/html/mautic/var/cache/ip_data/GeoLite2のデータベースファイルが作成されていれば成功です。

GeoLite2 IPデータベース更新用のcron設定

事前にログ出力用のファイルを作成しておきます。

$ sudo touch /var/log/cron.pipe
$ sudo chown www-data. /var/log/cron.pipe

cron実行間隔は適宜調整し、下記の内容を/etc/cron.d/mauticに追加すれば設定完了です。

30 4 * * * www-data geoipupdate -f /etc/GeoIP.conf -d /var/www/html/mautic/var/cache/ip_data -v > /var/log/cron.pipe 2>&1

さいごに

Mauticで利用するGeoLite2の自動更新設定いかがでしたでしょうか。

最後までご覧頂きありがとうございます。

SNSでもご購読できます。