環境

  • Matomo 5.7.1
  • PHP-FPM8.3
  • Ubuntu 24.04

セルフホストでMatomoを用いている場合のcron処理を行ったときのメモです。

なぜcron処理が必要なのか?

Matomoには、データを処理する2つの方法があります。

  • リアルタイム集計(デフォルト): 管理画面を開いた瞬間に、溜まっている生データを計算してグラフを表示します。アクセスが少ないうちは良いですが、アクセスが増えると表示が非常に重くなります。
  • cronによる事前集計(推奨): 「5分に1回」などの頻度で、裏側でこっそり計算を済ませておきます。管理画面を開いたときは、計算済みの結果を表示するだけなので、動作が非常にサクサクになります。

さっくりとした手順

  1. crontabを編集します。
  2. Matomoの管理画面で設定を行います。

Crontab編集

  • crontabを開く
sudo crontab -u www-data -e

Matomoを実行しているユーザー(通常は www-data)として編集します。

  • 実行コマンドを追記する

ファイルの末尾に以下の1行を追加します(パスはご自身の環境に合わせて調整してください)。

5 * * * * /usr/bin/php /var/www/html/matomo/console core:archive --url=https://your-matomo-domain.com/ > /dev/null

解説: > 5: 毎時5分に実行するという意味。
/usr/bin/php: PHP 8.3の実行パス。
core:archive: これが「溜まったデータを集計しろ」というMatomo専用の命令です。

Matomo管理画面での設定変更

cronを設定しただけでは不十分です。Matomo側に「自分で集計するから、画面を開いたときに集計しなくていいよ」と教える必要があります。

  1. Matomoにログインし、「設定(歯車アイコン)」をクリックします。
  2. 左メニューの 「システム」 > 「一般設定」 を開きます。
  3. 「アーカイブの設定」 セクションを確認します。
    1. 「ブラウザでレポートを表示するときにアーカイブをトリガーする」を 「いいえ」 に変更。
  4. 下部の「保存」ボタンをクリックします。

注意点

  • PHP 8.3のメモリ制限:
    • 大規模なデータを集計する場合、CLI(コマンドライン)用の php.inimemory_limit を多めに(512Mや1Gなど)設定しておくと安心です。
  • ログの確認:
    • 最初は > /dev/null を書かずに実行して、エラーが出ないか確認することをおすすめします。

その他の設定に関しては改めて述べます。