Kiểm tra lưu lượng mạng Linux bằng vnStat

Quản trị mạng – Muốn lấy được các số liệu thống kê mạng trên máy tính Linux không phải là một điều khó khăn. Với các công cụ như sar, Iperf và vnStat cho các phân phối gần đây,… người dùng có thể có được các số liệu đó qua một vài lệnh hữu dụng.

vnStat là một trong số các công cụ như vậy và đó chính là công cụ được chúng tôi giới thiệu trong bài. Công cụ ghi chép mạng phổ biến, vnStat, khá khác với các bộ đánh hơi mạng khác như Wireshark vì nó thu nhận các thống kê giao diện mạng vào và ra khỏi nhân kernel. Nói theo cách khác, Wireshark chỉ kiểm tra các gói đến và đi ra khỏi máy.

Thông thường vnStat là một ứng dụng sử dụng tiện ích dòng lệnh và điều này có thể gây khó khăn trong quá trình làm việc. Tuy nhiên trong bài này chúng tôi muốn giới thiệu cho các bạn một cách khác trong việc sử dụng vnStat, dựa trên các giao diện web tiện dụng, với trang bị mới này vnStat có thể tạo cho bạn các báo cáo hữu dụng từ các bản ghi của nó.

Bài này chúng tôi sẽ giới thiệu cụ thể cho các bạn cách sử dụng vnStat, sau đó là cách cài đặt giao diện web để xem dữ liệu, không chỉ đọc không. Bài viết này sẽ sử dụng các công cụ trong Ubuntu Desktop 10.10.

Cài đặt vnStat

Việc cài đặt vnStat hoàn toàn đơn giản dù bạn sử dụng phân phối nào. Bộ quản lý gói phân phối của bạn sẽ tìm ra gói phần mềm vnstat và cài đặt nó một cách nhanh chóng. Trong giao diện điều khiển Ubuntu, hãy chạy sudo apt-get install vnstat.

Không quan tâm đến thông báo lỗi "zero database" có thể xuất hiện: điều này là vì bạn chưa thiết lập nó. Để hoạt động, vnStat sẽ chạy một cron job (Cron Job, hiểu nôm na, là các nhiệm vụ được liên tục thực hiện sau một khoảng thời gian xác định) để đạt lấy các báo cáo từ giao diện mạng mà bạn chọn, sau đó lưu các thông tin đó vào file cơ sở dữ liệu. Tuy nhiên trước khi bắt đầu quá trình này, bạn cần thiết lập cơ sở dữ liệu.

Việc chạy lệnh vnstat sẽ làm xuất hiện thông báo lỗi với tất cả các thông tin bạn cần, gồm có các giao diện hiện có trên máy tính của bạn:

brian:$ vnstat
No database found, nothing to do. Use --help for help.

A new database can be created with the following command:
vnstat -u -i eth0

Replace 'eth0' with the interface that should be monitored.

The following interfaces are currently available:
lo eth0 vmnet1 vmnet8

Trong hiển thị trên, vnstat đã liệt kê card Ethernet của chúng tôi và hai giao diện Vmware được cấu hình trên máy tính. Để kiểm tra card chính, bạn có thể cưỡng bức vnStat và chạy lệnh như bên dưới, tuy nhiên để chạy được lệnh này bạn cần có đặc quyền quản trị để tạo file cơ sở dữ liệu:

sudo vnstat -u -i eth0

vnStat cần phải có thời gian để thu thập dữ liệu (cron job sẽ chạy 5 phút một lần), do đó bạn cần phải đợi đôi chúng. Trong trường hợp bạn không muốn chờ, hãy chạy lệnh:

vnstat -l

Tham số này sẽ báo cáo dữ liệu “live” 10 giây một lần cho tới khi bạn nhấn Ctrl+C để tạm dừng quá trình.

Đôi khi do một lỗi nào đó trong file cấu hình, vnStat có thể chạy không đúng trong chế độ background và bạn sẽ không nhận được các báo cáo dữ liệu từ các cron job của mình. May mắn là điều này không quá khó trong khắc phục. Sử dụng một trình soạn thảo văn bản ưa thích nào đó để mở file /etc/init.d/vnstat.

Nếu bạn tìm thấy dòng giống như:

DAEMON=/usr/sbin/$NAME

hãy thay đổi thành

DAEMON=/usr/bin/$NAME

để sửa lỗi. Giờ đây tất cả những gì bạn cần thực hiện là khởi chạy vnStat và khởi tạo lại cơ sở dữ liệu vnStat.

$ sudo vnstatd -d -s
$ sudo vnstat -u -i eth0

Sau 5 phút, vnStat sẽ bắt đầu đưa ra dữ liệu. Để xem nó, hãy đánh vnstat vào dòng lệnh. Dữ liệu được cấp bởi vnstat khá dễ hiểu:

Database updated: Thu Nov 18 13:32:00 2010

eth0 since 11/18/10

rx: 5.98 MiB tx: 3.41 MiB total: 9.39 MiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Nov '10 5.98 MiB | 3.41 MiB | 9.39 MiB | 0.05 kbit/s
------------------------+-------------+-------------+---------------
estimated 8 MiB | 5 MiB | 13 MiB |

daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 5.98 MiB | 3.41 MiB | 9.39 MiB | 1.58 kbit/s
------------------------+-------------+-------------+---------------
estimated 8 MiB | 5 MiB | 13 MiB |

Hai cột đầu tiên hiển thị các thông tin nhận và phát, tiếp đó là tổng thông lượng và tốc độ trung bình. Mặc dù vậy với các thông tin theo thời gian, giao diện đồ họa sẽ phù hợp hơn rất nhiều. Chính vậy chuyên gia phát triển PHP Bjorge Dijkstra đã phát triển một tiện ích hữu dụng để làm công việc đó.

Cài đặt giao diện người dùng

Để ứng dụng vnStat có thể chạy trên web, bạn cần một máy chủ LAMP hoàn chỉnh (với PHP và thư viện GD image) đang chạy trên hệ thống. Có thể bạn đang có một máy chủ web như vậy nhưng nếu chưa thì việc cài đặt LAMP trên Ubuntu khá đơn giản. Người dùng có thể sử dụng Tasksel để download, cài đặt và cấu hình toàn bộ các nhóm phần mềm. Ubuntu Desktop có thể không có tasksel, khi đó bạn có thể sử dụng dòng lệnh:

sudo apt-get install tasksel

Sau khi cài đặt xong tasksel, chỉ cần đánh sudo tasksel install lamp-server để bắt đầu quá trình cài đặt LAMP. Bạn sẽ thấy cửa sổ cài đặt bằng văn bản và các quá trình dẫn bạn thực hiện cài đặt.

Khi hệ thống LAMP được cài đặt hoàn tất, đánh "localhost" vào thanh bar của trình duyệt, bạn sẽ thấy một trang chào mừng đơn giản.

Đây là thứ cuối cùng cần thực hiện để LAMP có thể chạy mọi thứ bạn cần. Thư viện GD image sẽ được cài đặt trong các bước cài đặt LAMP, tuy nhiên các lớp PHP của bạn cũng cần được cài đặt. Chạy lệnh sau để đặt các lớp ở nơi bạn cần có: sudo apt-get install php5-gd.

Lúc này bạn có thể cài đặt GUI front-end. Trước hết, download và lưu file tarball vào một địa điểm nào đó trên máy tính. Sau đó nhập vào lệnh sau:

$ sudo tar -xzvf ~/Downloads/vnstat_php_frontend-1.5.1.tar.gz -C /var/www/
$ sudo mv /var/www/vnstat_php_frontend-1.5.1/ /var/www/vnstat/
$ sudo chown -R www-data.www-data /var/www/vnstat/

Dòng đầu tiên là lệnh uncompress cho các tarball, lệnh này sẽ chuyển tất cả các nội dung của file lưu trữ này vào thư mục /var/www/vnstat_php_frontend-1.5.1/. Đó là một dòng khá dài vì vậy chúng tôi sử dụng lệnh thứ hai để rút ngắn tên thư mục thành /var/www/vnstat/. Cuối cùng, lệnh thứ ba sẽ chuyển mọi thứ trong thư mục /var/www/vnstat/ sang "www-data", thư mục cần thiết để chạy PHP.

Lúc này có thể truy cập vào giao diện sử dụng bằng cách đánh http://localhost/vnstat, sau đó bạn sẽ thấy ngôn ngữ Hà Lan vì đây là ngôn ngữ mặc định của công cụ Dijkstra.

Để thay đổi ngôn ngữ, sử dụng trình soạn thảo văn bản nào đó để chỉnh sửa nội dung trong file /var/www/vnstat/config.php. Thay đổi dòng ngôn ngữ:

$language = 'nl';

thành

$language = 'en';

(Tiếng Anh)

Lưu file và refresh trang trong trình duyệt, khi đó ngôn ngữ mà bạn vừa thay đổi sẽ xuất hiện.

Do vnStat tiêu tốn rất ít tài nguyên nên việc chạy chương trình trong chế độ background sẽ không ảnh hưởng gì đến tổng thể về hiệu suất hệ thống.

Thứ Bảy, 18/12/2010 22:14
31 👨 3.577
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp