Giám sát băng thông trên Linux

Tác giả NetworkEngineer, T.M.Hai 05, 2020, 10:46:27 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Giám sát băng thông trên Linux


1. Giới thiệu.

Bài viết này đề cập đến một số công cụ dòng lệnh Linux có thể được sử dụng để giám sát việc sử dụng mạng. Các công cụ này giám sát lưu lượng truyền qua các giao diện mạng và đo tốc độ dữ liệu hiện đang được truyền. Lưu lượng đến và đi được hiển thị riêng biệt.

Một số lệnh hiển thị băng thông được sử dụng bởi các tiến trình riêng lẻ. Điều này giúp bạn dễ dàng phát hiện một tiến trình đang sử dụng quá mức băng thông mạng.

Các công cụ có các cơ chế khác nhau để tạo báo cáo lưu lượng truy cập. Một số công cụ như nload đọc tệp tin "/proc/net/dev" để nhận thống kê lưu lượng, trong khi một số công cụ sử dụng thư viện pcap để nắm bắt tất cả các gói và sau đó tính toán tổng kích thước để ước tính lưu lượng.

Dưới đây là danh sách các lệnh được sắp xếp theo tính năng của chúng. Bây giờ chúng ta hãy xem xét từng lệnh và cách sử dụng chúng để giám sát việc sử dụng mạng.

2. Nload.

Nload là một công cụ dòng lệnh cho phép người dùng giám sát lưu lượng đến và đi một cách riêng biệt. Nó cũng vẽ ra một biểu đồ để chỉ ra điều tương tự, quy mô có thể được điều chỉnh. Dễ sử dụng và đơn giản, và không hỗ trợ nhiều tùy chọn. Vì vậy, nếu bạn chỉ cần xem nhanh tổng mức sử dụng băng thông mà không có chi tiết về các tiến trình riêng lẻ, thì nload sẽ rất hữu ích.

Mã nguồn [Chọn]
$ nload


Fedora và Ubuntu đã có nload  trong repo mặc định, người dùng CentOS cần lấy nload từ kho Epel.
Cài đặt nload trên Fedora hoặc Centos.
Mã nguồn [Chọn]
$ yum install nload -y
Cài đặt nload trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install nload

2. iftop.

Iftop đo dữ liệu chạy qua các kết nối socket riêng lẻ và nó hoạt động theo cách khác với Nload. Iftop sử dụng thư viện pcap để nắm bắt các gói di chuyển vào và ra khỏi bộ điều hợp mạng, sau đó tổng hợp kích thước và đếm để tìm ra tổng băng thông đang sử dụng.

Mặc dù iftop báo cáo băng thông được sử dụng bởi các kết nối riêng lẻ, nó không thể báo cáo tên hoặc id tiến trình liên quan đến kết nối socket cụ thể.

Nhưng dựa trên thư viện pcap, iftop có thể lọc lưu lượng và báo cáo việc sử dụng băng thông qua các kết nối máy chủ được chọn như được chỉ định bởi bộ lọc.

Mã nguồn [Chọn]
$ sudo iftop -n

Tùy chọn -n ngăn iftop phân giải địa chỉ IP thành tên máy chủ, điều này gây ra lưu lượng mạng bổ sung của chính nó.


Người dùng Ubuntu/Debian/Fedora lấy iftop từ repos mặc định. Người dùng CentOS lấy iftop từ Epel.

Cài đặt iftop trên Fedora hoặc Centos.
Mã nguồn [Chọn]
# yum install iftop -yCài đặt iftop trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install iftop

3. iptraf.

Iptraf là một màn hình IP Lan tương tác và nhiều màu sắc. Nó hiển thị các kết nối riêng lẻ và lượng dữ liệu lưu chuyển giữa các máy chủ. Dưới đây là ảnh chụp màn hình.
Mã nguồn [Chọn]
$ sudo iptraf


Cài đặt iptraf trên Centos với repo.
$ yum cài đặt iptraf

Cài đặt iptraf trên Fedora hoặc Centos với epel.
Mã nguồn [Chọn]
$ yum install iptraf-ng -yCài đặt iptraf trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install iptraf iptraf-ng

4. nethogs.

Nethogs là một công cụ nhỏ 'net top' hiển thị băng thông được sử dụng bởi các tiến trình riêng lẻ và sắp xếp danh sách đưa các tiến trình chuyên sâu nhất lên đầu.

Trong trường hợp băng thông đột ngột tăng đột biến, hãy nhanh chóng mở nethogs và tìm các tiến trình chịu trách nhiệm. Nethogs báo cáo PID, người dùng và đường dẫn của chương trình.

Mã nguồn [Chọn]
$ sudo nethogs


Người dùng Ubuntu, Debian, Fedora nhận được nethogs từ các kho lưu trữ mặc định. Người dùng CentOS cần Epel
Cài đặt nethogs trên Ubuntu hoặc Debian với repos mặc định.
Mã nguồn [Chọn]
$ sudo apt-get install nethogs
Cài đặt nethogs trên Fedora hoặc Centos từ epel.
Mã nguồn [Chọn]
$ sudo yum install nethogs -y

5. bmon.

Bmon (Bandwidth Monitor) là một công cụ tương tự như nload, hiển thị tải lưu lượng trên tất cả các giao diện mạng trên hệ thống. Đầu ra cũng bao gồm một đồ thị và một phần với các chi tiết về mức gói.


Người dùng Ubuntu, Debian và Fedora có thể cài đặt Bmon từ các kho lưu trữ mặc định. Người dùng CentOS cần thiết lập repoforge, vì nó không có sẵn trong Epel.
Cài đặt Bmon trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install bmon
Cài đặt Bmon trên Fedora hoặc Centos từ repoforge.
Mã nguồn [Chọn]
$ sudo yum install bmon

Bmon hỗ trợ nhiều tùy chọn và có khả năng tạo báo cáo ở định dạng html. Xem hướng dẫn trên trang chủ để biết thêm thông tin.6. slurm.

Slurm là một trình theo dõi tải mạng hiển thị thống kê thiết bị cùng với biểu đồ ascii. Nó hỗ trợ 3 kiểu đồ thị khác nhau, mỗi kiểu có thể được kích hoạt bằng các phím c, s và l. Đơn giản về tính năng, slurm không hiển thị thêm bất kỳ thông tin chi tiết nào về tải mạng.

Mã nguồn [Chọn]
$ slurm -s -i eth0


Cài đặt slurm trên Debian hoặc Ubuntu.
Mã nguồn [Chọn]
$ sudo apt-get install slurm
Cài đặt slurm trên Fedora hoặc Centos.
Mã nguồn [Chọn]
$ sudo yum install slurm -y

7. tcptrack.

Tcptrack tương tự như iftop và sử dụng thư viện pcap để nắm bắt các gói và tính toán các số liệu thống kê khác nhau như băng thông được sử dụng trong mỗi kết nối. Nó cũng hỗ trợ các bộ lọc pcap tiêu chuẩn có thể được sử dụng để theo dõi các kết nối cụ thể.


Trên Ubuntu, Debian và Fedora đã có tcptrack trong repos mặc định. Người dùng CentOS cần lấy nó từ RepoForge vì nó cũng không có sẵn trong Epel.

Cài đặt tcptrack trên Ubuntu, Debian.
Mã nguồn [Chọn]
$ sudo apt-get install tcptrack
Cài đặt tcptrack trên Fedora, centos từ kho repoforge.
Mã nguồn [Chọn]
$ sudo yum install tcptrack

8. Vnstat.

Vnstat hơi khác so với hầu hết các công cụ khác. Nó thực sự chạy một dịch vụ hoặc daemon nền và luôn ghi lại kích thước truyền dữ liệu. Tiếp theo, nó có thể được sử dụng để tạo một báo cáo về lịch sử sử dụng mạng.

Mã nguồn [Chọn]
$ service vnstat status* vnStat daemon is running
Chạy vnstat mà không có bất kỳ tùy chọn nào sẽ chỉ hiển thị tổng lượng dữ liệu truyền đã diễn ra kể từ ngày daemon đang chạy.
Mã nguồn [Chọn]
$ vnstat


Để theo dõi việc sử dụng băng thông trong thời gian thực, hãy sử dụng tùy chọn '-l' (chế độ trực tiếp). Sau đó, nó sẽ hiển thị tổng băng thông được sử dụng bởi dữ liệu đến và đi, nhưng theo cách rất chính xác mà không có bất kỳ chi tiết nội bộ nào về các kết nối hoặc quy trình máy chủ.
Mã nguồn [Chọn]
$ vnstat -l -i eth0

Vnstat giống như một công cụ để nhận các báo cáo lịch sử về lượng băng thông được sử dụng hàng ngày hoặc trong tháng qua. Nó không hoàn toàn là một công cụ để giám sát mạng trong thời gian thực. Vnstat hỗ trợ nhiều tùy chọn, bạn có thể tìm thấy thông tin chi tiết trong trang chủ.

Cài đặt vnstat trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install vnstat

Cài đặt vnstat trên Fedora hoặc Centos từ epel.
Mã nguồn [Chọn]
$ sudo yum install vnstat

9. bwm-ng.


Bwm-ng (Bandwidth Monitor Next Generation) là một trình giám sát tải mạng theo thời gian thực rất đơn giản khác, báo cáo tóm tắt về tốc độ dữ liệu đang được truyền vào và ra khỏi tất cả các giao diện mạng có sẵn trên hệ thống.
Mã nguồn [Chọn]
$ bwm-ng


Nếu kích thước bảng điều khiển đủ lớn, bwm-ng cũng có thể vẽ biểu đồ thanh cho lưu lượng truy cập bằng cách sử dụng chế độ đầu ra curses2.

Mã nguồn [Chọn]
$ bwm-ng -o curses2
Cài đặt Bwm-NG trên Fedora hoặc CentOS từ Epel.

Mã nguồn [Chọn]
$ sudo apt-get install bwm-ng
Cài đặt Bwm-NG trên Ubuntu hoặc Debian.
$ sudo apt-get install bwm-ng

10. cbm.

Một màn hình băng thông nhỏ đơn giản hiển thị lưu lượng thông qua các giao diện mạng. Không có tùy chọn nào khác, chỉ thống kê lưu lượng được hiển thị và cập nhật theo thời gian thực.


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install cbm
11. speedometer.Một công cụ nhỏ và đơn giản khác chỉ vẽ ra các biểu đồ đẹp mắt về lưu lượng truy cập đến và đi thông qua một giao diện nhất định.
Mã nguồn [Chọn]
$ speedometer -r eth0 -t eth0

Cài đặt speedometer trên Ubuntu hoặc Debian.
Mã nguồn [Chọn]
$ sudo apt-get install speedometer

12. Pktstat.

Pktstat hiển thị tất cả các kết nối đang hoạt động trong thời gian thực và tốc độ truyền dữ liệu qua chúng. Nó cũng hiển thị loại kết nối, tức là tcp hoặc udp và cũng có thông tin chi tiết về các yêu cầu http nếu có.
Mã nguồn [Chọn]
$ sudo pktstat -i eth0 -nt


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install pktstat
13. Netwatch.

Netwatch là một phần của bộ sưu tập các công cụ netdiag và nó cũng hiển thị các kết nối giữa máy chủ cục bộ và các máy chủ từ xa khác cũng như tốc độ truyền dữ liệu trên mỗi kết nối.

Mã nguồn [Chọn]
$ sudo netwatch -e eth0 -nt


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install netdiag
14. Trafshow.

Giống như netwatch và pktstat, trafshow báo cáo các kết nối đang hoạt động hiện tại, giao thức của chúng và tốc độ truyền dữ liệu trên mỗi kết nối. Nó có thể lọc ra các kết nối bằng bộ lọc loại pcap.

Chỉ giám sát các kết nối tcp

Mã nguồn [Chọn]
$ sudo trafshow -i eth0 tcp


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install netdiag
15. Netload.


Lệnh netload chỉ hiển thị một báo cáo nhỏ về tải lưu lượng hiện tại và tổng số byte được chuyển kể từ khi chương trình bắt đầu. Không có nhiều tính năng ở đó. Một phần của netdiag.

Mã nguồn [Chọn]
$ netload eth0


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install netdiag
16. ifstat.

Ifstat báo cáo băng thông mạng ở chế độ kiểu hàng loạt. Đầu ra có định dạng dễ dàng ghi nhật ký và phân tích cú pháp bằng các chương trình hoặc tiện ích khác.

Mã nguồn [Chọn]
$ ifstat -t -i eth0 0,5


Người dùng Ubuntu, Debian và Fedora có ifstat trong kho lưu trữ mặc định. Người dùng CentOS cần lấy ifstat từ Repoforge, vì nó không có trong Epel.
Cài đặt ifstat trên Ubuntu, Debian.
Mã nguồn [Chọn]
$ sudo apt-get install ifstat

Cài đặt ifstat trên Fedora, Centos (Repoforge)
Mã nguồn [Chọn]
$ sudo yum install ifstat

17. dstat.


Dstat là một công cụ đa năng (được viết bằng python) có thể theo dõi các thống kê hệ thống khác nhau và báo cáo chúng ở chế độ kiểu hàng loạt hoặc ghi dữ liệu vào tệp csv hoặc tệp tương tự. Ví dụ này cho thấy cách sử dụng dstat để báo cáo băng thông mạng.

Mã nguồn [Chọn]
$ dstat -nt


Cài đặt cbm trên các hệ điều hành Unix.
Mã nguồn [Chọn]
$ sudo apt-get install dstat
18. collectl.Collectl báo cáo thống kê hệ thống theo phong cách tương tự như dstat và giống như dstat, nó thu thập thống kê về nhiều tài nguyên hệ thống khác nhau như cpu, bộ nhớ, mạng...

Trên đây là một ví dụ đơn giản về cách sử dụng nó để báo cáo việc sử dụng mạng/băng thông.

$ collectl -sn -oT -i0,5

Cài đặt Collectl trên Ubuntu, Debian.
Mã nguồn [Chọn]
$ sudo apt-get install collectl

Cài đặt Collectl trên Fedora.
Mã nguồn [Chọn]
$ sudo yum install collectl

19. Kết luận.

Trên đây là một vài lệnh hữu ích để nhanh chóng kiểm tra băng thông mạng trên máy chủ Linux của bạn. Tuy nhiên, chúng cần người dùng đăng nhập vào máy chủ từ xa qua SSH. Ngoài ra, các công cụ giám sát dựa trên web cũng có thể được sử dụng cho cùng một nhiệm vụ.

Ntop và Darkstat là một số công cụ giám sát mạng dựa trên web cơ bản có sẵn cho Linux.

Ngoài những điều này, các công cụ giám sát cấp độ doanh nghiệp như Nagios cung cấp một loạt các tính năng để không chỉ giám sát một máy chủ mà còn toàn bộ cơ sở hạ tầng.