В прошлой статье я закончил обзор open source решения для аналитики и, что важно для нас, решения для менеджера тегов - Matomo Tag Manager. В этой статье приступаем к разбору по косточкам самого решения. И начинаем с установки его на сервер. А я продолжаю выступать своего рода евангелистом Matomo Tag Manager в рунете, где он незаслуженно, по моему мнению, обойден стороной.

Я более 10 лет занимаюсь аналитикой, SEO и управлением командами в digital‑маркетинге. А в своем Телеграм канале пишу еще больше про всякое из реального маркетинга. Консультирую по аналитике web‑проектов и настройке инструментов маркетинга, помогаю проводить технические собеседования специалистов по различным типам трафика.
Требования к серверу
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, когда все это давно уже ставится на виртуальную машину за 5 щелчков. Вот я, например, все это реализовал у провайдера виртуальных машин Beget.

Подготовка к установке Matomo
Перед установкой важно правильно подготовить сервер и окружение. Если пропустить этот этап, Matomo может установитьcя, но начнет “подтормаживать”, ругаться на права или не будет создавать отчеты. Так что лучше уделить 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
Подключитесь через FileZilla или другой клиент.
Перейдите в директорию /var/www/matomo (или /public_html/matomo - в зависимости от хостинга).
Загрузите архив 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 с сайта:
Залейте ее на сервер в директорию файлов сайта на домене.
Мастер установки 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 - требуют сложных агрегаций при отчетах.
Расчет примерной нагрузки
Чтобы ориентироваться, можно использовать приблизительную оценку зависимости нагрузки от трафика и плагинов:
Трафик (хиты/сутки) |
RAM |
CPU |
База данных (рост/мес) |
Комментарий |
до 10 000 |
512 МБ |
1 ядро |
<100 МБ |
блог, малый сайт |
до 100 000 |
2 ГБ |
2 ядра |
0.5–1 ГБ |
корпоративный сайт |
до 1 000 000 |
4–8 ГБ |
4 ядра |
5–10 ГБ |
крупный проект |
5 000 000+ |
16 ГБ+ |
8 ядер |
30 ГБ+ |
high-traffic портал |
Важно: на размер базы влияет не только количество хитов, но и длительность хранения логов (по умолчанию - 180 дней).
Как оценить нагрузку при росте трафика
Снимать метрики: использовать htop или top для мониторинга CPU и памяти.
Анализировать MySQL: через SHOW PROCESSLIST; или Matomo System Check.
Мониторить cron-задачи: если архивирование занимает >60% времени между запусками - пора масштабироваться.
Проверить рост таблиц:
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, чтобы строить отчеты по сегментам и типам пользователей.
В следующих статьях это и продолжим разбирать.
