Tại sao nên rời xa Google Analytics?
Google Analytics 4 (GA4) thường mang lại cảm giác như đang cố lái một chiếc Boeing 747 chỉ để theo dõi một blog cá nhân. Nó cực kỳ phức tạp, và những hệ lụy về quyền riêng tư khi giao dữ liệu của mọi khách truy cập cho một gã khổng lồ quảng cáo toàn cầu ngày càng khó chấp nhận. Khi tìm kiếm giải pháp thay thế cho các dự án của mình, tôi có hai lựa chọn: trả phí cho một dịch vụ SaaS tập trung vào quyền riêng tư hoặc tự host nó.
Các tùy chọn SaaS như Fathom hoặc phiên bản trả phí của Plausible rất tuyệt vời, nhưng mức phí khởi điểm 9 USD/tháng sẽ tăng dần nếu bạn quản lý nhiều trang web nhỏ. Tự host Plausible thông qua Docker là một giải pháp trung gian hoàn hảo. Bạn nhận được tính năng theo dõi nhẹ nhàng, không dùng cookie tương tự như phiên bản trả phí, nhưng nó chạy trên phần cứng của riêng bạn. Bạn sở hữu dữ liệu, kiểm soát quyền riêng tư và cuối cùng có thể xóa bỏ những biểu ngữ chấp thuận GDPR phiền phức vì Plausible không theo dõi các định danh cá nhân.
Thực tế của việc tự Host
Trước khi di chuyển hạ tầng, bạn nên cân nhắc các ưu và nhược điểm. Tôi đã vận hành hệ thống này trong môi trường production hơn một năm. Mặc dù nó cực kỳ ổn định, nhưng có những yêu cầu kỹ thuật mà bạn không thể bỏ qua.
Ưu điểm
- Hiệu năng cực nhanh: Script của Plausible chỉ dưới 1KB. So với Google Analytics (thường lớn gấp 40 lần), sự thay đổi này có thể cải thiện ngay lập tức các chỉ số Core Web Vitals và điểm PageSpeed của bạn.
- Tuân thủ dễ dàng: Vì công cụ này tránh sử dụng cookie và không thu thập PII (Thông tin định danh cá nhân), bạn thường sẽ mặc định tuân thủ các quy định như GDPR, CCPA và PECR ngay khi cài đặt.
- Chủ quyền dữ liệu: Các mô hình lưu lượng truy cập nằm lại trên máy chủ của bạn. Không có bên thứ ba nào khai thác dữ liệu người dùng của bạn để xây dựng hồ sơ quảng cáo.
- Giao diện tối giản: Dashboard mang lại một luồng gió mới. Bạn có thể xem lượng khách truy cập, nguồn lưu lượng và mục tiêu trên một trang duy nhất mà không cần lục tìm trong các menu lồng nhau.
Thách thức
- Yêu cầu RAM: Plausible dựa vào ClickHouse để lưu trữ dữ liệu. Mặc dù ClickHouse cực nhanh cho việc phân tích, nhưng nó rất ngốn bộ nhớ. Bạn sẽ cần ít nhất 4GB RAM để ngăn chặn trình xử lý Linux OOM (Out of Memory) killer làm sập cơ sở dữ liệu của bạn.
- Bảo trì thủ công: Bạn chính là quản trị viên hệ thống. Nếu máy chủ gặp sự cố lúc 2 giờ sáng, bạn sẽ mất dữ liệu theo dõi cho đến khi nó hoạt động trở lại. Bạn cũng phải tự xử lý việc sao lưu và các bản vá bảo mật.
Phần cứng và Stack khuyến nghị
Để có trải nghiệm mượt mà, tôi khuyên bạn nên sử dụng một VPS hoặc máy chủ tại nhà với ít nhất 2 vCPU và 4GB RAM. Nếu bạn sử dụng Raspberry Pi 5 hoặc một chiếc Intel NUC, hãy đảm bảo bạn dùng SSD. ClickHouse thực hiện các tác vụ đọc/ghi đĩa (disk I/O) rất nặng, và một thẻ nhớ SD rẻ tiền sẽ hỏng dưới áp lực này.
Stack của chúng ta sẽ bao gồm năm thành phần chính:
- Docker & Docker Compose: Để điều phối các container.
- PostgreSQL 14: Để lưu trữ metadata như tài khoản người dùng và cài đặt trang web.
- ClickHouse: Engine hiệu suất cao cho dữ liệu phân tích thô.
- Redis: Để lưu bộ nhớ đệm và xử lý các tác vụ tạm thời.
- Nginx Proxy Manager: Để quản lý chứng chỉ SSL và công khai dashboard một cách an toàn.
Cài đặt từng bước
Thiết lập Plausible thủ công là một cơn ác mộng, nhưng Docker Compose giúp việc này trở nên dễ dàng hơn. Đây là cấu hình tôi sử dụng cho các triển khai của mình.
1. Chuẩn bị môi trường
Bắt đầu bằng cách tạo một thư mục riêng biệt. Việc giữ cho các Docker volumes có tổ chức sẽ giúp việc sao lưu sau này dễ dàng hơn nhiều.
mkdir ~/plausible
cd ~/plausible
2. Cấu hình các mã bảo mật
Plausible cần một vài mã bí mật để mã hóa dữ liệu phiên làm việc. Tạo một chuỗi 64 ký tự ngẫu nhiên bằng lệnh này:
openssl rand -base64 48
Tạo một tệp có tên plausible-conf.env. Dán nội dung sau và thay thế các phần giữ chỗ bằng thông tin thực tế của bạn:
[email protected]
ADMIN_USER_NAME=admin
ADMIN_USER_PWD=mat_khau_bao_mat_cua_ban
BASE_URL=https://analytics.yourdomain.com
SECRET_KEY_BASE=chuoi_64_ky_tu_da_tao
TOTP_VAULT_KEY=mot_chuoi_ngau_nhien_khac
# Liên kết cơ sở dữ liệu
DATABASE_URL=postgres://postgres:mat_khau@plausible_db:5432/plausible_db
CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db
3. Xây dựng tệp Docker Compose
Tạo tệp docker-compose.yml của bạn. Tệp này hướng dẫn Docker cách liên kết ứng dụng với các cơ sở dữ liệu. Lưu ý phần ulimits cho ClickHouse; điều này cực kỳ quan trọng để xử lý các tập dữ liệu lớn.
version: "3.3"
services:
plausible_db:
image: postgres:14-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=mat_khau
- POSTGRES_DB=plausible_db
plausible_events_db:
image: clickhouse/clickhouse-server:23.3.3.52-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
plausible:
image: plausible/analytics:latest
restart: always
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
ports:
- "8000:8000"
env_file:
- plausible-conf.env
volumes:
db-data:
event-data:
4. Khởi chạy và Kiểm tra
Trước khi bắt đầu, hãy đảm bảo bạn đã có các tệp clickhouse-config.xml cần thiết từ kho lưu trữ chính thức của Plausible trong thư mục của mình. Sau đó, đưa hệ thống lên trực tuyến:
docker-compose up -d
Thường mất khoảng 60 giây để các cơ sở dữ liệu khởi tạo. Bạn có thể theo dõi tiến độ bằng cách theo dõi log:
docker-compose logs -f plausible
5. Thiết lập Reverse Proxy
Để truy cập dashboard của bạn qua HTTPS, hãy sử dụng Nginx Proxy Manager hoặc Traefik. Trỏ analytics.yourdomain.com về IP máy chủ của bạn tại cổng 8000. Luôn bật “Force SSL” để ngừng bỏ qua các cảnh báo SSL và giữ cho thông tin đăng nhập của bạn được mã hóa.
Kết nối trang web của bạn
Sau khi đăng nhập, hãy thêm tên miền của bạn vào dashboard. Plausible sẽ cung cấp cho bạn một đoạn mã nhỏ. Nó trông như thế này:
<script defer data-domain="yourdomain.com" src="https://analytics.yourdomain.com/js/script.js"></script>
Chèn đoạn mã này vào phần <head> của trang web. Không giống như GA4, bạn không cần mất hàng giờ để gắn thẻ sự kiện. Plausible tự động theo dõi các lượt xem trang cơ bản và nguồn giới thiệu.
Các mẹo bảo trì cuối cùng
Giám sát dung lượng đĩa là ưu tiên hàng đầu của bạn. Nếu trang web của bạn đạt 100.000 khách truy cập hàng tháng, các log của ClickHouse sẽ tăng trưởng rất nhanh. Tôi khuyên bạn nên thiết lập một cron job để sao lưu cơ sở dữ liệu Postgres hàng tuần. Bằng cách thực hiện các bước này, bạn đã xây dựng được một hệ thống phân tích chuyên nghiệp, tôn trọng người dùng và cho phép bạn toàn quyền kiểm soát dữ liệu của mình. Giám sát hệ thống thường xuyên sẽ giúp đảm bảo dữ liệu luôn được ghi nhận chính xác.

