こんにちは。香田です。
前回こちらの記事で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]にてライセンスキーを発行していきます。
[Download Config]よりAccountID
、LicenseKey
等が記載されたGeoIP.conf
をダウンロードします。
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の自動更新設定いかがでしたでしょうか。
最後までご覧頂きありがとうございます。