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

14/06/2023
17 phút đọc
Lượt xem

Đánh giá

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

Việc thống kê và quản lí số liệu web luôn được xem là một vấn đề quan trọng. Tuy nhiên, đa phần các ứng dụng phân tích cũ đều khó hiểu, tốn thời gian và tệ nhất có khả năng làm lộ thông tin của người dùng website. Hiểu được điều ấy, Fathom Analytics đã ra đời để cung cấp một giải pháp cho tình trạng này. Để tìm hiểu cách cài đặt Fathom Analytics trên Ubuntu 20.04, mời các bạn cùng Vietnix đến với bài hướng dẫn sau đây.

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.

Phần mềm hỗ trợ phân tích số liệu web mã nguồn mở Fathom Analytics
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, Vietnix 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, Vietnix 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, Vietnix 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, Vietnix 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

Lư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, Vietnix 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 Vietnix 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.

Ngoài ra, nếu bạn đang có nhu cầu tìm kiếm một nhà cung cấp hositng, VPS uy tín và chất lượng để phát triển website thì có thể tham khảo Vietnix. Hiện tại Vietnix đang là nhà cung cấp hosting, VPS hàng đầu Vietnix với đa dạng các tính năng, cấu hình hiện đại giúp đảm bảo hiệu suất cao và độ ổn định tốt cho website.

Khi sử dụng dịch vụ tại đây bạn còn được bảo vệ bởi hệ thống chống tấn công DDoS chuyên nghiệp do chính Vietnix độc quyền phát triển, giúp nâng cao tính ổn định và bảo mật cho website.

Hiện tại, Vietnix đang có chương trình tặng bộ theme và plugin có giá trị lên đến 50.000.000VND giúp xây dựng website chuyên nghiệp, tối ưu cho SEO như: Rank Math SEO Pro, WP Rocket, Elementor Pro,… cho khách hàng đăng ký sử dụng dịch vụ.

Vietnix với hơn 11 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải Thương hiệu Việt Nam xuất sắc. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.

Liên hệ để được tư vấn chi tiết:

  • Đị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

Lời kết

Cảm ơn các bạn đã theo dõi bài viết. Vietnix hy vọng các bạn đã nắm được cách cài đặt Fathom Analytics với Nginx là reverse proxy và bảo mật ứng dụng bằng mã hóa SSL. Nếu có bất cứ thắc mắc hay phản hồi nào, các bạn có thể bình luận ngay bên dưới để Vietnix có thể trả lời sớm nhất có thể. Hẹn gặp lại các bạn trong những bài viết tiếp theo.

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

Chọn chủ đề :

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

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

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

ĐĂ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

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

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