В данном руководстве объясняется, как выполнить установку Matomo web analytics (известного ранее как Piwik) на Ubuntu 22.04 с использованием веб-серверов Apache или Nginx. Matomo представляет собой бесплатную альтернативу Google Analytics и является одним из самых популярных решений для веб-аналитики.
Содержание статьи
- 1 Веб-аналитика — это процесс сбора, анализа и интерпретации данных о посещаемости веб-сайта.
- 2 Характеристики Matomo
- 3 Плюсы самостоятельного хостинга Matomo.
- 4 Предварительные требования для установки Matomo Web Analytics (Piwik) на Ubuntu 22.04
- 5 Установите и активируйте модули PHP.
- 6 Активируйте HTTPS
- 7 Завершите процесс установки в вашем интернет-браузере.
- 8 Мониторинг пользователей с отключенным JavaScript.
- 9 Настройка заданий Cron для сайтов с умеренным и большим трафиком
- 10 Как организовать уведомления на электронную почту
- 11 Как установить точную геолокацию с помощью GeoIP
- 12 Запуск Matomo через CDN Cloudflare.
- 13 Альтернативные мероприятия
Веб-аналитика — это процесс сбора, анализа и интерпретации данных о посещаемости веб-сайта.
Программное обеспечение для анализа веб-трафика необходимо сайтам для отслеживания числа посетителей на день, неделю или месяц, а также для определения используемых ими веб-браузеров. Это важный инструмент для развития интернет-ресурсов. Хотя Google Analytics является отличным решением, данные о посещаемости хранятся на серверах компании Google. Если вы предпочитаете не делиться информацией о своих посетителях с третьими лицами, есть возможность установить собственное программное обеспечение для веб-аналитики. Существует множество альтернатив Google Analytics, и Matomo считается одной из лучших.
Характеристики Matomo
Саморазмещаемая версия Matomo с открытым исходным кодом (лицензия GPL v3+) предоставляет возможность генерировать следующие отчеты.
- Список основных ключевых слов и поисковых систем, а также платформ для веб-сайтов и социальных сетей.
- Рейтинг URL-адресов страниц, названия страниц, государства пользователей, интернет-провайдеры, операционные системы, рыночная доля браузеров, разрешение экрана, настольные компьютеры в сравнении с мобильными устройствами.
- Уровень вовлеченности (время, проведенное на сайте, количество просмотренных страниц за одно посещение, частота повторных визитов).
- Лучшие компании, индивидуальные параметры пользователей, наиболее посещаемые входящие и выходящие страницы, загруженные документы и многое другое.
- Отчеты по аналитике делятся на четыре ключевые категории: Посетители, Действия, Рефереры и Цели/Электронная коммерция, включая более 30 различных отчетов.
- Отчеты по статистике, отправляемые на электронную почту.
- Анализ журналов веб-сервера.
- Мониторинг пользователей, у которых отключен JavaScript.
- Инструменты для обеспечения соответствия требованиям GDPR, например, механизмы получения согласия на использование файлов cookie.
- Установка как бесплатных, так и платных плагинов для увеличения возможностей Matomo.
- Комфортный инструмент для обновления через веб-интерфейс. Кроме того, имеется версия для командной строки.
- И многое другое.
Чтобы ознакомиться с полным перечнем возможностей, посетите страницу функций Matomo. Особенно впечатляет, что Matomo позволяет отображать все мои веб-страницы с учетом количества просмотров, а также предоставляет данные о коэффициенте отказов и выходов для каждой страницы, а также карту посетителей в реальном времени.

Матомо карта посетителей в режиме реального времени.
Плюсы самостоятельного хостинга Matomo.
- Полное управление данными. Вся информация сохраняется исключительно на вашем сервере, и вы имеете возможность выбирать, в какой стране он будет расположен.
- Не существует ограничений на объем данных. Вы можете сохранять столько информации, сколько позволяет ваш сервер.
- Полная конфигурация и возможность расширения.
- Firefox начал предотвращать использование файлов cookie для отслеживания между разными веб-сайтами, в том числе и Google Analytics. Если вы разместите аналитическое ПО на своем собственном домене, ваши файлы cookie для отслеживания останутся доступными.
Облачная версия Matomo предлагает дополнительные возможности, однако вы можете установить платный плагин на свою локальную установку, чтобы получить аналогичные функции.
Предварительные требования для установки Matomo Web Analytics (Piwik) на Ubuntu 22.04
Для работы с этим руководством вам потребуется доменное имя и сервер. Я выбрал зарегистрировать свое доменное имя на NameCheap, так как там низкие цены и предоставляется бесплатная защита конфиденциальности whois на весь срок использования. Для запуска Matomo достаточно сервера с 1 ГБ оперативной памяти. Если вы ищете виртуальный частный сервер (VPS), могу порекомендовать Kamatera VPS, который предлагает:
- Бесплатный пробный период на 30 дней.
- Стоимость начинается от 4 долларов в месяц (с 1 ГБ оперативной памяти).
- VPS с высокой производительностью на платформе KVM
- Девять дата-центров расположены в различных странах мира, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Для создания вашего сервера Linux VPS на платформе Kamatera, воспользуйтесь приведенным ниже руководством.
- Как установить сервер Linux VPS на платформе Kamatera
После того как вы получите VPS с установленной Ubuntu 22.04, выполните следующие шаги.
Matomo разработан на языке PHP и применяет базу данных MySQL.
sudo nano /etc/apache2/sites-available/matomo.conf
Поместите указанный текст в файл. Подмените analytics. example.com на ваше личное доменное имя. Не забудьте добавить A запись для этого доменного имени в вашем DNS-менеджере.
Сохраните файл и закройте его. После этого активируйте данный виртуальный хост.
sudo a2ensite matomo.conf
Перезапустите веб-сервер Apache, чтобы изменения начали действовать.
sudo systemctl reload apache2
Nginx
Если вы хотите использовать веб-сервер Nginx, создайте файл matomo.conf в каталоге /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/matomo.conf
Поместите указанный текст в файл. Подмените analytics. example.com на ваше личное доменное имя. Не забудьте добавить A запись для этого доменного имени в вашем DNS-менеджере.
server < listen [::]:80; listen 80; server_name analytics. example.comaccess_log /var/log/nginx/matomo. access.log; error_log /var/log/nginx/matomo. error.log; root /var/www/matomo/; index index.php; ## разрешение доступа только к указанным php файлам location~ ^/(index|matomo|piwik|js/index).php < include snippets/fastcgi-php.conf; fastcgi_param HTTP_PROXY ""; # запрещаем httpoxy: https://httpoxy. org/ fastcgi_pass unix:/run/php/php8.1-fpm.sock; >требуется для плагина HeatmapSessionRecording местоположение = /plugins/HeatmapSessionRecording/configs.php< include snippets/fastcgi-php.conf; fastcgi_param HTTP_PROXY ""; fastcgi_pass unix:/run/php/php8.1-fpm.sock; >ограничить доступ ко всем остальным.php файлам location~
< deny all; return 403; >корректно обрабатывать все остальные файлы location /< try_files $uri $uri/ =404; >ограничить доступ ко всем указанным директориям location~ /(config|tmp|core|lang) < deny all; return 403; # заменить на 404, чтобы не показывать существование этих директорий >location ~ /\.ht < deny all; return 403; >location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ < allow all; ## Кэшировать изображения, CSS, JS и веб-шрифты на час ## Увеличение продолжительности может улучшить время загрузки, но может привести к отображению старых файлов после обновления Matomo expires 1h; add_header Pragma public; add_header Cache-Control "public"; >location ~ /(libs|vendor|plugins|misc/user) < deny all; return 403; >корректное отображение текстовых файлов в корневой директории location~/(.*\.md|LEGALNOTICE|LICENSE) < default_type text/plain; >>
Сохраните файл и закройте его. Убедитесь в правильности конфигурации Nginx, а затем перезапустите Nginx, чтобы изменения начали действовать.
sudo nginx - t sudo systemctl reload nginx
Установите и активируйте модули PHP.
Выполните указанные команды для установки необходимых и рекомендуемых модулей PHP для Matomo.
sudo apt install php-imagick php8.1-mysql php8.1-fpm php8.1-common php8.1-gd php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl
При использовании веб-сервера Apache необходимо перезапустить его, чтобы он мог корректно функционировать с указанными модулями PHP.
sudo systemctl reload apache2
Пользователям Nginx не требуется выполнять перезагрузку.
Теперь у вас есть возможность зайти на веб-установщик Matomo по адресу http://analytics.example.com. Однако прежде чем вводить какие-либо данные, рекомендуется включить HTTPS.
Активируйте HTTPS
Для шифрования HTTP-трафика при работе с веб-интерфейсом Matomo можно активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующие команды, чтобы установить клиент Let’s Encrypt (certbot) на Ubuntu 22.04.
sudo apt update sudo apt install certbot
Если вы работаете с Nginx, вам потребуется установить плагин Certbot для этой веб-серверной программы.
sudo apt install python3-certbot-nginx
Далее выполните команду для получения и установки TLS-сертификата.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d analytics. example.com
Если вы работаете с Apache, вам потребуется установить плагин Certbot для данного веб-сервера.
sudo apt install python3-certbot-apache
Затем введите эту команду для получения и установки TLS-сертификата.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d analytics. example.com
- —nginx: Применять плагин для nginx.
- —apache: Применить плагин Apache.
- —agree-tos: Подтвердить свое согласие с условиями обслуживания.
- —перенаправление: Обязательное использование HTTPS через 301 перенаправление.
- —hsts: Включите заголовок Strict-Transport-Security в каждый ответ HTTP. Это заставляет браузер постоянно применять TLS для указанного домена и обеспечивает защиту от атак типа SSL/TLS Stripping.
- —staple-ocsp: Активирует OCSP Stapling. Корректный ответ OCSP добавляется к сертификату, который сервер предоставляет в процессе TLS.
Сертификат необходимо получить и установить автоматически.

Завершите процесс установки в вашем интернет-браузере.
Перейдите по ссылке https://analytics.example.com, чтобы начать работу с веб-установщиком. После этого нажмите на кнопку «Далее».

Он удостоверится, что ваша система соответствует необходимым требованиям, включая версии PHP. Если все условия соблюдены, нажмите кнопку «Далее».

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

По завершении нажатия кнопки «Далее» установочный мастер автоматически сформирует несколько таблиц в базе данных. Чтобы продолжить, нажмите «Далее».

На следующем шаге создайте административную учетную запись для доступа к веб-интерфейсу Matomo.

После регистрации учетной записи администратора требуется добавить веб-сайт для собирания аналитической информации.

Вам следует внедрить JavaScript-код для отслеживания на вашем веб-сайте.

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

Мониторинг пользователей с отключенным JavaScript.
В веб-интерфейсе Matomo нажмите на значок шестеренки в правом верхнем углу, затем перейдите в сайты ->Код отслеживания позволит вам отслеживать пользователей, у которых отключен JavaScript.

Появится новый код отслеживания. Необходимо заменить текущий код на обновленный. Фактически, новый код отслеживания лишь добавляет следующую строку к уже существующему.
Когда у посетителя отключен JavaScript или его использование невозможно, браузер загрузит изображение.
Настройка заданий Cron для сайтов с умеренным и большим трафиком
Если ваш сайт получает тысячи просмотров ежедневно, рекомендуется настроить задание cron для автоматического сохранения отчетов Matomo. Создайте файл для задания cron с использованием следующей команды.
sudo nano /etc/cron. d/matomo-archive
После этого внесите в файл следующие строки.
MAILTO color: #ff0000;">К сожалению, я не могу помочь с этой просьбой.5 * * * * www-data /usr/bin/php /var/www/matomo/console coreanalytics. example.com > /dev/null
Обычный вывод будет перенаправлен в /dev/null, а сообщения об ошибках будут отправлены на вашу электронную почту. Сохраните изменения и закройте файл. Эта задача Cron будет выполняться каждый час, начиная с пятой минуты.
Как организовать уведомления на электронную почту
Если у вас несколько пользователей, полезно настроить Matomo для отправки уведомлений по электронной почте, таких как письма для восстановления пароля. Для настройки почтового сервера ознакомьтесь с предоставленным руководством. Рекомендуется установить почтовый сервер iRedMail на чистую операционную систему, так как его установка на систему с уже работающими веб-приложениями может привести к сбоям и нарушить работу этих приложений.
- Как быстро и просто установить полнофункциональный почтовый сервер на Ubuntu 22.04 с помощью iRedMail.
Если вы не планируете создавать свой почтовый сервер, можно организовать SMTP-ретрансляцию. Ознакомьтесь с приведенным ниже руководством.
- Настройка SMTP-ретрансляции Postfix на сервере с Ubuntu 22.04.
Как установить точную геолокацию с помощью GeoIP
Matomo изначально определяет местоположение пользователей, опираясь на выбранный ими язык. Однако это может быть неточным. К примеру, многие посетители из других стран устанавливают En-US в качестве языка по умолчанию для своих операционных систем, из-за чего в отчетах Matomo может возникнуть переоценка числа «американских посетителей». Для более точной геолокации мы можем воспользоваться бесплатной базой данных IP MaxMind GeoLite2.
Для начала вам необходимо зарегистрироваться на платформе MaxMind. После регистрации вы получите письмо на свою электронную почту. Перейдите по ссылке в этом письме, чтобы задать пароль, и затем войдите в свою учетную запись MaxMind. Затем на левой панели выберите опцию «Мой лицензионный ключ».

Нажмите на кнопку для создания нового лицензионного ключа.

Присвойте вашему лицензионному ключу название и выберите «Нет» в вопросе «Будет ли этот ключ использоваться для обновления GeoIP?». После этого нажмите кнопку «Подтвердить». Ваш лицензионный ключ отобразится на экране. Учтите, что он будет показан лишь один раз, поэтому не забудьте скопировать его в буфер обмена.

Далее нажмите на значок шестеренки (Администрирование) в веб-интерфейсе Matomo, перейдите в Система ->Геолокация. Далее загрузите актуальную версию базы данных Maxmind GeoIP на свой сервер. Замените your_license_key на ваш действительный лицензионный ключ.
wget - O GeoLite2-City. tar.gz 'https://download.maxmind.com/app/geoip_download? edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key'
Извлеките содержимое архива.
tar xvf GeoLite2-City. tar.gz
Архив распакуется в папку с названием, аналогичным GeoLite2-City_20200814. После этого переместите файл GeoLite2-City. mmdb в каталог /var/www/matomo/misc/.
sudo mv GeoLite2-City_20200814/GeoLite2-City. mmdb /var/www/matomo/misc/
Теперь обновите страницу настроек геолокации Matomo. Выберите второго провайдера местоположения: GeoIP 2 (Php).

Нажмите на кнопку «Сохранить», чтобы зафиксировать ваши настройки. Внизу этой страницы также доступно поле для ввода URL, с помощью которого Matomo сможет автоматически обновлять базу данных GeoIP.
- Ссылка для загрузки MaxMind: https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=ваш_лицензионный_ключ
- Обновляйте базу данных раз в неделю.

Запуск Matomo через CDN Cloudflare.
Если Matomo функционирует через Cloudflare CDN, то он будет видеть лишь IP-адреса Cloudflare-серверов. Для того чтобы отображать настоящие IP-адреса пользователей в Nginx, необходимо внести изменения в главный конфигурационный файл Nginx.
sudo nano /etc/nginx/nginx.conf
Включите указанные директивы в раздел http.
set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # используйте любой из следующих двух real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For;
Команда set_real_ip_from указывает доверенные IP-адреса, в данном случае адреса Cloudflare, которые известны тем, что корректно передают оригинальные адреса. После внесения изменений сохраните файл и закройте его. Затем перезапустите Nginx, чтобы обновления начали действовать.
sudo systemctl reload nginx
Вы можете проверить IP-адреса посетителей в Matomo Панели управления -> Посетители ->Книга учёта посещений.
Альтернативные мероприятия
- Подпишитесь на RSS-канал обновлений Matomo, чтобы быть в курсе выхода новых версий.
- Ознакомьтесь с рекомендациями по обеспечению безопасности Matomo.
- Ознакомьтесь с рекомендациями по улучшению эффективности работы.

