技術情報

レポートのオートアーカイブ設定方法

2015年02月05日 機能説明

※注 この記事は Piwik1.8~2.17のアーカイブ情報です

目次

1. Linux/Unix:自動的にレポートをアーカイブに保管するためのクローンタブの設定方法
2. Windows:Windows スケジューラを使用してオートアーカイブを設定する方法
3. CPanel:Cpanel を使用してクローンスクリプトを設定する方法
4. ウェブホストがクローンタスクをホストしていない場合のウェブクローン
5. 中~高トラフィックウェブサイトへの重要なヒント
 ・Matomo(Piwik) アーカイブへのブラウザトリガーを無効にし、 Matomo(Piwik) レポートのアップデートを1時間おきに制限する
 ・PHP メモリー制限を増やす
 ・さらなる高トラフィックサーバーへのヒント
6. Matomo(Piwik)アーカイブについての詳細情報
7. core:archiveコマンドへのヘルプ

あなたのサイト訪問数が、1日あたり数百以上の場合(素晴らしい!)データ処理に数分かかる場合があります。このデータ処理時間を避けるには、サーバーにクローンジョブをセットアップし、自動的にデータが毎時間処理されるように設定することをおすすめします。

自動的に Matomo(Piwik) アーカイブをトリガーするには、1時間おきに実行するスクリプトを設定してください。

以下では、クローンタブを使用した Linax/Unix システムのための設定方法、 Windows ユーザーのための Windows タスクスケジューラーを使用した設定方法、および Cpanel のようなツールのための設定方法の説明です。サーバーへのアクセスができない場合、ウェブクローンも併せて設定してください。

Linux/Unix:自動的にレポートをアーカイブに保管するためのクローンタブの設定方法

クローンタブは、Unix のようなサーバーでの時間ベースのスケジューリングサービスです。
クローンタブには、php-cli または php-cgi がインストールされている必要があります。
また、それを設定するには、サーバーへの SSH アクセスも必要になります。テキストエディターnanoを使用して、新しいクローンタブを作成しましょう:

nano /etc/cron.d/piwik-archive

次に、この行を追加して下さい:

MAILTO="youremail@example.com"
5 * * * * www-data /usr/bin/php5 /path/to/piwik/console core:archive --url=http://example.org/piwik/ > /home/example/piwik-archive.log

Matomo(Piwik) アーカイブスクリプトは、1時間おきに(5分経過で)実行されます。たいていの場合、1分以内に完了します。訪問数10,000 以上の、より大きなサイトでは、Matomo(Piwik) アーカイブは最大30分かかります。

パラメーターの内訳:

  • MAILTO=youremail@example.com : スクリプトの実行中にエラーがあった場合、スクリプト出力とエラーメッセージがあなたのメールアドレスに送信されます。
  • www-data は、クローンジョブを実行するユーザー(たいていの場合、ウェブサーバーユーザーまたは ”apache” )です。
  • /usr/bin/php5 は、あなたの PHP 実行可能ファイルへのパスで、使用しているサーバー構成と OS によって異なります。あなたの PHP5 実行可能ファイルへのパスを見つけるには、 linux シェルで、 “which php5″ または “which php” コマンドを実行します。パスが分からない場合、ウェブホストまたはシステム管理者にお問い合わせください。
  • --url=http://example.org/piwik/

これは、スクリプトで、唯一求められるパラメータです。これは、Matomo(Piwik) 基本 URL 例 http://analytics.example.org/ または ttp://example.org/piwik/ に設定する必要があります。

  • > /home/example/piwik-archive.log  は、スクリプトが出力を記述するパスです。最後の Matomo(Piwik) クローン出力テキストを記録したくない場合、このバスは、 /dev/null と入れ替えることができます。このスクリプト出力には、どのウェブサイトがアーカイブされたか、またそれぞれの日に各サイトの処理にかかった時間の長さなどの有益な情報が含まれます。
  • 2>& /home/example/piwik-archive-errors.log は、スクリプトがエラーメッセージを記述する任意のパスです。もしこれをクローンタブから削除すると、エラーメッセージがあなたのMAILTOアドレスに送信されます。これをクローンタブに記述すると、エラーはエラーログ詳細ファイルに記録されます。

‘linux cron’ ユーティリティの記述:クローンユーティリティは、2種類の異なるコンフィギュレーションファイル(システムクローンタブおよびユーザークローンタブ)を使用します。これら2種類の形式の違いは、第6フィールドのみです。

  • システムクローンタブ において、第6フィールドは、実行コマンドに対するユーザー名です。システムクローンタブは、任意のユーザーとしてコマンドを実行する機能を取得します。
  • ユーザークローンタブにおいて、第 6 フィールドは実行すべきコマンドです。すべてのコマンドは、クローンタブを作成したユーザーとして実行します。これは、重要なセキュリティ機能です。

クローンタブをユーザークローンタブとしてセットアップする場合、代わりに以下のように記述することができます:

5 * * * * /usr/bin/php5 /path/to/piwik/console core:archive --url=http://example.org/piwik/ > /dev/null

このクローンジョブは、日、週、月、年ごとのアーカイブプロセスを、1時間ごとに5分でトリガーします。また Matomo(Piwik) ダッシュボードを訪れるたび、データ処理が完了しているかどうかを確認します。

クローンコマンドのテスト:シェルのクローンタブユーザーとしてスクリプトを実行することにより、クローンタブが実際に作動していることを確認してください:

su www-data -c "/usr/bin/php5 /path/to/piwik/console core:archive --url=http://example.org/piwik/"

アーカイブされているウェブサイトのリストでスクリプト出力に目を通し、最後にサマリーでエラーがないことを確認してください。

Windows:Windows スケジューラを使用してオートアーカイブを設定する方法

Windows(XP、7、2003/2008 サーバー)でタスクスケジューラを開くには、すべてのプログラムをクリックし、コントロールパネルから、システムとセキュリティ>管理ツールをクリックし、タスクスケジューラをダブルクリックして下さい。

新規タスクを追加するには、’タスクの追加’をクリックし、タスク名を入力します。例) ” Matomo(Piwik) オートアーカイブ ”
次に、 ‘ トリガー ‘ タブをクリックし、新規トリガーを追加します。
日次および毎時で実行されるよう時間設定し、トリガーの作成を選択します。

タスクプロパティの”実行”入力フィールドで、アーカイブスクリプトを実行するには、たとえば以下のようにコマンドを入力する必要があります。

C:\xampp\php\php.exe "D:\www\piwik\console" core:archive --url=http://piwik.example.org/

Matomo(Piwik) アーカイブ・タスクスケジュールプロパティウィンドウのこのスクリーンショットも確認してください:

piwik-archive-scheduled-task-windows

CPanel:Cpanel を使用してクローンスクリプトを設定する方法

CPanel や、Webmin 、Plesk などのユーザーインターフェースを使用している場合、自動アーカイブの設定は非常に簡単です。
ここでは、CPanel のための設定方法を説明します。

1. Matomo(Piwik) インストールで、対象ドメインへの Cpanel にログインします。
2. クローンタブをクリック
3. 空メールのままにします
4. ‘数分’に00と入力し、残りはブランクのままにします
5. PHP5 実行可能ファイルへのパス、次に Matomo(Piwik) /console スクリプトへのパス、それから Matomo(Piwik) 基本 URL – url=piwik.example.org/  を持つパラメータへ貼り付けます。以下は、 Hostgator インストールの例です。(この例では、 ’yourcpanelsitename’ を、お好きな独自のドメイン CPanel ユーザー名に変更する必要があります。)

/usr/local/bin/php -f /home/yourcpanelsitename/public_html/piwik/console core:archive --url=example.org/piwik/ > /home/example/piwik-archive-output.log


’yourcpanelsitename’は、あなたのドメインの最初の8文字を意味します。

6. “新規クローンタブを追加”をクリックします

Matomo(Piwik) は、今後自動的にあなたのレポートを処理するようになります。

ウェブホストがクローンタスクをホストしていない場合のウェブクローン

もし可能であれば、クローンまたはタスクスケジュールを実行することを強くおすすめします。
しかしながら、いくつかの共有ホストや特有のサーバー構成では、クローンやタスクスケジュールの実行が容易でなかったり、実行できない場合があります。

ウェブホストがあなたにウェブクローンの設定を求める場合もあります。それは、ホストが予定された時間に自動的に訪問する単純な URL です。
あなたのウェブホストが、あなたにウェブクローンの作成を求める場合、それらのホスティング画面で以下のURL を入力してください。

http://your-server.org/path/to/piwik/misc/cron/archive.php?token_auth=XYZ

XYZ は、スーパーユーザーの32文字 token_auth に変更してください。なお token_auth は、Matomo(Piwik) にスーパーユーザーとしてログイン後、上部の API リンクをクリックし、表示されたページを確認してください。

ブラウザに URL を貼り付けて、ウェブクローンをテストします。処理の完了まで数分待機し、出力を確認します。

少なくとも1時間に1回は、ウェブクローンをトリガーする必要があります。このページを自動的に1時間おきにリクエストするには、‘Website Monitoring’サービス(無料または有料)の利用をおすすめします。

中~高トラフィックウェブサイトへの重要なヒント


・Matomo(Piwik) アーカイブへのブラウザトリガーの無効化と、Matomo(Piwik) レポートを1時間毎の更新に制限する

これまで説明してきたように、自動アーカイブスクリプトの設定が完了したら、ユーザーインターフェイスでリクエストがアーカイブをトリガーしないように設定することができます。しかしその代わりに事前アーカイブレポートを読む必要があります。スーパーユーザーとしてログインし、設定 > 一般設定をクリックし、以下を選択してください。

  • レポートがブラウザから閲覧された場合、Matomo(Piwik) アーカイブのトリガーを許可する
  • 本日のレポートは、最大3600秒おきに処理されます

変更を保存するには、保存をクリックします。これで、アーカイブクローンのセットアップが完了し、これら2つの設定が変更されました。Matomo(Piwik) でリアルタイムレポートに近い速さの事前処理をお使いいただけます。

generalsettings

今日の分析は、1時間おきに処理されるため、ほとんどリアルタイムに近い分析を確認することができます。


・PHP メモリー制限を増やす

もし以下のエラーを受信した場合:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate X bytes)

PHP に割り当てられたメモリーを増やす必要があります。Php.ini ファイルをアップデートし、ファイルのメモリー制限を増やして下さい。

/etc/php5/cli/php.ini

および / または

/etc/php5/apache/php.ini


/etc/php5/apache/php.ini

Matomo(Piwik) に、ウェブ解析レポートの処理に十分なメモリーを与えるには、メモリー制限を512M に増やしてください:

memory_limit = 512M


・さらなる高トラフィックサーバーへのヒント

Matomo(Piwik) を利用すれば、数百から数千のウェブサイトで 1 か月あたり数百万の追跡が可能です。
これまで説明した通り、クローンアーカイブの設定が完了した後、さらに Matomo(Piwik) パフォーマンスを改善するための重要かつ簡単なステップがあります。

詳細は、高トラフィックサーバー FAQ をご確認ください。

Matomo(Piwik) アーカイブについての詳細情報

  • 1日あたり数回アーカイブを実行する場合、当日を含む、特定の日付範囲(今週、今月など)に対するすべてのレポートと、本日のレポートを再アーカイブします。
  • Matomo(Piwik) データベースサイズは、時間とともに大きくなります。これは正常なことです。Matomo(Piwik) は、不完全な期間(たとえば週の半ばに1週間分をアーカイブした場合など)に処理されたアーカイブを削除しますが、ほかのアーカイブは削除しません。つまり MySQL テーブルに、毎日、毎週、毎月、毎年のアーカイブが保持されます。これは、非常に速い UI レスポンスとデータアクセスを確実なものにしますが、同時にディスク容量を必要とします。
  • 本日のレポートに対する Matomo(Piwik) アーカイブは、1日に複数回アーカイブを実行しても、数週間、数か月、数年ごとのアーカイブのメモリー必要容量が減ることはありません。Matomo(Piwik) は、その日のレポートを処理するために、1日中のすべてのログを読みます。
  • デフォルトでは、Matomo(Piwik) アーカイブのためにブラウザトリガーを無効にするとき、それは、あなたが期待しているアーカイブのトリガーを完全に無効にします。ただし、カスタムセグメントが利用されている場合、Matomo(Piwik) を閲覧しているユーザーはなおアーカイブの処理をトリガーすることが可能です。確実に Matomo(Piwik) のユーザーがいかなるデータ処理もトリガーしないようにするには、あなたのconfig.ini.php ファイルに、次の通り以下の[General]カテゴリーの設定を追加する必要があります:
; disable browser trigger archiving for all requests (even those with a segment)
browser_archiving_disabled_enforce = 1

Core:archive コマンドのヘルプ

以下は、このコマンドのためのヘルプ出力です:

$ ./console help core:archive
Usage:
    core:archive [--url="..."] [--force-all-websites] [--force-all-periods[="..."]] [--force-timeout-for-periods[="..."]] [--force-date-last-n="..."] [--force-idsites[="..."]] [--skip-idsites[="..."]] [--disable-scheduled-tasks] [--xhprof] [--accept-invalid-ssl-certificate]

Options:
--url                             Mandatory option as an alternative to '--piwik-domain'. Must be set to the Matomo(Piwik) base URL.
                                  For example: --url=http://analytics.example.org/ or --url=https://example.org/piwik/
--force-all-websites              If specified, the script will trigger archiving on all websites.
                                  Use with --force-all-periods=[seconds] to also process those websites that had visits in the last [seconds] seconds.
--force-all-periods               Limits archiving to websites with some traffic in the last [seconds] seconds.
                                  For example --force-all-periods=86400 will archive websites that had visits in the last 24 hours.
                                  If [seconds] is not specified, all websites with visits in the last 604800 seconds (7 days) will be archived.
--force-timeout-for-periods       The current week/ current month/ current year will be processed at most every [seconds].
                                  If not specified, defaults to 3600.
--force-date-last-n               This script calls the API with period=lastN. You can force the N in lastN by specifying this value.
--force-idsites                   If specified, archiving will be processed only for these Sites Ids (comma separated)
--skip-idsites                    If specified, archiving will be skipped for these websites (in case these website ids would have been archived).
--disable-scheduled-tasks         Skips executing Scheduled tasks (sending scheduled reports, db optimization, etc.).
--xhprof                          Enables XHProf profiler for this archive.php run. Requires XHPRof (see tests/README.xhprof.md).
--accept-invalid-ssl-certificate  It is _NOT_ recommended to use this argument. Instead, you should use a valid SSL certificate!
                                  It can be useful if you specified --url=https://... or if you are using Matomo(Piwik) with force_ssl=1
--help (-h)                       Display this help message.


※この記事はMatomo(Piwik)公式サイト2014年10月1日時点の内容です
※掲載内容が古くなっている場合もありますので最新情報はMatomo(Piwik)公式サイトをご覧ください。

オリジナルの記事はこちら
http://matomo.org/docs/setup-auto-archiving/