さくらレンタルサーバで Matomo に Apache ログを食わせようとした結果(その2完)

前回、さくらレンタルサーバにて Matomo に Apache ログを食わせようとして撃沈した。そして、今回はそのリベンジ。その後、Python は無事 2.7.15 にすることができ、準備完了。ということで、やってみる。

インポートスクリプト

まず、インポートスクリプトのディレクトリまで降りる。パスを与えてあげれば降りなくても良いのだけど。ところどころセンシティブな箇所は  { } にしている。

そして実行。

ぐはぁ。urlopen error Matomo returned an invalid response: とな。SSL のエラーが出ないということで一歩前進。このメッセージで検索かけて調べる。このページ(https://github.com/matomo-org/matomo/issues/6885#issuecomment-67884327)によると、--token-auth を指定しろとのこと。API トークンは、Matomo にログインし、左上のメニューから、Personal -> Settings -> API Authentication Token で見つけることができた。そして再度打ち込む。

しかし、同じエラーがでる。ここでエラーメッセージの意味を考える。”an invalid response” ということはどこかにアクセスして、レスポンスに不備があるということ。しかもトークンを与えるということは何か認証を行っている。アクセス認証している・・・ということは、オプションで指定したサイトにアクセスしてるのかな、という推測が立ったところで、上記、{site url} をドメインルートにしていたのををMatomo のインストール場所、https://{domain}/analytics に変更して再度実行。

すると、

来たーーーーーー!!ちなみに --token-auth は無くても良いみたいで、--url がきちんと指定されている必要がある模様。

In order for your logs to be processed by Matomo, you may need to run the following command:
./console core:archive –force-all-websites –force-all-periods=315576000 –force-date-last-n=1000 –url=’https://{domain}/analytics’

このメッセージの意図するところが気になる。完全にデータを読めてないってことなのかな?ま、これは後回し。

7 distinct hostnames did not match any existing site:

で、ログ内に記載されているホストで Matomo 内で追加していないサイトは無視され、その旨を警告してくれている。サブドメインやカスタムドメインのものが該当している。

ということで、Matomo にログインし、それらのサイトを追加。

こういう感じが、サイトを追加して、

こんな感じになって、再度ログを食わせる。一日分だけど。するとこんな感じなった。

Visitors -> Locations とか見ると、なかなかいい感じで表示してくれる。Google が使ってたというだけあって、なかなか優秀な印象。

さくらサーバの場合

さくらサーバの場合、前日以前の Apache ログは .gz で圧縮されて $HOME/log に格納される。コントロールパネルの設定によっては最長2年分保存される。で、.gz ファイルもインポートしてくれるのか試してみた。

結果、

ときちんと解析してくれる。ということは2年分放り込むスクリプトを書く必要がある。

放り込みスクリプト

ということで、簡単な Bash スクリプトを書いた。これは、$HOME/log内のaccess_log_{date}.gz ファイルを順に周っていって、一つづつインポートスクリプトに渡してあげる、というもの。スクリプト内の ImporterPythonURL の値は{domain}などで伏せているけど、もし使うのであれば、編集して自分のものを設定する必要がある。

sakura_apach_log_feeder_to_matomo.sh

これを走らせると、2年分のログをインポートするわけで、かなり時間がかかる。夜通し走らせたところ、まだやってて、18時間ほどかかった。

データベースの肥大化

途中、データベースのサイズが肥大化してきた。さくらレンタルサーバではいつからか、データベースの容量に制限がかかっている。スタンダートでは1.5Gまで。以前超過していて、全データベースをまっさらに消された事がある。これについては、いつか別に投稿したい。上の画像がさくらサーバのコントロールパネル -> アプリケーションの設定 -> データベスの設定 のスクリーン。1Gを超えている。

ということで、Matomo にログインし、右上のギアアイコン -> System -> General settings -> Delete old visitor logs and reports から、Schedule old data deletion に降りて行き、Purge DB Now をクリック。警告がでるので、Save を押し、再度クリックすると、また警告がでて、Yes を押す。これで Purging Data… と実行中になる。終わるまで数分要する。たまに全然削れない時があるので、その場合は繰り返す必要がある。

使用感

なかなかいい感じ。ただ、重い。頻繁にデータがロードできませんでしたという旨の赤いメッセージがでる。ムキになってクリックしまくると、Internal Server Error が出る。マシンのリソースを食うのかな。Google Analytics も重いけど、同じくらい重い。

ただ、さくらサーバに標準搭載されている Webalize、また AWStats よりかは遥かに詳しいデータが分かる。それらは、サブドメインなどをきちんと区別してくれないが、Matomo はサイトを追加する項目があり、そこで仕分けてくれる。ちょっと調べたところ、Bot のアクセスをフィルタリングできる機能がなく、オーガニックなアクセスとごちゃまぜになるのが難点。ユーザーエージェントのブラックリストの設定をするも、一度インポートした情報は除外されないようだ。

ただ、マップで表示してくれたり、1ユーザーの行動をわかりやすくしてくれたり、というのはなかなか良い。また、画像を貼る形式のトラッキングもサポートされている。これを使えば、GitHubなどの完全な外部サイトのドキュメンテーションのアクセス解析などもできそう。詳しい使用感、詳細設定についてはレビュー記事を後に書こうと思う。

Leave a Reply

Your email address will not be published. Required fields are marked *