Matomo Analytics
سئو

Matomo Analytics: جایگزینی عالی برای Google Analytics

  • 1403/12/07

Matomo Analytics (که قبلاً به نام Piwik شناخته می‌شد) یک پلتفرم تحلیلی وب است که به کاربران این امکان را می‌دهد تا داده‌های مربوط به ترافیک و رفتار کاربران روی وب‌سایت‌ها و اپلیکیشن‌ها را تجزیه و تحلیل کنند. این ابزار متن‌باز است و در مقایسه با Google Analytics، ویژگی‌هایی نظیر حفظ حریم خصوصی و کنترل کامل روی داده‌ها را به کاربران ارائه می‌دهد.

ویژگی‌های اصلی Matomo عبارتند از:

  1. خصوصیت متن‌باز: کد منبع Matomo قابل دسترسی است و می‌توانید آن را به دلخواه خود ویرایش کنید.
  2. حفظ حریم خصوصی: Matomo به کاربران امکان می‌دهد که کنترل کاملی روی داده‌های کاربران خود داشته باشند و اطلاعات را بدون نیاز به ارسال به سرورهای خارجی جمع‌آوری کنند.
  3. گزارش‌های دقیق: تحلیل‌های دقیقی از رفتار کاربران، بازدید صفحات، نرخ تبدیل، جستجوها و بسیاری دیگر.
  4. پشتیبانی از چندین وب‌سایت: می‌توانید داده‌های چندین وب‌سایت را در یک داشبورد مشترک بررسی کنید.
  5. پلاگین‌ها و افزونه‌ها: Matomo به راحتی قابل گسترش است و افزونه‌هایی برای تحلیل‌های خاص، مانند تجزیه و تحلیل تجارت الکترونیک، گوگل ادوردز و شبکه‌های اجتماعی دارد.
  6. گزارش‌های قابل تنظیم: شما می‌توانید گزارش‌های خاصی را بر اساس نیاز خود ایجاد کنید و آنها را برای تیم‌ها یا افراد مختلف ارسال کنید.
  7. قابلیت نصب روی سرور خود: برخلاف Google Analytics که داده‌ها در سرورهای گوگل ذخیره می‌شود، می‌توانید Matomo را روی سرور خود نصب کنید و کنترل کامل بر داده‌های خود داشته باشید.

چرا باید از Matomo به‌جای Google Analytics استفاده کنیم؟

  • کنترل کامل روی داده‌ها: با نصب Matomo روی سرور خود، شما کنترل کامل روی داده‌ها و گزارش‌ها خواهید داشت. در مقابل، Google Analytics داده‌های شما را روی سرورهای خود ذخیره می‌کند.
  • حفظ حریم خصوصی کاربران: Matomo ابزارهایی برای رعایت قوانین حریم خصوصی مانند GDPR دارد که به شما کمک می‌کند داده‌های کاربران را مطابق با مقررات حفظ کنید.
  • امکانات سفارشی‌سازی بیشتر: چون Matomo متن‌باز است، شما می‌توانید آن را مطابق با نیازهای خاص خود تغییر دهید و افزونه‌های مورد نظر را به آن اضافه کنید.
  • هیچ وابستگی به سرویس‌های خارجی: با استفاده از Matomo، نیازی به ارسال داده‌های خود به سرورهای خارجی مانند Google ندارید، که این مسئله برای برخی کسب‌وکارها از اهمیت زیادی برخوردار است.

برای نصب Matomo روی سرور با استفاده از Nginx، مراحل زیر را دنبال کنید:

پیش‌نیازها

  • PHP نسخه 7.2 یا بالاتر
  • MySQL یا MariaDB
  • Nginx به عنوان وب‌سرور

1. نصب PHP

برای نصب PHP و PHP-FPM (برای کار با Nginx) روی سرور، از دستورات زیر استفاده کنید:

sudo apt update
sudo apt install php-fpm php-mysql php-xml php-json php-curl php-mbstring php-zip php-gd

توجه: نسخه PHP باید حداقل 7.2 یا بالاتر باشد.

بعد از نصب PHP، برای اطمینان از نصب صحیح، دستور زیر را اجرا کنید:

php -v

2. نصب MySQL

برای نصب MySQL، از دستورات زیر استفاده کنید:

sudo apt update
sudo apt install mysql-server

بعد از نصب MySQL، آن را راه‌اندازی کنید:

sudo systemctl start mysql

و برای اطمینان از نصب صحیح، از دستور زیر استفاده کنید:

sudo systemctl status mysql

3. ایجاد پایگاه داده و کاربر MySQL با استفاده از Webmin

برای ایجاد پایگاه داده و کاربر در MySQL با استفاده از Webmin:

  1. وارد Webmin شوید.
  2. از منوی "Servers"، گزینه "MySQL Database Server" را انتخاب کنید.
  3. به قسمت "Create a new database" بروید و نام پایگاه داده جدید (مثل matomo_db) را وارد کنید.
  4. سپس به بخش "Create a new user" بروید و کاربر جدید (مثل matomo_user) را با رمز عبور دلخواه ایجاد کنید.
  5. دسترسی‌های لازم (مثل ALL PRIVILEGES) را برای کاربر جدید تنظیم کنید.

4. نصب Nginx و پیکربندی آن

برای نصب Nginx روی سرور خود از دستور زیر استفاده کنید:

sudo apt update
sudo apt install nginx

پس از نصب Nginx، باید فایل تنظیمات آن را برای Matomo پیکربندی کنید. به مسیر /etc/nginx/sites-available/ بروید و فایل جدیدی به نام matomo.conf بسازید:

server {
    listen 80;
    server_name example.com;  # دامنه خود را وارد کنید
    root /var/www/html/matomo;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;  # بررسی کنید که نسخه PHP شما با این تطابق داشته باشد
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}

سپس، این فایل تنظیمات را به Nginx اضافه کنید:

sudo ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/

برای اعمال تغییرات، Nginx را دوباره راه‌اندازی کنید:

sudo nginx -t
sudo systemctl reload nginx

5. اتصال دامنه به سرور

برای اتصال دامنه خود به سرور (در این مثال دامنه example.com)، ابتدا DNS دامنه خود را به آدرس IP سرور شما ارجاع دهید. سپس در فایل تنظیمات Nginx، نام دامنه را به‌جای example.com قرار دهید. اگر از Cloudflare استفاده می‌کنید، می‌توانید تنظیمات DNS را در بخش DNS Settings پنل Cloudflare انجام دهید.

6. نصب Matomo

  1. فایل Matomo را از سایت رسمی دانلود کنید:
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
mv matomo /var/www/html/
  1. تنظیمات پایگاه داده و نصب را از طریق مرورگر انجام دهید. به آدرس سرور خود بروید (مثلاً http://example.com/matomo) و دستورالعمل‌ها را دنبال کنید.

در مرحله پایگاه داده، اطلاعاتی که قبلاً در Webmin ایجاد کرده‌اید (نام پایگاه داده، کاربر و رمز عبور) را وارد کنید.

7. دریافت کد رهگیری Matomo

بعد از اتمام نصب، Matomo کد JavaScript مخصوص به شما را برای ردیابی بازدیدکنندگان تولید می‌کند. این کد را در صفحات وب‌سایت خود قرار دهید.
تنظیم CRON برای پردازش خودکار داده‌ها در Matomo

Matomo به‌صورت پیش‌فرض هر بار که یک کاربر وارد داشبورد می‌شود، داده‌های جدید را پردازش می‌کند. اما این روش روی سرورهای پربازدید باعث کندی و افزایش بار سرور می‌شود. به همین دلیل بهتر است پردازش داده‌ها را به‌صورت خودکار و زمان‌بندی‌شده با Cron Job انجام دهید.

چرا باید از Cron Job استفاده کنیم؟

افزایش سرعت داشبورد: بدون نیاز به پردازش زنده در زمان بارگذاری داشبورد.
کاهش فشار روی سرور: به‌جای اینکه پردازش‌ها هنگام ورود کاربران اجرا شوند، فقط در زمان‌های مشخص اجرا می‌شوند.
بهبود عملکرد گزارش‌ها: گزارش‌های روزانه، هفتگی و ماهانه سریع‌تر به‌روزرسانی می‌شوند.

۲. اجرای پردازش داده‌ها با Cron Job

الف) غیرفعال کردن پردازش زنده در داشبورد

ابتدا باید پردازش زنده را در داشبورد Matomo غیرفعال کنیم تا به‌جای آن، پردازش‌ها توسط Cron Job اجرا شوند.

🔹 به مسیر Administration > General Settings بروید.
🔹 گزینه Archive reports when viewed from the browser را روی No تنظیم کنید.
🔹 تغییرات را ذخیره کنید.

🔹 نتیجه: از این به بعد، پردازش داده‌ها فقط از طریق Cron Job اجرا می‌شود.

ایجاد Cron Job در سرور

۱. وارد سرور خود شوید.
۲. فایل کرون‌جاب را با دستور زیر باز کنید:

crontab -e

خط زیر را به انتهای فایل اضافه کنید:

5 * * * * www-data php /var/www/html/matomo/console core:archive --url=https://YourDomian.com > /dev/null 2>&1

🔹 توضیح:

  • 5 * * * * → هر ساعت در دقیقه ۵ اجرا می‌شود. (می‌توانید تغییر دهید، مثلاً هر ۶ ساعت اجرا شود.)
  • www-data → کاربر وب‌سرور (در NGINX و Apache معمولاً www-data است، اگر Matomo را با کاربر دیگری نصب کرده‌اید، آن را تغییر دهید).
  • /var/www/html/matomo/console core:archive → این دستور پردازش داده‌ها را اجرا می‌کند.
  • --url=https://analytics.example.com → آدرس Matomo شما.
  • > /dev/null 2>&1 → خروجی کرون‌جاب را در /dev/null ذخیره می‌کند تا لاگ‌های اضافه تولید نشوند.

تست کنید که کرون‌جاب درست کار می‌کند:
دستور زیر را اجرا کنید:

php /var/www/html/matomo/console core:archive --url=https://YourDomian.com

اگر پردازش بدون خطا اجرا شد، کرون‌جاب نیز به‌درستی کار خواهد کرد.

۳. زمان‌بندی پیشنهادی برای اجرای کرون‌جاب

بسته به میزان بازدید و ترافیک سایت، می‌توانید فواصل اجرای کرون را تغییر دهید:

حجم بازدید سایتتنظیم پیشنهادی Cron Job
کم (زیر ۱۰۰۰ بازدید روزانه)هر ۶ ساعت 0 */6 * * *
متوسط (بین ۱۰۰۰ تا ۱۰۰۰۰ بازدید روزانه)هر ۲ ساعت 0 */2 * * *
زیاد (بیش از ۱۰۰۰۰ بازدید روزانه)هر ساعت 0 * * * *

مثلاً اگر بخواهید هر ۶ ساعت اجرا شود:
0 */6 * * * www-data php /var/www/html/matomo/console core:archive --url=https://YourDomian.com۴. بررسی اجرای صحیح کرون‌جاب

برای اطمینان از اجرای صحیح کرون‌جاب، می‌توانید خروجی آن را در یک فایل ذخیره کنید:

bash

CopyEdit

5 * * * * www-data php /var/www/html/matomo/console core:archive --url=https://analytics.example.com >> /var/log/matomo-archive.log 2>&1

سپس با دستور زیر لاگ‌ها را مشاهده کنید:

bash

CopyEdit

tail -f /var/log/matomo-archive.log

اگر کرون‌جاب با موفقیت اجرا شود، باید پیام‌هایی مشابه زیر را ببینید:

sql

CopyEdit

INFO [2025-03-04 05:00:01] Archived website id = 1, period = day, 123 visits INFO [2025-03-04 05:00:02] Archived website id = 1, period = week, 512 visits INFO [2025-03-04 05:00:03] Done archiving!

۵. مشکلات رایج و راه‌حل‌ها

 مشکل: کرون‌جاب اجرا نمی‌شود
🔹 بررسی کنید که PHP CLI نصب شده باشد:

php -v

اگر اجرا نشد، مسیر PHP را مشخص کنید:

5 * * * * /usr/bin/php /var/www/html/matomo/console core:archive --url=https://analytics.example.com > /dev/null 2>&1

مشکل: کاربر سرور اشتباه است
🔹 در بعضی سرورها باید از root یا apache به‌جای www-data استفاده کنید:

5 * * * * root php /var/www/html/matomo/console core:archive --url=https://analytics.example.com > /dev/null 2>&1

مشکل: خطای permission denied
🔹 بررسی کنید که فایل console قابل اجرا باشد:

chmod +x /var/www/html/matomo/console

مشکل: کرون‌جاب اجرا می‌شود ولی در داشبورد به‌روزرسانی انجام نمی‌شود
🔹 بررسی کنید که گزینه "Archive reports when viewed from the browser" در تنظیمات غیرفعال شده باشد. > /dev/null 2>&1

برای امنیت سرور میتونید از UFW استفاده کنید
مقالات مرتبط:
آموزش ufw
آموزش امنیت سرور

پیشنهاد ما برای سرور مدیریت Matomo Analytics

پارس وی دی اس

دیدگاه
نوشتن یک دیدگاه

آدرس ایمیل شما منتشر نخواهد شد، فیلدهای الزامی علامت گذاری شده است*.

عضویت در خبرنامه

رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.