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

Это руководство объясняет процесс установки Matomo web analytics (ранее называвшегося Piwik) на Ubuntu 20.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 в режиме реального времени.

Плюсы использования Matomo, устанавливаемого на собственном сервере.

  • Абсолютный контроль над информацией. Все данные сохраняются исключительно на вашем сервере, и вы имеете возможность определить, в какой стране он будет находиться.
  • Объем данных не имеет ограничений. Вы можете сохранять столько информации, сколько позволяет ваш сервер.
  • Настраиваемый и легко расширяемый.
  • Firefox начал ограничивать использование куки для отслеживания между разными сайтами, включая Google Analytics. Если разместить аналитическое ПО на собственном домене, куки для отслеживания останутся активными и не будут заблокированы.

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

Предварительные условия для установки Matomo Web Analytics (Piwik) на Ubuntu 20.04

Для выполнения данного руководства вам потребуется доменное имя и сервер. Я выбрал NameCheap для регистрации своего домена из-за низкой стоимости и бесплатной защиты конфиденциальности WHOIS на весь срок использования. Сервер с 1 ГБ оперативной памяти вполне подходит для работы Matomo. Вот список провайдеров хостинга, которые я рекомендую, так как у меня есть опыт работы с каждым из них.

  • Vultr (Цены начинаются от $2.5 в месяц. Необходима кредитная карта)
  • DigitalOcean предлагает тарифы от $5 в месяц. Для регистрации не требуется кредитная карта, также доступна оплата через PayPal.
Читайте также:  Эффективные способы поиска файлов в Linux для начинающих и опытных пользователей

После того как вы получите сервер, установите на него Ubuntu и придерживайтесь следующих указаний.

Matomo разработан на PHP и использует базы данных MySQL или MariaDB. Для выполнения этого руководства предполагается, что у вас уже установлен стек LAMP или LEMP на Ubuntu 20.04. Если это не так, пожалуйста, ознакомьтесь с одним из следующих руководств:

  • Установка стека LAMP на сервер с Ubuntu 20.04.
  • Установка стека LEMP на сервер с операционной системой Ubuntu 20.04.

После завершения настройки стека LAMP или LEMP, вернитесь к этому месту и продолжайте чтение.

Установите Matomo на Ubuntu 20.04.

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

wget https://builds. matomo. org/matomo-latest. zip

После загрузки распакуйте архив с помощью команды unzip.

sudo apt install unzip sudo mkdir - p /var/www/ sudo unzip matomo-latest. zip - d /var/www/

Опция — d задаёт целевой каталог. Веб-файлы Matomo будут распакованы в директорию /var/www/matomo/. После этого необходимо назначить владельцем данной директории пользователя www-data, чтобы веб-сервер имел возможность осуществлять запись в неё.

sudo chown www-data:www-data /var/www/matomo/ - R

Создайте в MariaDB нового пользователя и базу данных.

Для подключения к серверу базы данных MariaDB используйте следующую команду.

sudo mysql

Вы можете воспользоваться этой командой для авторизации в системе.

sudo mariadb

Создайте базу данных для Matomo. В этом примере она называется matomo, однако вы можете выбрать любое другое имя по своему усмотрению.

create database matomo;

Создайте нового пользователя для базы данных, выбрав любое имя по вашему усмотрению. Укажите вместо «your-password» пароль, который вам подходит.

create user matomouser@n@localhost с аутентификацией через 'your-password';

Дайте данному пользователю полные права на управление базой данных matomo.

grant all privileges on matomoПреобразуй текст так, чтобы он стал уникальным, используя русский язык.matomouser@localhost;

Отмените привилегии и завершите сеанс.

flush privileges; exit;

Подготовьте файл настроек для Apache или Nginx.

Apache

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

sudo nano /etc/apache2/sites-available/matomo.conf

Поместите указанный текст в файл. Замените analytics. example.com на ваше собственное доменное имя. Не забудьте добавить A-запись для этого домена в вашем DNS-менеджере.

Администратор сервера: webmaster@localhost, Имя сервера:analytics. example.comКорневой каталог документа: /var/www/matomo/Директивы для индексации: index.php, Опции: FollowSymLinks, Разрешить переопределение всех настроек, Требуется доступ для всех. Опции отсутствуют, все запросы отклонены. Опции отсутствуют. Все разрешено. Опции отсутствуют, все запросы отклонены. Опции отсутствуют, все запросы отклонены.ОшибкаЛог $/matomo_error.log ПользовательскийЛог $/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/php7.4-fpm.sock; >требуется для плагина HeatmapSessionRecording путь = /plugins/HeatmapSessionRecording/configs.php< include snippets/fastcgi-php.conf; fastcgi_param HTTP_PROXY ""; fastcgi_pass unix:/run/php/php7.4-fpm.sock; >ограничить доступ ко всем другим файлам с расширением.php~

  • ^.+.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 php7.4-mysql php7.4-fpm php7.4-common php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-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 20.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.
    • —согласие-с-условиями : Принять условия предоставления услуг.
    • —перенаправление: Обязательный переход на HTTPS с использованием 301 редиректа.
    • —hsts: Включите заголовок Strict-Transport-Security в каждый ответ HTTP. Это заставляет браузер всегда применять TLS для данного домена, обеспечивая защиту от атак, связанных с удалением SSL/TLS.
    • —staple-ocsp: Активирует функцию OCSP Stapling. В процессе TLS к сертификату, который сервер предоставляет, прикрепляется действительный ответ OCSP.

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

    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 Jobs для веб-сайтов с умеренным и высоким объемом посещаемости.

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

    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 будет выполняться каждый час в 5 минут.

    Как установить оповещения на электронную почту

    Если в системе несколько пользователей, разумно настроить Matomo на отправку уведомлений по электронной почте, включая письма для сброса пароля. Для получения информации о настройке почтового сервера, пожалуйста, ознакомьтесь с предоставленным руководством. Обратите внимание: рекомендуется устанавливать почтовый сервер iRedMail на новую, чистую операционную систему. Установка iRedMail на ОС с уже существующими веб-приложениями может привести к сбоям и нарушению работы этих приложений.

    • Настройка полноценного почтового сервера на Ubuntu 20.04 с помощью iRedMail проходит легко и быстро, обеспечивая стабильную работу почтовой системы.

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

    • Настройка SMTP-ретрансляции в Postfix на сервере Ubuntu 20.04.

    Как установить точную геолокацию с использованием GeoIP.

    Matomo по умолчанию определяет местоположение пользователей на основе их выбранного языка, что может приводить к неточностям. Например, многие иностранные пользователи устанавливают английский (En-US) в качестве языка для своей операционной системы, что может привести к увеличению числа «посетителей из США» в отчетах Matomo. Для более точной геолокации можно воспользоваться бесплатной базой данных IP MaxMind GeoLite2.

    Для начала необходимо зарегистрироваться на сайте MaxMind. После регистрации вам придет электронное письмо. Перейдите по ссылке в этом письме, чтобы задать пароль, а затем выполните вход в свою учетную запись MaxMind. Затем в левой части экрана выберите пункт «My License Key».

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

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

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

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

    Matomo MaxMind геолокация

    Затем нажмите на значок шестеренки (Администрирование) в веб-интерфейсе Matomo, перейдите в Система ->Геолокация. После этого загрузите свежую базу данных GeoIP от Maxmind на свой сервер. Не забудьте заменить 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 позволяет отслеживать геолокацию пользователей, анализируя их IP-адреса.

    Нажмите на кнопку «Сохранить», чтобы сохранить изменения в ваших настройках. Внизу этой страницы вы также можете ввести 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.
    • Изучите рекомендации по улучшению эффективности Matomo.

    На этом всё! Надеюсь, данный учебник оказался полезным для установки Matomo на сервер с Ubuntu 20.04, используя Apache или Nginx. Как всегда, если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.