Tạo trang monitor Uptime Kuma bằng Render và Github miễn phí

Ở bài này chúng ta sẽ tận dụng Render miễn phí để tạo 1 trang monitor bằng Uptime Kuma ( về cơ bản khá tương tự UpTimeDoctor, nhưng hiệu quả check thực tế theo mình là kém hơn)

Về mặt lý thuyết, các dịch vụ monitor chuyên nghiệp, họ có rất nhiều cụm server ở rất nhiều khu vực khác nhau, cùng check vào 1 trang, hạn chế các sai số, dùng Uptime Kuma thì bạn chỉ dùng 1 server để check, trong trường hợp server monitor này …. sập, kết quả sẽ sai 😀 chưa kể do chỉ có 1 server, bạn không thể check được tốc độ trang của bạn khi truy cập từ nhiều khu vực ra làm sao, thậm chí nói khó nghe hơn, server monitor tự tạo của chúng ta, thường nó rất là ghẻ (đa phần tận dụng VPS miễn phí), không thể bằng các server chuyên dụng của các dịch vụ monitor được

Tổng thể hiệu quả sẽ kém hơn so với các dịch vụ monitor truyền thống, bù lại bạn sẽ có 1 trang monitor toàn quyền quản lý, có thể dùng nó thể tạo 1 trang monitor “đẹp mắt”, nhằm lòe người xem là trang của teo uptime tốt lắm =))

Cài đặt và quản trị Uptime Kuma rất đơn giản, do họ có bản chạy trên Docker, đúng nghĩa đen là cài đặt bằng đúng 1 dòng code 😀

Ban đầu mình tính cài đặt trên VM Oracle miễn phí, tuy thế sau khi tính toán 1 hồi, mình dùng một phương pháp cài đặt lằng nhằng hơn, là dùng Render để triển khai từ Github

Bước 1: Clone Uptime Kuma về tài khoản Github

  • Đầu tiên, bạn truy cập vào Github Repository của Uptime Kuma và thực hiện fork repository đó về tài khoản Github của mình (nếu chưa có tài khoản Github thì tạo 1 tài khoản)

2023-07-13_6-16-26

Trên repository của mình, bạn thể edit lại README.md để nhìn cho sạch sẽ một chút 😛

2023-07-13_6-20-29

Bước 2: Triển khai lên Render

2023-07-13_6-23-33

Cách hay nhất là bạn dùng trực tiếp tài khoản Github để tạo tài khoản Render, sẽ tiết kiệm thao tác kết nối 2 tài khoản với nhau

2023-07-13_6-28-36

Bên trong Dashboard

  • Chọn New -> Web Service

2023-07-13_6-30-34

  • Chọn Connect repository uptime-kuma 😀

2023-07-13_5-12-43

  • Name: đặt tên tùy ý
  • Region: không chắc Singapore có nhanh hơn khi truy cập từ Việt Nam không, nhưng cứ chọn ở gần nhất cho quen thuộc 😀
  • Instance Type: chọn Free
  • Các thứ khác để mặc định

Cuối cùng là ấn vào Create Web Service

2023-07-13_5-22-14

Bước deploy này thì cứ ngồi chờ Render chạy, trường hợp của mình thì mất khoảng 10 phút là cài đặt xong

Lúc này bạn có thể thấy link truy cập vào Web Service ở bên trên, góc trái

https://monitor-bibica-net.onrender.com/

3. Bypass free instance types will spin down with inactivity

Mặc định nếu sử dụng Web Services miễn phí, sau 15 phút không có truy cập, thì Render sẽ tự ngắt kết nối, khi có truy cập mới vào thì mới chạy lại

Giải pháp đơn giản nhất để vượt qua giới hạn này là chạy cron, cứ 1-2 phút gì đó tự truy cập vào trang chủ của Web Services là được

Cá nhân thì mình thấy dùng cronjob từ Cloudflare Worker là ổn nhất, dịch vụ của Cloudflare rất to, không lo sập :]]

Lo xa thì bạn có thể dùng thêm 1 dịch vụ cron khác như cron-job.org

2023-07-13_8-14-09

  • Set cơ bản 1 phút tự chạy 1 lần

4. Custom domain và tắt Auto-Deploy

  • Tại Web Service, ấn vào name, hoặc cái dấu 3 chấm nhỏ để đi tới tab Settings

2023-07-13_11-39-58

Bên trong bạn sẽ thấy phần Custom Domains và Auto-Deploy

2023-07-13_11-38-08

  • Auto-Deploy mặc định là Yes, ấn vào Edit và tắt tính năng này đi (chuyển về No)
  • Tạo 1 subdomain cho đẹp và để dễ nhớ

2023-07-13_8-25-17

Điền subdomain vào nó sẽ tự hiện ra thông số cấu hình, tạo 1 CNAME tới link trực tiếp của Web Service, Render hỗ trợ sẵn SSL, chúng ta không cần làm thêm gì cả 😀

Chú ý là nên tắt Auto-Deploy, không thì sau này khi bạn chỉnh sửa gì trên Github Repository Uptime Kuma, nó tự cập nhập, xóa hết thông tin cũ 

Hơi lằng nhằng, nhưng sau 4 bước, bạn đã có thể chạy Uptime Kuma thông qua Render bằng 1 subdomain cá nhân 😀

Lúc này bạn có thể vào link của Web Service, tạo 1 tài khoản quản trị, tạo các monitor và các trang status, mọi thứ rất đơn giản, gần như tương tự với các dịch vụ monitor khác

Uptime Kuma hỗ trợ rất nhiều định dạng monitor HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers, và rất nhiều định dạng thông báo Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP ….  thậm chí họ có hỗ trợ cả tiếng Việt :]]

2023-07-11_21-10-28

Tạm thì mình thấy tiếc nhất là kiểm tra tối thiểu 20s 😀 các dịch vụ monitor trả phí thì nhanh nhất cũng 15s check 1 lần, Uptime Kuma là bản tự set, đúng ra nên cho phép 1s check 1 lần mới đáng 😀

Sau vài ngày sử dụng thì mình thấy Uptime Kuma mạnh nhất không phải là vấn đề monitor uptime/download, do cơ chế check của nó, thậm chí có thể đọc được nội dung trang web, nên nhiều người dùng Uptime Kuma để check các trang bán hàng, cụ thể trên bestbuy có 1 sản phẩm hot quá, đang cháy hàng, out of stock, người dùng có để điền nội dung check out of stock vào, khi có hàng lại sẽ tự có thông báo, hoặc có thể xử lý thêm, kiểu check giá, khi giá có sự thay đổi thì thông báo

Ý tưởng theo mình là rất hay, tiếc là mình không có nhu cầu sử dụng cho mục đích này, nên cũng khá phí tính năng của Uptime Kuma 😀

Phần thông báo của Uptime Kuma thực sự rất mạnh, họ hỗ trợ rất nhiều dịch vụ, cứ ấn chọn theo ý thích là được, demo thì mình dùng thông báo qua Telegram

2023-07-13_9-01-04

Uptime Kuma phần hướng dẫn họ viết tốt lắm, gần như cứ làm theo hình là đủ

  • Chat với @BotFather
# tạo 1 bot
/newbot
# đặt tên cho bot (phải có _bot ở cuối)
monitor_bibica_net_bot

Nó sẽ hiện ra token API, copy vào Uptime Kuma

  • Ấn chat với bot của mình
/start

Trên Uptime Kuma ấn vào Auto Get chat ID, nó tự cập nhập vào là xong 😛

Lúc này bạn có thể test xem thông báo có gửi tới chưa là được

2023-07-13_9-07-11

Thử nghiệm thì thấy Uptime Kuma check khá tốt, mình thử check trang trên localhost, sau đó tắt máy đi, thì thấy sau tầm 3-5s là có thông báo từ Telegram VPS sập, thử bật VPS lên lại thì sau 2-3s là nhận được thông báo luôn 😀

2023-07-15_10-17-30

Update: sau ít ngày sử dụng thì mình cũng hơi lú các sai số của Uptime Kuma trên Render , chuyện trang bạn sập, Uptime Kuma cho kết quả khá tốt, mỗi cái thi thoảng trang bạn vẫn bình thường, nhưng Uptime Kuma lại gửi thông báo báo là đang sập

Cụ thể nếu mình check qua các port TCP, nó bị timeout, check qua https thông thường thì không gặp vấn đề gì cả, có điều check 2 server khác nhau đều timeout cùng 1 thời điểm thì khả năng khá cao là lỗi do phía Render 😀

Tạm thì khác là cọc với cách vận hành của combo Render + Uptime Kuma

2023-07-16_23-11-38

Uptime Kuma không giới hạn thời gian lưu trữ log, nhưng điểm khó hiểu là bên trong quản trị, con số bạn có thể ấn theo dõi chỉ là 1w (1 tuần)

Không chắc có phải do mình vừa cài vào, nên Uptime Kuma chưa hiển thị thêm thời gian không 😀 chứ như này thì khá là hãi :]]

Sau khoảng 3 ngày sử dụng thì mình thấy bạn hoàn toàn có thể chạy Uptime Kuma trên gói miễn phí của Render được thật

2023-07-16_22-56-27

Ở điều kiện check tốc độ nhanh nhất 20s / 1 lần, trên 7 trang, chỉ dùng khoảng 2GB băng thông, tính ra con số hàng tháng sẽ < 30GB, 100GB miễn phí của Render khá thoải mái để sử dụng

Bypass Heartbeat Interval 20s

2023-07-18_0-51-02

Mặc định hệ thống của Uptime Kuma chạy Heartbeat Interval và Heartbeat Retry Interval là 60 giây, hạ xuống tối đa là 20s, theo mình nếu monitor các trang web thuần túy 20s là 1 giá trị rất phù hợp

Tuy thế mình đang muốn thử một cách triệt để cho con hàng Render và Oracle VM.Standard.A1.Flex, nên cố hạ Heartbeat Interval và Heartbeat Retry Interval xuống 1 giây (theo tham số này thì nếu check lần đầu không được, sau 1s nó sẽ check lại, vẫn không được nữa sẽ báo tạch :D)  Con số khá là cực đoan, vì rất dễ check nhầm là trang bị sập 😀

Cách làm thì cũng khá củ chuối là bạn vào Setting -> Backup

2023-07-18_1-04-10

Export data về, mở file .json đó ra, sửa các giá trị interval và retryInterval về 1

"interval": 1,
"retryInterval": 1,

Sau đó import ngược data này lên, rồi bật chạy lại là được 😀

Lượng thông tin lúc này ghi xuống x20 lần so với bình thường, mình cũng không chắc Render đủ băng thông và tài nguyên để chạy không nữa :]]

Kết luận

Cài đặt Uptime Kuma thông thường trên VPS bạn sẽ phải tốn thêm tài nguyên, sử dụng trên hệ thống của Render, ưu điểm lớn nhất của nó là hoàn toàn miễn phí, thường thì hệ thống của Render sẽ ổn định hơn các dịch vụ VPS miễn phí khác, dùng nó để monitor thì hợp lý hơn, mỗi cái tạm mình chưa rõ lý do sao cách đây ít ngày check lại bị timeout nữa 😀

Sau vài tháng nữa sẽ cập nhập lại về hiệu quả sử dụng thực tế combo Uptime Kuma - Render

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback.
Notes: However, those deemed to be spam or solely promotional will be deleted.

You can create a Gravatar account, add avatar, then use that email to comment here, your account will have a more beautiful Avatar, easier to recognize with other members.

Please use real emails, you can receive notifications when comments are replied