ایجاد ردیابی پیشرفته ترافیک سایت با ClickHouse و WP
ایجاد ردیابی پیشرفته ترافیک سایت با ClickHouse در وردپرس
ClickHouse یک دیتابیس تحلیل سریع و مقیاسپذیر است که برای ذخیره و پردازش دادههای بزرگ طراحی شده است. در این راهنما، نحوهی نصب و پیکربندی ClickHouse روی سرور وردپرس، ارسال رویدادهای ترافیک، ایجاد جدولهای تحلیلی، نوشتن کوئریهای SQL، نمایش نتایج در داشبورد وردپرس و بهینهسازی عملکرد آن را بررسی میکنیم. هدف این است که تجربهی ردیابی دقیق و سریع ترافیک وبسایت شما را به حداکثر برسانیم.
نصب و راهاندازی ClickHouse روی سرور وردپرس
برای نصب ClickHouse، ابتدا باید به سرور وردپرس دسترسی SSH داشته باشید. سپس مراحل زیر را دنبال کنید:
- نصب بستههای لازم:
apt-get update && apt-get install -y ca-certificates curl - دانلود کلید GPG و افزودن مخزن:
curl https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG | apt-key add - - افزودن مخزن ClickHouse:
echo "deb https://repo.clickhouse.com/deb/stable/ main" | tee /etc/apt/sources.list.d/clickhouse.list - بهروزرسانی و نصب ClickHouse:
apt-get update && apt-get install -y clickhouse-server clickhouse-client - راهاندازی سرویس:
systemctl enable clickhouse-server && systemctl start clickhouse-server
اگر سرور شما بر پایهی Docker است، میتوانید از مخزن رسمی Docker استفاده کنید:
docker run -d --name clickhouse-server
-p 8123:8123 -p 9000:9000
yandex/clickhouse-server
برای اطمینان از عملکرد صحیح، دستورات زیر را اجرا کنید:
clickhouse-client --query="SELECT version()"
اگر نسخهی ClickHouse نمایش داده شد، نصب موفقیتآمیز بوده است.
ایجاد و مدیریت جدولهای تحلیلی
یک جدول مناسب برای ذخیرهی رویدادهای ترافیک میتواند به شکل زیر باشد:
CREATE TABLE traffic_events (
event_time DateTime,
user_id UInt64,
page_url String,
referrer String,
device String,
country String,
session_id String
) ENGINE = MergeTree()
ORDER BY (event_time, session_id)
SETTINGS index_granularity = 8192;
این ساختار بهصورت MergeTree تنظیم شده است تا کوئریهای زمانبر را سریعاً انجام دهد. برای مقیاسپذیری، میتوانید از تنظیمات replication و sharding استفاده کنید.
ارسال رویدادهای ترافیک از وردپرس به ClickHouse
برای ارسال دادهها، دو روش اصلی وجود دارد:
- استفاده از افزونهی ClickHouse Analytics for WordPress که بهصورت اتوماتیک رویدادهای بازدید را جمعآوری میکند.
- نوشتن کد سفارشی در فایل
functions.php:
add_action('wp_head', function() {
$event = [
'event_time' => current_time('mysql'),
'user_id' => get_current_user_id(),
'page_url' => $_SERVER['REQUEST_URI'],
'referrer' => $_SERVER['HTTP_REFERER'] ?? '',
'device' => wp_is_mobile() ? 'mobile' : 'desktop',
'country' => wp_get_canonical_url(),
'session_id' => session_id()
];
$json = json_encode($event);
$ch = curl_init('http://localhost:8123/?query=INSERT%20INTO%20traffic_events%20FORMAT%20JSONEachRow');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
});
این کد هر بار که یک بازدید رخ میدهد، دادههای آن را به صورت JSON به ClickHouse ارسال میکند. برای جلوگیری از تأثیر بر کارایی سایت، میتوانید از AJAX یا
دیدگاه
دیدگاه ها غیر فعال است