Bạn có thường xuyên theo dõi sự biến động tốc độ mạng của mình hàng ngày, thậm chí hàng giờ? Với một Docker container đơn giản, bạn không chỉ có thể giám sát hiệu suất mạng một cách tự động mà còn xem xét dữ liệu này qua các biểu đồ trực quan chỉ với một cú nhấp chuột. Việc hiểu rõ tốc độ internet của mình là rất quan trọng để đảm bảo bạn luôn có trải nghiệm kết nối ổn định và tối ưu, đồng thời kịp thời phát hiện các vấn đề tiềm ẩn.
Tại sao cần giám sát hiệu suất internet liên tục?
Trong thời đại số, internet đã trở thành một phần không thể thiếu trong mọi hoạt động của chúng ta, từ công việc, học tập đến giải trí. Với dịch vụ internet cáp quang Gigabit mà tôi đang sử dụng từ AT&T, tôi kỳ vọng nhận được tốc độ download và upload khoảng 940 Mb/s. Nếu tốc độ thực tế thấp hơn đáng kể trong một khoảng thời gian dài, điều đó báo hiệu một vấn đề cần được khắc phục.
Vì cuộc sống của tôi phụ thuộc rất nhiều vào chất lượng dịch vụ internet, việc giám sát tốc độ internet tự động trở nên cực kỳ quan trọng. Phần mềm theo dõi hiệu suất mạng giúp tôi nắm bắt được tình trạng mạng của mình một cách liên tục.
Router Wi-Fi và đồng hồ đo tốc độ internet, biểu tượng cho việc giám sát hiệu suất mạng liên tục.
Nhiều nhà cung cấp dịch vụ internet (ISP) có chính sách bồi hoàn một phần phí nếu dịch vụ của bạn xuống dưới ngưỡng chất lượng tối thiểu trong một khoảng thời gian nhất định. Mặc dù AT&T có thể không áp dụng chính sách này cho các gói cáp quang, việc theo dõi vẫn rất đáng giá. Nếu không có nhật ký ghi lại tốc độ mạng thông thường và tốc độ hiện tại, bạn sẽ khó có cơ sở để yêu cầu bồi hoàn. Một hệ thống theo dõi mạng theo lịch trình, luôn chạy, sẽ cung cấp bằng chứng cần thiết.
Ngoài ra, việc giám sát mạng còn giúp tôi chẩn đoán xem có phần mềm nào đang tiêu tốn băng thông một cách bất thường hay không. Đôi khi, tôi có thể phát hiện một ứng dụng đang tải xuống hoặc tải lên một lượng dữ liệu lớn mà không được phép. Dù không thường xuyên xảy ra, nhưng nếu không có công cụ theo dõi, những sự chênh lệch này sẽ không bao giờ được nhận ra.
Hạn chế của việc kiểm tra tốc độ thủ công
Trước đây, tôi thường chạy các bài kiểm tra tốc độ mạng một cách ngẫu nhiên để xem liệu có vấn đề gì với mạng của mình hay không. Cách làm này không tệ nếu bạn chỉ cần “ảnh chụp nhanh” về tình trạng mạng tại một thời điểm cụ thể. Tuy nhiên, đây không phải là một phương pháp hiệu quả để theo dõi hiệu suất mạng về lâu dài.
Kết quả kiểm tra tốc độ internet Gigabit Fiber của AT&T, minh họa tốc độ download và upload.
Tất nhiên, bạn có thể chạy một bài kiểm tra tốc độ, ghi lại kết quả vào giấy, Excel, hoặc ứng dụng ghi chú. Nhưng cách này không hiệu quả và chắc chắn không mang lại cái nhìn tổng quan, có hệ thống. Tôi vẫn thỉnh thoảng kiểm tra tốc độ mạng ngẫu nhiên khi tải file cảm thấy chậm, nhưng đó chỉ là để có cái nhìn tức thời về hiệu suất mạng tại thời điểm đó, chứ không phải để theo dõi tốc độ mạng tự động một cách toàn diện.
Speedtest-Tracker: Giải pháp giám sát tự động toàn diện
Việc giám sát tốc độ mạng không đòi hỏi bạn phải có bằng cấp về khoa học máy tính. Tôi sử dụng Docker container có tên Speedtest-Tracker để theo dõi mạng của mình và tôi hoàn toàn hài lòng với nó.
Phần mềm này có thể được tự động hóa hoàn toàn với một cron job tích hợp sẵn trong Docker, và nó xử lý tất cả việc ghi nhật ký. Khi một bài kiểm tra được chạy, phần mềm sẽ ghi lại tốc độ download và upload, ping, jitter và latency (độ trễ).
Giao diện bảng điều khiển Speedtest-Tracker hiển thị biểu đồ tốc độ internet theo thời gian thực.
Speedtest-Tracker sẽ vẽ biểu đồ tất cả các yếu tố này trong vòng 24 giờ, một tuần, hoặc một tháng tùy thuộc vào bộ lọc bạn chọn. Tất cả các biểu đồ đều rất dễ đọc, và thậm chí còn có giá trị trung bình hiển thị cho từng trường để bạn biết hiệu suất mạng điển hình của mình mà không cần phải tự tính toán.
Việc cài đặt Speedtest-Tracker cũng đơn giản như bất kỳ Docker container nào khác. Tôi đã chọn cài đặt trên Portainer, nhưng có hướng dẫn cài đặt Speedtest-Tracker chính thức cho Docker Compose, Docker Run, Kubernetes, QNAP, Synology và Unraid.
Logo Docker trên bàn phím laptop, tượng trưng cho công nghệ container hóa được dùng trong Speedtest-Tracker.
Bạn có thể chọn kết nối Speedtest-Tracker với một cơ sở dữ liệu MySQL hoặc MariaDB hiện có, nhưng tôi đã chọn cơ sở dữ liệu SQLite tích hợp sẵn vì nó dễ thiết lập hơn.
Một chức năng sẽ giống nhau trên tất cả các phương pháp cài đặt là hẹn giờ cron. Tôi đặt cron job của mình là 0 * * * *, có nghĩa là nó chạy mỗi giờ. Bạn cũng có thể sử dụng 0 */6 * * * để nó chạy mỗi sáu giờ nếu bạn không muốn tốn quá nhiều dữ liệu để chạy các bài kiểm tra tốc độ hàng ngày.
Bạn có thể sử dụng một trong các bộ hẹn giờ đó, hoặc tự chỉ định lịch trình của riêng mình. Tôi sử dụng trang web Crontab Guru khi thiết kế lịch trình cron của mình, vì nó có giao diện đơn giản cũng như trang ví dụ hẹn giờ thường dùng để tôi có thể chọn chính xác lịch trình mà tôi muốn phần mềm của mình chạy.
Trang kết quả chi tiết của Speedtest-Tracker, hiển thị lịch sử các lần kiểm tra tốc độ mạng.
Speedtest-Tracker cũng hoạt động tốt khi được đặt sau một reverse proxy, nếu bạn muốn có thể truy cập nó từ bên ngoài mạng của mình. Thậm chí còn có một bảng điều khiển công khai nếu bạn muốn công bố tốc độ internet của mình cho mọi người.
Nếu bạn chưa giám sát tốc độ internet tự động, tôi đặc biệt khuyên bạn nên bắt đầu ngay. Việc này rất dễ thực hiện, cung cấp cho bạn nhiều thông tin hơn về mạng cục bộ của mình và có thể giúp bạn chẩn đoán các vấn đề mạng tiềm ẩn trước khi chúng trở thành những rắc rối lớn hơn.