28
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Настройка автоматической архивации отчетов Matomo на сервере

Время чтения 11 минут
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
28
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

В прошлой статье я закончил полноценную настройку сервера сбора событий и тегов Matomo. Кроме того, я дал наглядную методику расчета нагрузки, исходя из посещаемости ресурса, который вы планируете отслеживать. Сегодняшняя статья из разряда оптимизационных, она нужна только для профессионалов, которые тонко настраивают свои серверы для отслеживания высоконагруженных ресурсов. Важно сразу обозначить границу: эта настройка почти не влияет на маркетологов и аналитиков в интерфейсе Matomo, но радикально воздействует на сервер, базу данных и разработчиков, которые поддерживают всю эту инфраструктуру. По сути, мы переводим Matomo из реактивного режима («пользователь зашел — система начала считать») в предсказуемый серверный процесс с контролируемой нагрузкой.

На связи Влад Лукашенко, я руководитель отдела SEO и веб-аналитики компании «Тензор» (разработчик платформы saby.ru). Итак, приступим к тонкому тюнингу.

Настройка автоматической архивации отчетов Matomo на сервере

Matomo в On-Premise-формате — это уже не просто система аналитики, а полноценный бэкенд-сервис со своей нагрузкой, очередями, вычислениями и узкими местами. Как только вы выходите за рамки «маленького сайта на пару тысяч визитов», любые неточные настройки начинают проявляться в виде медленных отчетов, тайм-аутов, скачков CPU и странных ошибок в интерфейсе. Автоматическая архивация — один из ключевых элементов, который отличает «рабочую» установку Matomo от по-настоящему промышленной.

Если ваш сайт посещают сотни или тысячи человек в день, обработка данных Matomo в реальном времени может занимать несколько минут. Чтобы избежать долгого ожидания при просмотре отчетов, рекомендую настроить автоматическую архивацию данных через cron или планировщик задач на сервере.

Настройка автоматической архивации через cron (Linux/Unix)

Cron — это планировщик задач на Unix-подобных системах. Для работы требуется установленный php-cli или php-cgi и доступ по SSH к серверу.

Если кратко: без автоматической архивации Matomo каждый раз считает отчеты «на лету». Это значит, что тяжелые SQL-запросы, агрегации логов, расчет сегментов и периодов запускаются именно в момент открытия отчета. На высоконагруженных проектах это приводит к эффекту домино: аналитик обновляет дашборд → сервер думает → интерфейс тормозит → отчет обновляют еще раз → серверу становится еще хуже. Cron-архивация этот порочный круг ломает.

Шаги

1. Создайте новый файл crontab:

nano /etc/cron.d/matomo-archive

2. Добавьте следующие строки (измените на свои пути и адрес):


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

 

Пояснения:

  • MAILTO — email, на который будут отправляться ошибки выполнения.
  • www-data — пользователь веб-сервера, от имени которого запускается cron. Убедитесь, что это совпадает с пользователем веб-сервера.
  • /usr/bin/php — путь к исполняемому PHP (which php).
  • /path/to/matomo/console — путь к консольному скрипту Matomo на сервере.
  • --url=http://example.org/matomo/ — базовый URL вашей установки Matomo.
  • > /home/example/matomo-archive.log — лог выполнения архивации.
  • 2>/home/example/matomo-archive-errors.log — лог ошибок (опционально).

Совет: храните логи вне публичной директории веб-сервера, чтобы никто не мог их открыть через браузер.

Отключение архивации через браузер

По умолчанию Matomo обрабатывает отчеты при просмотре в браузере. Для ускорения работы и уменьшения нагрузки на сервер это нужно отключить.

В файле config/config.ini.php добавьте:

[General]
browser_archiving_disabled_enforce = 1

После этого Matomo будет использовать только заранее обработанные отчеты.

3. Тестирование cron-команды.

Убедитесь, что команда работает от имени пользователя cron:

su www-data -s /bin/bash -c "/usr/bin/php /path/to/matomo/console core:archive --url=http://example.org/matomo/"

Вы должны увидеть вывод, в котором указаны сайты, которые архивируются, и итоговое сообщение об отсутствии ошибок.

Настройка нескольких процессов архивации

Для сайтов с высоким трафиком можно запускать несколько архиваций параллельно, чтобы ускорить процесс. Например:


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

 

Или через цикл:


CONCURRENT_ARCHIVERS=2
for i in $(seq 1 $CONCURRENT_ARCHIVERS)
do
  (sleep $i && /path/to/matomo/console core:archive &)
done

 

Рекомендуется не запускать несколько процессов одновременно, а смещать старт на несколько секунд или минут.

Автоматическая архивация на Windows

Если вы используете Windows, настройка происходит через «Планировщик задач». Подробная инструкция доступна в официальном FAQ Matomo.

Настройка через панели управления (CPanel, Plesk)

CPanel:

  1. Войдите в CPanel → Cron Jobs.
  2. Вставьте путь к PHP, путь к console Matomo и параметр –url.
  3. Пример для Hostgator:

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

Plesk/Webmin: аналогично, настройка через интерфейс Cron.

Web Cron для хостингов без поддержки cron

Если cron недоступен, можно использовать Web Cron:

https://matomo.your-server.example/path/to/matomo/misc/cron/archive.php?token_auth=XYZ

XYZ — токен суперпользователя (32 символа), который можно получить в Matomo: «Администрирование» → «Личный кабинет» → «Безопасность» → «Создать Token_auth».

Рекомендуется отправлять токен через POST для безопасности.

Настройки для сайтов с большим трафиком

Отключите триггеры архивации через браузер: «Администрирование» → «Система» → «Общие настройки»:

  • Archive reports when viewed from the browser: No.
  • Archive reports at most every X seconds: 3600.

Увеличьте memory_limit в php.ini до 512M — 8G в зависимости от трафика. Настройте cron с разной частотой для сайтов с высоким и низким трафиком.

Мониторинг и логирование

Проверяйте логи архивации регулярно (ежедневно или еженедельно).

По умолчанию логи находятся в tmp/logs/matomo.log.

Можно указать свой путь в config.ini.php:

[log]
logger_file_path = /path/to/your/logs/matomo.log

Пояснение команд core:archive

Основная команда:

/path/to/matomo/console core:archive --url=http://example.org/matomo/

Ключевые параметры:

  • --skip-idsites — пропустить указанные сайты;
  • --force-idsites — обрабатывать только указанные сайты;
  • --concurrent-archivers — запуск нескольких архиваторов параллельно;
  • --max-websites-to-process — ограничение сайтов за один проход;
  • --disable-scheduled-tasks — пропустить плановые задачи Matomo;
  • --php-cli-options — передача опций PHP, например -d memory_limit=8G.

Подробный список всех параметров и их описания доступны через команду core:archive –help.

Результат

После настройки отчеты Matomo будут автоматически обновляться каждый час. Пользователи интерфейса не будут инициировать архивацию вручную. UI Matomo станет быстрым даже при высоком трафике. Администратор получит контроль над логами и ресурсами сервера. На практике это означает, что Matomo перестает быть черным ящиком, который внезапно нагружает сервер в рабочее время. Архивация становится фоновым, предсказуемым процессом: с понятным расписанием, логами, точками отказа и возможностью масштабирования. Это особенно критично для проектов, где Matomo Tag Manager активно используется для серверных событий, ремаркетинга и сложных цепочек тегов.

Для разработчиков эта оптимизация — одна из самых благодатных. Во-первых, резко снижается количество «плавающих» багов вида «то грузится, то нет». Во-вторых, становится проще отлаживать инфраструктуру: если отчеты считаются по cron, значит, любые тормоза уже не в аналитике, а во фронте, сети или базе. В-третьих, появляется возможность спокойно развивать Matomo Tag Manager: добавлять новые теги, триггеры и события, не опасаясь, что каждый новый скрипт внезапно уронит интерфейс аналитики.

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники