NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
14/06/2023
Lượt xem

Hướng dẫn cách cài đặt Fathom Analytics trên Ubuntu 20.04

Ngày đăng:14/06/2023
Cập nhật cuối:25/03/2025
Lượt xem

Đánh giá

5/5 - (174 bình chọn)

Fathom Analytics là một phần mềm phân tích web mã nguồn mở, self-host, cung cấp giao diện đơn giản và bảo mật để theo dõi dữ liệu website. Để tìm hiểu cách cài đặt Fathom Analytics trên Ubuntu 20.04, mời các bạn cùng mình đến với bài hướng dẫn sau đây.

Những điểm chính

  • Fathom Analytics là phần mềm phân tích web mã nguồn mở, self-host, đơn giản, bảo mật, được viết bằng Golang và dễ cài đặt.
  • Cần có quyền sudo trên Ubuntu 20.04, tường lửa UFW, và tên miền đã đăng ký trước khi cài đặt Fathom Analytics.
  • Cài đặt Fathom Analytics trên Ubuntu 20.04 gồm 5 bước: cài Fathom, cấu hình và chạy, tạo service Systemd, cài và cấu hình Nginx, cài Certbot và SSL.
  • Vietnix là đơn vị cho thuê VPS tốc độ cao, ổn định, bảo mật hàng đầu với đa dạng gói dịch vụ và hỗ trợ 24/7.

Fathom Analytics là gì?

Fathom Analytics là một phần mềm hỗ trợ phân tích số liệu web mã nguồn mở self-host (tự host) đơn giản và bảo mật. Vì lập trình bằng ngôn ngữ Golang, Fathom được triển khai dưới dạng một file nhị phân (binary file) giúp cho việc cài đặt ứng dụng trở nên dễ dàng hơn.

Fathom Analytics là gì
Phần mềm hỗ trợ phân tích số liệu web mã nguồn mở Fathom Analytics

Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt và cấu hình Fathom Analytics với Nginx làm một reverse proxy (proxy trung gian), đồng thời sử dụng Certbot để bảo mật HTTPS cho server với các chứng chỉ SSL từ Let’s Encrypt.

Chuẩn bị để cài đặt Fathom Analytics trên Ubuntu 20.04

Trước khi bắt đầu, các bạn cần đáp ứng các yêu cầu sau:

Sau khi hoàn tất, các bạn tiến hành cài đặt ứng dụng.

Bước 1: Cài đặt Fathom

Để cài đặt ứng dụng, bạn cần tải về phiên bản mới nhất của Fathom và giải nén các file thực thi vào đường dẫn /usr/local/bin.

Các bạn đến một thư mục được phép ghi, ở đây /tmp là một lựa chọn tốt.

$ cd /tmp

Mở trình duyệt web và truy cập trang GitHub: https://github.com/usefathom/fathom/releases/tag/v1.3.1 để tìm và tải về phiên bản mới nhất của Fathom. Trong bài hướng dẫn này, mình sẽ sử dụng file fathom_1.2.1_linux_amd64.tar.gz. Các bạn có thể tìm và tải file tương tự với phiên bản mới hơn.

Chuột phải vào file và sao chép đường dẫn bằng cách chọn Copy Link hoặc tùy chọn tương ứng của trình duyệt bạn sử dụng.

Các bạn gọi lệnh curl dưới đây để tải file.

$ curl -L -O https://github.com/usefathom/fathom/releases/download/v1.2.1/fathom_1.2.1_linux_amd64.tar.gz

Sau khi tải về, fathom_1.2.1_linux_amd64.tar.gz được lưu trong thư mục /tmp. Các bạn gọi lệnh tar để giải nén các file thực thi của fathom vào đường dẫn /usr/local/bin.

$ sudo tar -C /usr/local/bin/ -xzf fathom*.tar.gz fathom

/usr/local/bin là một thư mục được bảo vệ, các bạn gọi lệnh sudo để ghi file với đặc quyền của superuser (còn gọi là root user).

Sử dụng sudochmod để cấp quyền thực thi cho binary fathom.

$ sudo chmod +x /usr/local/bin/fathom

Để kiểm tra, bạn hãy gọi lệnh fathom --version.

$ fathom --version
Output
Fathom version 1.2.1, commit 8f7c6d2e45ebb28651208e2a7320e29948ecdb2c, built at 2018-11-30T09:21:37Z

Lệnh trên sẽ hiển thị phiên bản hiện tại và một số thông tin khác của Fathom. Đến đây, server đã tải và cài đặt thành công ứng dụng. Tiếp theo, mình sẽ hướng dẫn các bạn cách cấu hình và chạy thủ công Fathom lần đầu tiên.

Bước 2: Cấu hình và chạy Fathom

Trước khi cấu hình, nhằm tách biệt và bảo mật server, các bạn cần tạo một user fathom mới trên hệ thống để chạy Fathom.

Để thêm một người dùng có tên fathom, các bạn gọi lệnh adduser dưới đây.

$ sudo adduser --system --group --home /opt/fathom fathom

Cờ --system sẽ khiến hệ thống sẽ tạo mới một người dùng đặc biệt. Người dùng này không có mật khẩu và không thể đăng nhập như một người dùng thông thường. Cờ --group --home trong lời gọi lệnh sẽ tạo group fathom và thư mục home /opt/fathom.

Các bạn đến thư mục /opt/fathom vừa tạo.

$ cd /opt/fathom

Các bạn gọi lệnh sau với quyền sudo để kết nối bash shell ứng dụng.

$ sudo -u fathom bash

Prompt shell sẽ được chuyển thành fathom@host:~$. Từ lúc này trở đi, shell sẽ thực thi tất cả các lệnh với tư cách một người dùng fathom tới khi bạn gõ lệnh exit.

Đến đây, Fathom đã sẵn sàng để thiết lập cấu hình. Các bạn tạo một một chuỗi ký tự ngẫu nhiên để đăng ký và bảo mật Fathom bằng lệnh openssl bên dưới.

fathom@host:~$ openssl rand --base64 32
Output
iKo/rYHFa2hDINjgCcIeeCe9pNglQreQrzrs+qK5tYg=

Sau khi lưu lại chuỗi vừa tạo, các bạn thêm mới một file .env.

fathom@host:~$ nano /opt/fathom/.env

Lệnh trên sẽ mở một file trắng trên nano (có thể sử dụng trình biên dịch tùy thích).

Các bạn thêm những thiết lập dưới đây vào file, đừng quên thay your_random_string_here bằng chuỗi ký tự ngẫu nhiên vừa tạo.

FATHOM_SERVER_ADDR="127.0.0.1:8080"
FATHOM_DATABASE_DRIVER="sqlite3"
FATHOM_DATABASE_NAME="fathom.db"
FATHOM_SECRET="your_random_string_here"

Với những thiết lập này, bạn cho phép server ứng dụng lắng nghe cổng 8080 của localhost (127.0.0.1), đồng thời chỉ định file fathom.db làm cơ sở dữ liệu SQLite.

Đóng và lưu file sau khi chỉnh sửa. Nếu sử dụng nano, bạn có thể nhấn tổ hợp phím CTRL+OENTER để lưu, sau đó thoát trình biên dịch bằng tổ hợp phím CTRL+X.

Sau khi cấu hình xong cơ sở dữ liệu, các bạn thêm một người dùng mới cho Fathom bằng lệnh:

fathom@host:~$ fathom user add --email="your_email" --password="your_password"

Vì là lần đầu tiên, các bạn nên chú ý đến quá trình chuyển đổi dữ liệu (database migration) hiển thị trong output.

Output
INFO[0000] Fathom version 1.2.1, commit 8f7c6d2e45ebb28651208e2a7320e29948ecdb2c, built at 2018-11-30T09:21:37Z
INFO[0000] Configuration file: /opt/fathom/.env
INFO[0000] Connected to sqlite3 database: /opt/fathom/fathom.db
INFO[0000] Applied 26 database migrations!
INFO[0000] Created user sammy@vietnixtest.com

Đến đây, file cơ sở dữ liệu fathom.db đã được tạo thành công và thêm một người dùng vào server ứng dụng.

Để kiểm tra, các bạn khởi động server.

fathom@host:~$ fathom server
Output
INFO[0000] Fathom version 1.2.1, commit 8f7c6d2e45ebb28651208e2a7320e29948ecdb2c, built at 2018-11-30T09:21:37Z
INFO[0000] Configuration file: /opt/fathom/.env
INFO[0000] Connected to sqlite3 database: /opt/fathom/fathom.db

Trong cửa số terminal kết nối với server, các bạn gọi lệnh curl sau để lấy mã nguồn trang chủ của Fathom.

$ curl localhost:8080
Output
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
  <title>Fathom - simple website analytics</title>
  <link href="assets/css/styles.css?t=1543569696966" rel="stylesheet">
. . .

Nếu output trả về một đoạn mã html như trên thì server đã hoạt động và có thể phản hồi các request ở localhost.

Hãy quay lại cửa sổ terminal ban đầu và thoát tiến trình fathom server bằng tổ hợp phím CTRL+C.

Các bạn gọi lệnh exit để thoát bash shell ứng dụng.

fathom@host:~$ exit

Shell prompt sẽ quay lại trạng thái bình thường.

Đến đây, Fathom đã được cấu hình và chạy thành công bằng các lệnh thủ công. Ở bước tiếp theo, mình sẽ hướng dẫn các bạn thiết lập cho Fathom chạy tự động dưới dạng một Systemd service.

Bước 3: Cấu hình service Systemd cho Fathom

Để có thể gọi lệnh fathom serve mọi lúc, kể cả khi không đăng nhập vào server, các bạn cần cấu hình cho Fathom làm một service của Systemd. Systemd là một công cụ quản lí service, có nhiệm vụ xử lí các thao tác như khởi động, dừng hoặc tái khởi động service trên Ubuntu cũng như các bản phân phối khác của Linux.

Tạo file fathom.service và bổ sung các thiết lập cần thiết để service hoạt động ổn định.

$ sudo nano /etc/systemd/system/fathom.service

Các bạn thêm những dòng thiết lập sau vào file.

[Unit]
Description=Fathom Analytics server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Group=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Ở đây, After=network.target được dùng để directive Systemd chạy service sau khi thành công kết nối mạng. Service sẽ được chạy với quyền của người dùng và group fathom. Restart=always directive Systemd luôn tái khởi động service trong trường hợp tiến trình bị ngắt. Ngoài ra, một số cấu hình khác cũng được thiết lập trong file như thư mục nguồn /opt/fathom và lệnh khởi động server ExecStart=/usr/local/bin/fathom server

Các bạn đóng và lưu file, đồng thời cập nhật lại cấu hình.

$ sudo systemctl daemon-reload

Kế đến là kích hoạt service.

$ sudo systemctl enable fathom.service

Các bạn cần kích hoạt thủ công service trong lần đầu tiên. Ở những lần tiếp theo, Systemd sẽ tự động chạy service khi hệ thống được khởi động.

$ sudo systemctl start fathom

iconLưu ý

Trong lệnh trên, đuôi .service của tên service có thể được bỏ qua. Cuối cùng các bạn kiểm tra để chắc chắn service đã hoạt động.

$ sudo systemctl status fathom
Output
● fathom.service - Fathom Analytics server
     Loaded: loaded (/etc/systemd/system/fathom.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-11-03 15:32:45 UTC; 13s ago
   Main PID: 3748 (fathom)
      Tasks: 5 (limit: 1136)
     Memory: 10.3M
     CGroup: /system.slice/fathom.service
             └─3748 /usr/local/bin/fathom server

Nov 03 15:32:45 ubuntu-fathom systemd[1]: Started Fathom Analytics server.
Nov 03 15:32:46 ubuntu-fathom fathom[3748]: time="2021-11-03T15:32:46Z" level=info msg="Fathom version 1.2.1, commit 8f>
Nov 03 15:32:46 ubuntu-fathom fathom[3748]: time="2021-11-03T15:32:46Z" level=info msg="Configuration file: /opt/fathom>
Nov 03 15:32:46 ubuntu-fathom fathom[3748]: time="2021-11-03T15:32:46Z" level=info msg="Connected to sqlite3 database: >

Như vậy, service đã được tái khởi động thành công trên cổng 8080 của localhost. Bước tiếp theo, các bạn sẽ cấu hình và sử dụng Nginx làm một reverse proxy để kết nối Fathom với ngoại mạng.

Bước 4: Cài đặt và cấu hình Nginx

Khi đặt một web server như Nginx trước server ứng dụng Fathom, việc lưu bộ nhớ đệm, nén cũng như phục vụ tài nguyên tĩnh sẽ được đảm nhiệm bởi một tiến trình khác hiệu quả hơn, qua đó tăng hiệu suất cho server ứng dụng.  Trong bài viết này, mình sẽ sử dụng Nginx làm một reverse proxy để xử lí trung gian các request từ client trước khi điều hướng đến server ứng dụng Fathom.

Trước tiên, các bạn cập nhật các package có sẵn lên phiên bản mới nhất và gọi lệnh apt để cài đặt Nginx.

$ sudo apt update
$ sudo apt install nginx

Sử dụng profile UFW “Nginx Full” để mở cổng 80443 (HTTP và HTTPS).

$ sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

Tiếp theo, các bạn tạo một file cấu hình cho Nginx, đừng quên đổi your_domain thành tên miền đã thiết lập cho Fathom server.

$ sudo nano /etc/nginx/sites-available/fathom.conf

Tạm thời, các thiết lập này chỉ áp dụng cho HTTP. Việc cấu hình SSL sẽ được Certbot đảm nhiệm ở bước kế tiếp. Phần còn lại của file cấu hình là các logging location và bổ sung một số header chuyển tiếp quan trọng (proxy forwarding header) trước khi điều hướng toàn bộ request đến đường dẫn http://localhost:8080 của server Fathom.

Sau khi đóng và lưu file, các bạn cho phép cấu hình hoạt động bằng cách tạo một liên kết trong thư mục /etc/nginx/sites-enabled.

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

Để kiểm tra lỗi cú pháp trong file, các bạn gọi lệnh nginx -t.

$ sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Tái khởi động service để áp dụng cấu hình.

$ sudo systemctl reload nginx

Giờ đây, các bạn đã có thể truy cập vào trang Fathom bên dưới với đường dẫn http://your_domain_here.

Giao diện trang đăng nhập
Giao diện trang đăng nhập

Như vậy, trang Fathom của bạn đã chạy thành công trên HTTP. Tiếp theo mình sẽ sử dụng Certbot để yêu cầu các chứng chỉ SSL của Let’s Encrypt nhằm bảo mật HTTPS cho server.

Bước 5: Cài đặt Certbot và cấu hình các chứng chỉ SSL

Nhờ Certbot và Let’s Encrypt, việc mã hóa SSL cho server ứng dụng Fathom có thể thực hiện bằng 2 lệnh dưới đây.

Đầu tiên, các bạn cài đặt Certbot và plugin Nginx.

$ sudo apt install certbot python3-certbot-nginx

Tiếp theo, các bạn chạy service certbot trong mode --nginx, đồng thời chỉ định tên miền đã được cấu hình trong Nginx server_name.

$ sudo certbot --nginx -d your_domain_here

Một yêu cầu nhập địa chỉ email cũng như chấp thuận các điều khoản dịch vụ của Let’s Encrypt sẽ được hiện thị.

Kế đến là yêu cầu đồng ý điều hướng toàn bộ lưu lượng HTTP sang HTTPS. Tuy không bắt buộc, tùy chọn này được đa phần cộng đồng khuyên dùng vì có độ an toàn cao hơn.

Sau khi hoàn tất các thiết lập, Let’s Encrypt sẽ xác nhận request và Certbot sẽ tải xuống chứng chỉ được yêu cầu.

Output
Congratulations! You have successfully enabled https://Fathom.vietnixtest.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=Fathom.vietnixtest.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/Fathom.vietnixtest.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/Fathom.vietnixtest.com/privkey.pem
   Your cert will expire on 2021-12-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Certbot sẽ tái khởi động Nginx để áp dụng các chứng chỉ cũng như cấu hình mới. Tải lại trang và bạn sẽ được điều hướng sang HTTPS nếu đã đồng ý tùy chọn bên trên.

Đến đây, website đã được bảo mật và có thể đăng nhập an toàn với các thông tin người dùng được thiết lập ở Bước 2.

Khi đăng nhập thành công, một biểu mẫu sẽ xuất hiện để các bạn thêm website đầu tiên cho Fathom theo dõi.

Biểu mẫu thêm website cho Fathom
Biểu mẫu thêm website cho Fathom

Sau khi thiết lập xong, bạn sẽ được chuyển đến trang dashboard (hiện tại không có nội dung) quản lý các website của bạn.

Dashboard Fathom
Dashboard Fathom

Đến đây, server đã thành công cài đặt và bảo mật ứng dụng Fathom Analytics.

Vietnix – Đơn vị cho thuê VPS tốc độ cao, phù hợp cho mọi nhu cầu

Khẳng định vị thế dẫn đầu trong lĩnh vực dịch vụ máy chủ suốt hơn 12 năm qua, Vietnix đã trở thành lựa chọn ưu tiên của hàng chục nghìn khách hàng cá nhân và doanh nghiệp. Vietnix tự hào mang đến giải pháp VPS vượt trội như VPS NVMe, VPS SSD, VPS GPU,… được xây dựng trên nền tảng công nghệ tiên tiến và phần cứng hiện đại, đảm bảo tốc độ nhanh chóng và sự ổn định tuyệt đối cho hệ thống của khách hàng.

Đặc biệt, hạ tầng hiện đại cùng công nghệ bảo mật hàng đầu của Vietnix sẽ bảo vệ dữ liệu của bạn an toàn trước mọi nguy cơ tấn công mạng. Với đội ngũ kỹ thuật viên giàu kinh nghiệm, luôn sẵn sàng hỗ trợ 24/7, Vietnix cam kết sẽ trở thành đối tác uy tín, đồng hành cùng bạn trong mọi dự án.

Thông tin liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Website: https://vietnix.vn/ 

Như vậy, bạn đã được hướng dẫn cách cài đặt Fathom Analytics trên Ubuntu 20.04, giúp bạn dễ dàng theo dõi và phân tích dữ liệu website một cách đơn giản, bảo mật và hiệu quả. Việc sử dụng Fathom Analytics không chỉ cung cấp thông tin chi tiết về lưu lượng truy cập mà còn rất dễ triển khai và cấu hình. Hy vọng bài viết này đã cung cấp những hướng dẫn hữu ích và rõ ràng để bạn áp dụng thành công.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi cuối tháng 3
Nhanh tay, số lượng có hạn!
17/03/2025 - 31/03/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG