#osc16ep (20161005) | 2016-10-05 11:46 |
piwik-fluentd (2.0.3) | 2015-11-12 15:22 |
Piwik patches for Japanese (20160813) | 2016-08-13 15:23 |
#osc16ep (20161005) | 2016-10-05 11:46 |
piwik-fluentd (2.0.3) | 2015-11-12 15:22 |
Piwik patches for Japanese (20160813) | 2016-08-13 15:23 |
Piwik の集計は、Web サイトに組みこんだ JavaScript (Piwik トラッカー)が Piwik に閲覧データを送ることで行われます。 もちろん Piwik であれば多角的に分析ができますが、Piwik トラッカーのデータを elasticsearch に入れ、kibana で可視化してみます。 くわしくはこちらへ
このプロジェクトが td-agent (fluentd)ありきなので、そもそものパッケージの作り方を書いてみました。 くわしくはこちらへ
初期バージョン、取り込むデフォルト method を get と post とし、その他は --method-include で指定するようにした。
オプション --static-extensions-include, --static-extensions-exclude, --download-extensions-include, --download-extensions-exclude を追加、静的ファイル、ダウンロードファイルの拡張子を自在に設定できるようになる。
console core:archive を実行するタイミングをログ 1 ファイル毎から、cron で全てのサイトのログを取り込んだあとに変更した。これにより、大幅にログ処理時間が短くなった。
同一ディレクトリに約 3000 のログファイルがあるときに、 make が異常終了する不具合を修正。カレントディレクトリに残せるログファイル数(任意で指定可能)を超えた時は古いものからサブディレクトリ(任意で指定可能)に転送するようにした。
最新バージョン。Piwik tracker のログを fluentd で取り込めるようにした。あわせて --import-time-start, --import-time-end オプションを追加、どこからどこまでの時間を import_logs.py で取り込むのか指定できるようにした。
以下順に設定してください。
過去のログを取り込んだときに、 console core:archive を実行したにもかかわらず、集計されない日が出てきたときは、 再集計の方法 で再集計を行います。
piwik-fluentd >= 1.2.0 (Piwik >= 2.11.1) で、上記にもあるように make が異常終了する不具合 を修正しています。
変更するファイルは、
加わるファイルは
です。これらのファイルを上書きするか、新規で作成します。 MOVECONDITIONS については アクセスログ解析自動化 を参照してください。
piwik-fluentd >= 2.2.0 (Piwik >= 2.14.1 ) で、Piwik tracker のログを fluentd で取り込めるようにしました。
変更されるファイルは、
加わるファイルは
です。これらのファイルを上書きするか、新規で作成します。 IMPORTRANGE については アクセスログ解析自動化 を参照してください。
実行結果として次のように表示されます。
[InvalidArgumentException] There are no commands defined in the "core" namespace.
Cron: InvalidArgumentException There are no commands defined in the "core" namespace. #7356 にスレッドが上がっていて、Piwik 2.8.3 では問題なかったのに 2.11.2 にしても解決しないとあります。
対処は、 /your_own_path/tmp/cache/tracker/ に書き込み権限を与えてください。 /your_own_path は Piwik をインストールしているディレクトリです(例: /var/www/piwik)。
多分
drwxr-x---. 2 apache apache 4096 3月 19 13:27 2015 tracker/となっているはずです。 これを、td-agent からも書き込めるように(もしくは ./console core:archive を実行するユーザー)権限を変更します。
sudo chmod g+rwxs /your_own_path/tmp/cache/tracker/そして /etc/groups の apache に td-agent (もしくは ./console core:archive を実行するユーザー)を加えます
略 apache:x:48:td-agent 略ヘルプメッセージがでれば成功です:
./console help core:archive Usage: core:archive [--url="..."] [--force-all-websites] [--force-all-periods[="..."]] [--force-timeout-for-periods[="..."]] [--skip-idsites[="..."]] [--force-idsites[="..."]] [--force-periods[="..."]] [--force-date-last-n="..."] [--force-date-range[="..."]] [--concurrent-requests-per-website[="..."]] [--disable-scheduled-tasks] [--accept-invalid-ssl-certificate] [--xhprof] Options: 略
2.12.0 でインストール時に警告を出すように変更されるようです。
/var/www/piwik に piwik がインストールされているとして、次のエラーがでてきます:
[yamachan@piwik bin]$ php /var/www/piwik/console core:archive --url=http://yourpiwik INFO CoreConsole[2015-05-19 07:38:29] --------------------------- INFO CoreConsole[2015-05-19 07:38:29] INIT INFO CoreConsole[2015-05-19 07:38:29] Piwik is installed at: http://yourpiwik/index.php INFO CoreConsole[2015-05-19 07:38:29] Running Piwik 2.12.1 as Super User ERROR CoreConsole[2015-05-19 07:38:30] Got invalid response from API request: http://yourpiwik/index.php?module=API&method=API.getDefaultMetricTranslations&format=original&serialize=1&trigger=archivephp. The response was empty. This usually means a server error. This solut ion to this error is generally to increase the value of 'memory_limit' in your php.ini file. Please check your Web server Error Log file for more details. ERROR CoreConsole[2015-05-19 07:38:30] The Piwik URL http://yourpiwik/index.php does not seem to be pointing to a Piwik server. Response was ''. ERROR CoreConsole[2015-05-19 07:38:30] The Piwik URL http://yourpiwik/index.php does not seem to be pointing to a Piwik server. Response was ''. [Exception] The Piwik URL http://yourpiwik/scratch/index.php does not seem to be pointing to a Piwik server. Response was ''. core:archive [--url="..."] [--force-all-websites] [--force-all-periods[="..."]] [--force-timeout-for-periods[="..."]] [--skip-idsites[="..."]] [--force-idsites[="..."]] [--force-periods[="..."]] [--force-date-last-n="..."] [--force-date-range[="..."]] [--concurrent-requests-per-website[= "..."]] [--disable-scheduled-tasks] [--accept-invalid-ssl-certificate] [--xhprof]
/var/www/piwik/tmp/logs/piwik.log のパーミッションを console core:archive を実行するユーザーで書き込みができるよにすれば解決します。