ウェブアクセス解析MatomoのGeoLite2利用

MySQLを8.0に更新したらウェブアクセス解析のMatomo (旧Piwik)が全く動かなくなって開発版を入れ直したが、昔とはGeoIP周りが変わっているみたい。GeoIP2/GeoLite2というのが記憶にない作業のようなのでこの記事を備忘録とする。(MySQL8.0でMatomoが動かない問題は5月7日現在、開発版とβ版のMatomo 3.5.0-b3, Matomo 3.5.0-rc1で解決済み)

Maxmindのウェブサイト
MaxmindのウェブサイトからGeoLite2-Cityのバイナリファイルをダウンロードする。

以下の手順はMatomoを/usr/local/www/matomoにインストールしているとし、apache/nginxの実行ユーザー名/グループ名がwwwであるとする。行頭が#は管理者として、%は一般ユーザーで実行とする。

# cd /usr/ports/net/pecl-geoip
# make install clean
# service php-fpm restart  #PHPをphp-fpmで動かしている場合の再起動
% wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
% tar zxvf GeoLite2-City.tar.gz
# mv GeoLite2-City.mmdb /usr/local/www/matomo/misc/
# chown www:www /usr/local/www/matomo/misc/GeoLite2-City.mmdb
% ls -l /usr/local/www/matomo/misc | grep Geo
-rw-r--r--  1 www   www  20539238  5月  4 12:59 GeoIPCity.dat
-rw-r--r--  1 www   www  56482235  5月  7 21:15 GeoLite2-City.mmdb

4行目のwgetは上の画像のページから既に取得済みなら当然不要。
GeoIPCity.datはGeoLiteCity.datと同一というかMatomoのWebUIでGeoLiteCityデータをインストールしたらGeoLiteCity.datがリネームされて置かれたもの。このデータは非常にアバウトなのでビジターがどの国から来たか程度しかわからない。GeoLite2-City.mmdbだとファイルサイズが2倍以上の甲斐があってかほんの少しだけ詳しくなる。

Matomoのジオロケーション設定
Matomoの設定メニューから「ジオロケーション」を選択する。2番目の「GeoIP 2 (Php)」が「インストール済み」になっていることを確認してそのラジオボタンを押す。左下の「保存」を押す。
右側の灰色部分の「このプロバイダーによると、あなたの現在地は:」の下に座標と都市名が表示されたら成功。(その情報が正確かは関係ない)

Matomoのビジターログを見る
ジオロケーション設定変更以降に記録されるビジターの情報(上の画像では左列)を見ると日本の都道府県名が表示されている。ただし、全てではなく一部は「日本」という国名だけ。

簡単だけどイマイチわかりにくいのでもう少し工夫して欲しいところ。

悪いインターネット LANスキャナ

例によって車輪の再発明シリーズの1つ。
悪いインターネット」にLANスキャナを作ってみた。
LANだけじゃなくて普通にインターネットのネットワークもスキャンできる(できてしまう)けどあくまでもLANをスキャンする目的。

このツールはモダンブラウザ側でいろいろ塞がれたためもはや利用できず、公開中止です。

悪いインターネット LANスキャナ
悪いインターネット LANスキャナ

ブラウザからLAN内の機器をスキャンする際に非SSLでアクセスする(当然そうなる)ので、最近のブラウザのセキュリティ機能により混在コンテンツ(のスクリプト)は機能しない。そこで「安全でないスクリプトを読み込む」というのだけはやらないと(スキャン部分は)動かない。

あと、現在のバージョンではスキャン対象のネットワークの大きさを調べることができない(調べ方を知らない)ので/24決め打ちとなっている。ネットワークアドレスは/24前提でネットワーク部までを自動で取得し、スキャン対象はホスト部を0から255までスキャンする。ただし/24なら0と255にはホストはいないよねという処理にしている。
現在のバージョンの「ネットワークの大きさを自動的に調べて処理する」ことができないという部分は致命的にダメな部分なのでその内になんとかしたい。

スマートフォンのブラウザなどで「安全でないスクリプトを読み込む」ということができない場合は全く使えないのでゴメンなさい。

Up