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

Устанавливаем Matomo Tag Manager на сервере LAMP

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

В 2024 году Роскомнадзор официально заявил, что системы веб-аналитики в ряде случаев собирают персональные данные пользователей и могут передавать их за рубеж. В центре внимания оказался, прежде всего, Google Analytics: он действительно отправляет данные на зарубежные серверы. Однако необходимость в аналитике никуда не делась: бизнес по-прежнему нуждается в метриках трафика и поведении посетителей. Большая часть российских компаний быстро мигрировала на отечественную Метрику. Она закрывает базовые потребности: отчеты, события, цели, воронки и пользовательские сегменты. Возможно, где-то функционала меньше, чем у GA, но для примерно 90% задач хватает с лихвой.

А вот с тег-менеджером всё сложнее. Если потеря GA была неприятной, но решаемой заменой, то уход Google Tag Manager принес куда больше проблем. Дело в том, что GTM — это не просто «надстройка» для аналитики: для многих компаний через него проходят пиксели ВКонтакте, скрипты чатов, ремаркетинговые инструменты, A/B-тесты и прочие трекеры. Проще говоря, GTM — это центр управления цифровыми интеграциями.

Подпадает ли GTM под регулирование? По логике РКН — да: код загружается с серверов Google за границей, а что именно выполняется «под капотом», проверить внешне невозможно. Хотя сам по себе GTM не обязан собирать персональные данные, он выступает посредником, через которого такие данные могут пройти.

Одной из открытых альтернатив GTM является Matomo Tag Manager. По сути, это та же идея контейнерного подхода: один скрипт на сайте — и дальше вся настройка производится в визуальном интерфейсе. Вставил контейнер один раз — управляешь всеми тегами через админку. В этой статье я покажу, как пошагово развернуть Matomo Tag Manager на собственном сервере и настроить его для работы.

Устанавливаем Matomo Tag Manager на сервере LAMP

Требования к серверу

Matomo — штука достаточно гибкая, но к окружению относится с уважением. Без нужных модулей PHP и свежей базы данных установка попросту не пройдет.

PHP

Рекомендуемая версия: PHP 8.1 или выше. (Поддерживаются версии от 7.4, но если вы не коллекционер старого софта — лучше обновитесь.)

Обязательные расширения PHP:

  • pdo_mysql — для подключения к базе данных.
  • mbstring — для корректной работы со строками (включая UTF-8).
  • curl — для сетевых запросов.
  • gd — для построения графиков и визуализаций.
  • json — обязательный модуль для API.
  • zlib — поддержка сжатия данных.
  • xml — для работы с отчетами и импортом данных.

MySQL/MariaDB

Рекомендуемые версии:

  • MySQL ≥ 5.5.
  • MariaDB ≥ 10.0.

Matomo использует стандартный движок InnoDB и хранит миллионы строк, так что не экономьте на версии.

Веб-сервер

Matomo прекрасно работает как с Apache, так и с Nginx. Для Apache достаточно стандартного mod_rewrite. Для Nginx нужно будет добавить блок с поддержкой index.php и try_files.

HTTPS

Без HTTPS Matomo не позволит работать со многими современными браузерами и API. Используйте Let’s Encrypt — бесплатный сертификат ставится в пару команд, а Matomo будет спокоен за передачу данных.

Рекомендуемые параметры для производительности

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

PHP memory_limit

Минимум: 256M

Рекомендуется: 512M или больше.
Matomo активно генерирует отчеты, поэтому ограничение памяти напрямую влияет на скорость работы.

max_execution_time

Установите 300 секунд или больше, чтобы длинные операции (архивация, импорт данных) не обрывались.

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

post_max_size и upload_max_filesize — не менее 20M (нужно для импорта).

max_input_vars — не менее 5000.

При большом трафике настройте OPcache для PHP, чтобы не пересобирать код при каждом запросе.

Пример конфигурации LAMP для Matomo

Ниже базовый пример, на котором Matomo работает стабильно для сайтов до 500 тыс. хитов в месяц.


# Пример: Ubuntu 22.04 LTS
sudo apt update
sudo apt install apache2 mariadb-server php php-cli php-mysql php-curl php-gd php-xml php-mbstring php-zip php-bz2 unzip

# Проверка версии PHP
php -v

# Проверка работы Apache
sudo systemctl status apache2

# Проверка MySQL
sudo mysql -e "SELECT VERSION();"

 

Ниже расскажу, как рассчитать, сколько необходимо ресурсов под ваш сервер.

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

Подготовка к установке Matomo

Перед установкой важно правильно подготовить сервер и окружение. Если пропустить этот этап, Matomo может установиться, но начнет подтормаживать, ругаться на права или не будет создавать отчеты. Так что лучше уделить 15 минут — и потом не чинить то, что не сломалось.

Настройка домена и HTTPS

Для работы Matomo нужен отдельный домен или поддомен — например: analytics.yoursite.ru.

Добавляем DNS-запись

Создайте A-запись (или CNAME, если используете внешние прокси) в панели управления доменом, указывающую на IP вашего сервера.

Настраиваем виртуальный хост

Если вы используете Apache, добавьте новый конфиг в /etc/apache2/sites-available/matomo.conf.


<VirtualHost *:80>
    ServerName analytics.yoursite.ru
    DocumentRoot /var/www/matomo
    <Directory /var/www/matomo>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
    CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>

 

Далее активируйте сайт и перезапустите Apache.

Настраиваем HTTPS

Используем бесплатный сертификат Let’s Encrypt через certbot.

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d analytics.yoursite.ru

Сертификат обновляется автоматически, так что можно просто добавить задачу в cron.

Создание базы данных и пользователя MySQL

Matomo хранит всё — от данных о визитах до настроек отчетов — в базе данных MySQL или MariaDB. Для чистоты и безопасности лучше создать отдельную базу и пользователя только под Matomo.


CREATE DATABASE matomo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'matomo_user'@'localhost' IDENTIFIED BY 'сложный_пароль';
GRANT ALL PRIVILEGES ON matomo.* TO 'matomo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

 

Совет: не используйте root-пользователя в установке Matomo — это распространенная ошибка новичков.

И да, пароль должен быть не 1234, а что-то вроде Y$k2#qpR9nA3.

Настройка прав доступа к директории Matomo

Система должна иметь доступ для чтения и записи к директории /var/www/matomo. Это важно, чтобы Matomo мог сохранять кеш, загружать плагины и обновления.

Создаем директорию и настраиваем права:


sudo mkdir -p /var/www/matomo
sudo chown -R www-data:www-data /var/www/matomo
sudo chmod -R 755 /var/www/matomo

 

Подготовка FTP или SSH-доступа

Для загрузки файлов Matomo на сервер есть два варианта: FTP (для shared-хостинга) или SSH (для VPS / выделенного сервера).

Вариант 1. FTP

  1. Подключитесь через FileZilla или другой клиент.
  2. Перейдите в директорию /var/www/matomo (или /public_html/matomo — в зависимости от хостинга).
  3. Загрузите архив Matomo, распакуйте его прямо в корне каталога.

Вариант 2. SSH (рекомендуется)

Если у вас есть SSH-доступ, установка будет быстрее и безопаснее:


cd /var/www
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
rm matomo.zip
chown -R www-data:www-data matomo

 

Установка и первоначальная настройка Matomo

Когда сервер готов, домен работает, а база данных создана, самое время запустить установку. Всё предельно просто: загрузить файлы, открыть установщик и пройти мастера за 5–10 минут. Дальше Matomo всё сделает сам.

Официальный способ установки — скачать актуальную сборку Matomo с сайта:

https://builds.matomo.org/

Залейте ее на сервер в директорию файлов сайта на домене.

Мастер установки Matomo

Теперь можно перейти к самому приятному — установке через веб-интерфейс. Откройте в браузере: https://analytics.yoursite.ru.

Вы попадете на экран приветствия мастера установки Matomo. Интерфейс сам проверит окружение и проведет вас по шагам.

Проверка окружения

Matomo проверит:

  • версию PHP и наличие необходимых расширений;
  • доступ к базе данных;
  • права на запись в папки tmp/, config/ и plugins/.

Если всё зеленое — отлично. Если что-то красное, рядом будет подсказка (например, Missing extension mbstring или Config directory not writable).

Подключение базы данных

В этом шаге вводим данные, которые вы создали ранее:

  • Server: localhost
  • Login: matomo_user
  • Password: ваш пароль
  • Database name: matomo
  • Table prefix: можно оставить matomo_

После успешного подключения Matomo создаст таблицы и выведет сообщение об успехе.

Создание администратора

Теперь создаем учетную запись для входа в панель Matomo:

  • Username: admin
  • Password: (надежный!)
  • Email: ваш рабочий адрес
  • Newsletter: можно отключить, если не хотите рассылку

Настройка первого сайта

Matomo спросит, какие данные отслеживать:

  • Website name: например, Мой сайт
  • Website URL: https://yoursite.ru
  • Timezone: Europe/Moscow
  • Ecommerce: включите, если планируете отслеживать покупки

Генерация JS-кода отслеживания

Matomo создаст уникальный JavaScript-код для отслеживания визитов.


<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.yoursite.ru/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '1']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

 

Этот код нужно вставить перед тегом </head> на всех страницах сайта (или добавить через Matomo Tag Manager — об этом дальше).

Проверка работы Matomo

После завершения установки вы попадете на экран входа в панель управления:

https://analytics.yoursite.ru/index.php

Введите логин и пароль администратора. Если всё прошло успешно, откроется дашборд Matomo — с первыми пустыми отчетами и интерфейсом, похожим на Google Analytics.

Расчет нагрузки на сервер

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

Факторы, влияющие на нагрузку

Перед тем как настраивать оптимизацию, разберемся, откуда вообще берется нагрузка.

Количество хитов в сутки

  • Основной показатель — количество хитов (hits), то есть действий, которые Matomo записывает: просмотры страниц, события, транзакции и т. д.
  • Чем больше хитов, тем выше нагрузка на PHP, MySQL и диск.

Пример:

  • Малый сайт с 10 000 хитов/сутки — нагрузка минимальна, хватает 1 ГБ RAM.
  • Средний сайт с 100 000 хитов/сутки — потребуется 2–4 ГБ RAM.
  • Крупный проект с 1 млн+ хитов/сутки — лучше сразу планировать выделенный сервер или масштабируемый VPS.

Количество трекаемых сайтов

Matomo умеет собирать статистику сразу по нескольким доменам или клиентам. Каждый сайт добавляет:

  • отдельные таблицы в базе данных (например, matomo_log_visit, matomo_log_link_visit_action и др.);
  • отдельные задачи архивации и обработки.

Если у вас, например, 10 сайтов, то cron-задачи будут выполняться в 10 раз дольше.

Частота отчетов и задач cron

Matomo использует фоновую задачу core:archive, которая:

  • пересчитывает отчеты (по дням, неделям, месяцам);
  • обновляет сегменты и дашборды;
  • чистит старые логи.

По умолчанию cron запускается каждые час-два, но, если трафик большой, задача может висеть в процессе дольше, чем выполняется следующий запуск.

Активные плагины

Каждый установленный плагин — это дополнительные SQL-запросы и операции при каждом хите и при архивации. Особенно ресурсоемкие:

  • Matomo Tag Manager — добавляет обработку событий в реальном времени.
  • Heatmap & Session Recording — сохраняет большое количество мелких данных.
  • Funnels, A/B Testing — требуют сложных агрегаций при отчетах.

Расчет примерной нагрузки

Чтобы ориентироваться, можно использовать приблизительную оценку зависимости нагрузки от трафика и плагинов:

Важно: на размер базы влияет не только количество хитов, но и длительность хранения логов (по умолчанию 180 дней).

Как оценить нагрузку при росте трафика

  1. Снимать метрики: использовать htop или top для мониторинга CPU и памяти.
  2. Анализировать MySQL: через SHOW PROCESSLIST; или Matomo System Check.
  3. Мониторить cron-задачи: если архивирование занимает >60% времени между запусками — пора масштабироваться.
  4. Проверить рост таблиц:

SELECT table_name, ROUND(data_length/1024/1024, 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = 'matomo';

 

Это поможет понять, какие таблицы «раздуваются» быстрее всего.

Оптимизация производительности

Теперь разберемся, как держать Matomo «в форме».

Настройка cron для архивации

Matomo не должен пересчитывать отчеты «на лету». Создайте задачу cron для регулярной архивации:

sudo -u www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://your-domain.ru > /var/log/matomo-archive.log

Рекомендуемый интервал: каждые 1–2 часа. Так отчеты будут всегда готовы, а пользователи не будут ждать пересчета при открытии панели.

Использование Redis или Memcached

  • Redis помогает кешировать часто используемые запросы и сессии пользователей.
  • Настраивается в файле config/config.ini.php:

[Cache]
backend = redis
host = 127.0.0.1
port = 6379

 

Настройка автопрокачки базы (rotate logs, cleanup)

Со временем таблицы логов (matomo_log_visit, matomo_log_link_visit_action) разрастаются. Используйте встроенные команды очистки:

php console core:run-scheduled-tasks

или настройте политику в разделе Privacy → Data Retention. Обычно достаточно хранить данные за последние 6–12 месяцев.

Кеширование на уровне веб-сервера

  • Для Apache включить mod_expires и mod_deflate.
  • Для Nginx добавить:

location ~* .(?:css|js|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

 

Можно добавить Cloudflare или другой CDN для отдачи статики.

Заключение

Теперь, когда аналитика запущена, самое время перейти от инфраструктуры к данным и действиям. Следующий шаг — научить Matomo понимать, что важно именно для вашего бизнеса.

Вот что можно (и нужно) сделать:

  • Настроить цели (Goals) — регистрации, покупки, клики по кнопкам.
  • Добавить e-commerce трекинг, чтобы видеть выручку, средний чек и конверсии.
  • Включить Enhanced e-commerce, если у вас интернет-магазин.
  • Подключить события (Events) через Matomo Tag Manager, чтобы отслеживать клики, скроллы и взаимодействия с формами.
  • Для продвинутых — интегрировать Custom Dimensions и User ID, чтобы строить отчеты по сегментам и типам пользователей.

В следующих статьях это и продолжим разбирать.

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