Multitail là một công cụ dòng lệnh mạnh mẽ trên Linux giúp hiển thị nhiều file log hoặc output của nhiều lệnh khác nhau trên cùng một màn hình terminal, với khả năng chia nhỏ cửa sổ linh hoạt và các tính năng vượt trội so với lệnh tail truyền thống. Trong bài viết này, mình sẽ hướng dẫn bạn các bước cài đặt và sử dụng tính năng của multitail.
Những điểm chính
- Khái niệm lệnh multitail: Là công cụ dòng lệnh nâng cao cho phép theo dõi nhiều file log hoặc đầu ra của nhiều lệnh cùng lúc trên một cửa sổ terminal.
- Tại sao nên sử dụng multitail: Giúp tiết kiệm không gian màn hình, tăng hiệu quả giám sát và cải thiện khả năng đọc log nhờ các tính năng như tô màu và lọc.
- Các tính năng nổi bật: Bao gồm khả năng chia cửa sổ, tô màu theo mẫu, gộp nhiều file log vào một và lọc bỏ các dòng không quan trọng.
- Hướng dẫn cài đặt: Có thể cài đặt dễ dàng thông qua các trình quản lý gói phổ biến như apt-get, yum/dnf hoặc brew.
- Cách sử dụng lệnh MultiTail: Hỗ trợ chia màn hình theo chiều ngang hoặc dọc, tô màu log, gộp nhiều file và lọc bỏ các dòng nhiễu để phân tích hiệu quả.
- Ứng dụng thực tế: Là công cụ hữu ích cho quản trị viên hệ thống, lập trình viên và chuyên gia bảo mật để theo dõi và gỡ lỗi hệ thống hiệu quả.
- Giải đáp thắc mắc cho các vấn đề thường gặp như lỗi “Permission denied” hay sự cố không hiển thị màu sắc khi sử dụng.
Lệnh multitail là gì?
Multitail là một công cụ dòng lệnh giúp bạn theo dõi nhiều tệp log hoặc đầu ra của nhiều lệnh cùng lúc trên một cửa sổ terminal duy nhất. Công cụ này hoạt động như một phiên bản nâng cao của lệnh tail -f truyền thống, nhưng bổ sung nhiều tính năng chuyên biệt để giúp quản trị viên và nhà phát triển giám sát hệ thống một cách hiệu quả và trực quan hơn.
Cụ thể, các dòng dữ liệu sẽ được phân vùng và hiển thị song song với màu sắc, giúp việc giám sát và phân tích log trực quan, tiện lợi hơn nhiều so với tail truyền thống. Multitail còn hỗ trợ lọc theo kết quả, tô màu dựa trên biểu thức chính quy, hợp nhất nhiều file log vào một cửa sổ hoặc chia nhiều cột để so sánh dữ liệu, có thể thêm/xóa cửa sổ trực tiếp khi đang xem và tuỳ chỉnh nhiều định dạng hiển thị một cách linh hoạt.

Tại sao nên sử dụng multitail?
Việc sử dụng Multitail mang lại nhiều lợi ích quan trọng cho quản trị viên hệ thống và nhà phát triển:
- Tiết kiệm không gian màn hình: Thay vì phải mở nhiều cửa sổ terminal để theo dõi các file log khác nhau, bạn có thể xem tất cả trong một cửa sổ duy nhất.
- Tăng hiệu quả giám sát: Dễ dàng theo dõi mối tương quan giữa các sự kiện xảy ra đồng thời ở các file log khác nhau (ví dụ: log truy cập web và log lỗi của hệ thống).
- Cải thiện khả năng đọc: Tính năng tô màu theo các mẫu giúp bạn nhanh chóng nhận diện các dòng log quan trọng như lỗi, cảnh báo hoặc các địa chỉ IP cụ thể.
- Lọc nhiễu hiệu quả: Dễ dàng ẩn đi các dòng log không quan trọng để tập trung vào những thông tin bạn thực sự cần.
- Linh hoạt: Không chỉ theo dõi file, multitail còn có thể hiển thị output của bất kỳ lệnh nào khác (ví dụ: ping, top, netstat).

Các tính năng nổi bật của multitail
Multitail được trang bị nhiều tính năng giúp đơn giản hóa việc phân tích log:
- Chia cửa sổ: Có thể chia terminal thành nhiều cửa sổ con theo chiều dọc hoặc ngang để hiển thị các file khác nhau.
- Tô màu: Cho phép định nghĩa các màu sắc khác nhau cho các chuỗi văn bản hoặc mẫu regular expression. Ví dụ, tô đỏ tất cả các dòng có chứa từ “ERROR”.
- Gộp log: Có thể gộp nội dung từ nhiều file log vào chung một cửa sổ, tự động sắp xếp theo dấu thời gian (timestamp) để bạn có một cái nhìn tuần tự về các sự kiện.
- Lọc: Hỗ trợ lọc các dòng log dựa trên regular expression, cho phép bạn chỉ hiển thị hoặc ẩn đi những dòng mong muốn.
- Menu tương tác: Nhấn phím b để mở một menu cho phép bạn cuộn lại, tìm kiếm, thêm/xóa cửa sổ, và thay đổi các thiết lập mà không cần phải thoát chương trình.
- Hiển thị output của lệnh: Dễ dàng chạy và theo dõi output của các lệnh khác song song với việc xem log.

Hướng dẫn cài đặt Multitail cơ bản
multitail có sẵn trên hầu hết các kho phần mềm của Linux, bạn chạy các lệnh sau để cài đặt:
- Trên Debian/Ubuntu:
sudo apt-get update
sudo apt-get install multitail- Trên CentOS/RHEL/Fedora:
# Dùng yum cho phiên bản cũ
sudo yum install multitail
# Hoặc dnf trên phiên bản mới hơn
sudo dnf install multitail- Trên macOS (sử dụng Homebrew):
brew install multitailVí dụ cách sử dụng lệnh MultiTail
Bạn có thể chia màn hình terminal của mình theo chiều ngang hoặc chiều dọc.
Theo dõi 2 file log trong 2 cửa sổ (chia ngang)
Bạn chỉ cần liệt kê các file log mà mình muốn xem, MultiTail sẽ tự động chia màn hình.
# Theo dõi log truy cập của Nginx và log lỗi của PHP-FPM
multitail /var/log/nginx/access.log /var/log/php-fpm/error.log
Màn hình của bạn sẽ được chia thành hai nửa trên và dưới, mỗi nửa hiển thị nội dung của một file log đang được cập nhật trực tiếp.
Chia màn hình thành 2 cột dọc
Để có cái nhìn trực quan hơn, đặc biệt trên màn hình rộng, việc chia theo cột thường hiệu quả hơn. Bạn hãy sử dụng tùy chọn -s [số cột].
# Hiển thị 2 file log trong 2 cột riêng biệt
multitail -s 2 /var/log/messages /var/log/exim_mainlog
Màn hình sẽ được chia thành 2 cột dọc, giúp bạn dễ dàng so sánh các sự kiện xảy ra cùng lúc trên hai dịch vụ khác nhau.
Tô màu cho các dòng log
MultiTail có thể tự động tô màu các dòng log dựa trên các mẫu có sẵn (schemes) cho các dịch vụ phổ biến như httpd, syslog, postfix,… giúp các thông tin quan trọng như mã lỗi HTTP (404, 500), các từ khóa “error”, “warning” nổi bật lên.
# Áp dụng bảng màu cho log httpd (hoạt động tốt cho Nginx/Apache)
multitail -cS httpd /var/log/nginx/access.logBạn sẽ thấy các dòng log với mã trạng thái 2xx, 3xx, 4xx, 5xx có màu sắc khác nhau, giúp phát hiện lỗi nhanh chóng và trực quán.
Gộp nhiều file log thành một cửa sổ
Nếu ứng dụng của bạn chạy nhiều tiến trình worker, mỗi worker ghi ra một file log riêng, để xem toàn bộ hoạt động của ứng dụng theo đúng trình tự thời gian, bạn có thể sử dụng multitail có thể gộp tất cả chúng lại.
# Gộp 2 file log của worker vào cùng 1 cửa sổ, hiển thị xen kẽ theo thời gian
multitail -i /var/log/app/worker1.log -i /var/log/app/worker2.logLọc log nhiễu
Các file log thường chứa rất nhiều thông tin không liên quan, ví dụ như các dòng log của cron job chạy mỗi phút. Bạn có thể sử dụng multitail để lọc bỏ dễ dàng:
# Xem log hệ thống nhưng loại bỏ (exclude) các dòng chứa từ "CRON"
multitail /var/log/syslog -ev "CRON"-e (expression): Chỉ hiển thị các dòng khớp với biểu thức.-ev (exclude expression): Ẩn các dòng khớp với biểu thức.

Theo dõi output của một câu lệnh
Bạn cũng có thể dùng multitail để theo dõi output của các lệnh khác. Ví dụ, theo dõi kết quả ping trong một cửa sổ nhỏ ở góc màn hình:
ping google.com | multitail -j -tl "Ping to Google"
Ứng dụng thực tế của Multitail
Multitail là công cụ không thể thiếu trong các công việc hàng ngày của:
- Quản trị viên hệ thống: Theo dõi đồng thời file log hệ thống (
/var/log/syslog), log xác thực (/var/log/auth.log), và log của một dịch vụ cụ thể (ví dụ: maillog). - Lập trình viên: Theo dõi log của ứng dụng, log của web server (Apache, Nginx), và log của database (MySQL, PostgreSQL) trên cùng một màn hình để gỡ lỗi (debug) hiệu quả.
- Chuyên gia bảo mật: Theo dõi log tường lửa và log xác thực, tô màu đỏ các dòng có chứa “Failed password” hoặc “Connection refused” để phát hiện các hành vi đáng ngờ ngay lập tức.
- Kỹ sư DevOps: Giám sát output của các script triển khai tự động (CI/CD) hoặc các tiến trình chạy nền.
Câu hỏi thường gặp
multitail có thể theo dõi bao nhiêu file cùng lúc?
Về lý thuyết là không giới hạn, nhưng sẽ bị ảnh hưởng bởi tài nguyên hệ thống (CPU, bộ nhớ) và kích thước màn hình của bạn. Thực tế cho thấy multitail hoạt động rất tốt với 5-10 file.
Vì sao các biến không hiển thị màu sắc khi đọc log bằng multitail?
Nguyên nhân chính là vì file log là văn bản thuần (plain text), không chứa các mã điều khiển màu sắc (ANSI escape codes). Màu bạn thấy khi chạy ứng dụng trực tiếp chỉ hiển thị trên terminal. multitail chỉ có thể hiển thị màu nếu bạn tự định nghĩa các quy tắc tô màu (dựa trên regex) cho các mẫu văn bản cụ thể trong file cấu hình của nó, chứ không tự nhận diện được “biến”.
Vì sao xuất hiện lỗi “Permission denied” khi đọc file log?
Lỗi “Permission denied” xảy ra vì tài khoản người dùng bạn đang sử dụng không có quyền đọc file log đó. Nhiều file log, đặc biệt là log hệ thống trong /var/log, thường thuộc sở hữu của người dùng root hoặc một nhóm đặc biệt. Để giải quyết, bạn cần chạy lệnh với quyền quản trị bằng cách thêm sudo vào phía trước, ví dụ: sudo multitail /var/log/syslog.
Qua bài viết này, bạn đã nắm được cách cài đặt và sử dụng Multitail để theo dõi nhiều file log cùng lúc một cách hiệu quả trên Linux. Multitail giúp bạn quản lý và giám sát hoạt động của hệ thống dễ dàng hơn rất nhiều. Để tìm hiểu sâu hơn về các công cụ, mẹo và thủ thuật làm việc với hệ điều hành Linux, bạn có thể xem thêm một số bài viết dưới đây:




