Установка Matomo Web Analytics (Piwik) на Ubuntu 22.04 с использованием Apache или Nginx

В данном руководстве объясняется, как выполнить установку Matomo web analytics (известного ранее как Piwik) на Ubuntu 22.04 с использованием веб-серверов Apache или Nginx. Matomo представляет собой бесплатную альтернативу Google Analytics и является одним из самых популярных решений для веб-аналитики.

Веб-аналитика — это процесс сбора, анализа и интерпретации данных о посещаемости веб-сайта.

Программное обеспечение для анализа веб-трафика необходимо сайтам для отслеживания числа посетителей на день, неделю или месяц, а также для определения используемых ими веб-браузеров. Это важный инструмент для развития интернет-ресурсов. Хотя Google Analytics является отличным решением, данные о посещаемости хранятся на серверах компании Google. Если вы предпочитаете не делиться информацией о своих посетителях с третьими лицами, есть возможность установить собственное программное обеспечение для веб-аналитики. Существует множество альтернатив Google Analytics, и Matomo считается одной из лучших.

Характеристики Matomo

Саморазмещаемая версия Matomo с открытым исходным кодом (лицензия GPL v3+) предоставляет возможность генерировать следующие отчеты.

  • Список основных ключевых слов и поисковых систем, а также платформ для веб-сайтов и социальных сетей.
  • Рейтинг URL-адресов страниц, названия страниц, государства пользователей, интернет-провайдеры, операционные системы, рыночная доля браузеров, разрешение экрана, настольные компьютеры в сравнении с мобильными устройствами.
  • Уровень вовлеченности (время, проведенное на сайте, количество просмотренных страниц за одно посещение, частота повторных визитов).
  • Лучшие компании, индивидуальные параметры пользователей, наиболее посещаемые входящие и выходящие страницы, загруженные документы и многое другое.
  • Отчеты по аналитике делятся на четыре ключевые категории: Посетители, Действия, Рефереры и Цели/Электронная коммерция, включая более 30 различных отчетов.
  • Отчеты по статистике, отправляемые на электронную почту.
  • Анализ журналов веб-сервера.
  • Мониторинг пользователей, у которых отключен JavaScript.
  • Инструменты для обеспечения соответствия требованиям GDPR, например, механизмы получения согласия на использование файлов cookie.
  • Установка как бесплатных, так и платных плагинов для увеличения возможностей Matomo.
  • Комфортный инструмент для обновления через веб-интерфейс. Кроме того, имеется версия для командной строки.
  • И многое другое.

Чтобы ознакомиться с полным перечнем возможностей, посетите страницу функций 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
  • Девять дата-центров расположены в различных странах мира, среди которых США, Канада, Великобритания, Германия, Нидерланды, Гонконг и Израиль.
Читайте также:  Переменные среды BASH

Для создания вашего сервера 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-менеджере.

Серверный администратор webmaster@localhost Имя сервераanalytics. example.comКорневой каталог документа: /var/www/matomo/Индексный файл: index.php. Настройки: следовать символьным ссылкам, разрешение всех директив и доступ для всех пользователей. Опции отсутствуют, доступ для всех запрещён. Опции отсутствуют. Все пользователи имеют доступ. Опции отсутствуют, доступ для всех запрещён. Опции отсутствуют, доступ для всех запрещён.ErrorLog $/matomo_error.log CustomLog $/matomo_access.log в комбинированном формате.

Сохраните файл и закройте его. После этого активируйте данный виртуальный хост.

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~

  • ^.+.php$
  • < 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.

    Сертификат необходимо получить и установить автоматически.

    matomo-install-ubuntu-20.04

    Завершите процесс установки в вашем интернет-браузере.

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

    установите Matomo на Ubuntu 20.04 LTS

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

    matomo-ubuntu-20.04-php-extensions

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

    matomo-mariadb-database-setup-ubuntu-20.04

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

    matomo-ubuntu-20.04-apache

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

    matomo-ubuntu-20.04-nginx

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

    matomo-analytics-ubuntu-20.04

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

    matomo-installation-ubuntu-20.04

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

    панель управления Matomo

    Мониторинг пользователей с отключенным JavaScript.

    В веб-интерфейсе 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. Затем на левой панели выберите опцию «Мой лицензионный ключ».

    ключ лицензии maxmind

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

    maxmind создает новый лицензионный ключ.

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

    geolокация maxmind для matomo

    Далее нажмите на значок шестеренки (Администрирование) в веб-интерфейсе 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).

    Matomo GeoIP

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

    matomo-analytics-maxmind-geoip-lite-update

    Запуск 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.
    • Ознакомьтесь с рекомендациями по улучшению эффективности работы.