journalctl command in linux

Tìm hiểu Lệnh journalctl trong Linux: Hướng dẫn chi tiết từ A đến Z

Bạn là một người yêu thích Linux và muốn khai thác tối đa sức mạnh của hệ điều hành này? Bạn muốn tìm hiểu cách theo dõi và gỡ lỗi hệ thống một cách hiệu quả? Nếu vậy, lệnh journalctl chính là công cụ bạn cần!

Trong bài viết này, chúng ta sẽ cùng nhau khám phá journalctl - một lệnh mạnh mẽ được sử dụng để truy vấn và xem nhật ký (log) của hệ thống Linux. Chúng ta sẽ tìm hiểu cách journalctl hoạt động, các tùy chọn phổ biến và cách áp dụng nó vào các tình huống thực tế để giải quyết vấn đề một cách nhanh chóng và hiệu quả.

journalctl là gì và tại sao nó lại quan trọng?

journalctl là một phần của systemd - một hệ thống quản lý hệ thống phổ biến trong nhiều bản phân phối Linux hiện đại. Nó cho phép bạn truy cập vào nhật ký hệ thống được thu thập bởi journald - một dịch vụ ghi nhật ký của systemd. Thay vì dựa vào các tệp văn bản truyền thống như syslog, journald lưu trữ nhật ký dưới dạng dữ liệu nhị phân có cấu trúc, mang lại nhiều lợi ích vượt trội.

Tại sao journalctl lại quan trọng?

  • Khả năng tìm kiếm mạnh mẽ: journalctl cho phép bạn lọc nhật ký theo nhiều tiêu chí khác nhau, bao gồm thời gian, mức độ nghiêm trọng, tiến trình, người dùng, và nhiều hơn nữa.
  • Dữ liệu có cấu trúc: Nhật ký được lưu trữ dưới dạng dữ liệu có cấu trúc, giúp bạn dễ dàng phân tích và trích xuất thông tin quan trọng.
  • Tích hợp chặt chẽ với systemd: journalctl được tích hợp chặt chẽ với systemd, cho phép bạn theo dõi và gỡ lỗi các dịch vụ và đơn vị systemd một cách dễ dàng.
  • Khả năng tùy biến cao: journalctl cung cấp nhiều tùy chọn để bạn tùy chỉnh cách hiển thị và truy vấn nhật ký.

Cú pháp cơ bản của lệnh journalctl

Cú pháp cơ bản của lệnh journalctl rất đơn giản:

journalctl [TÙY CHỌN]

Trong đó [TÙY CHỌN] là các tùy chọn bạn muốn sử dụng để lọc và định dạng kết quả. Chúng ta sẽ khám phá các tùy chọn phổ biến nhất ngay sau đây.

Các tùy chọn journalctl phổ biến nhất

journalctl cung cấp rất nhiều tùy chọn, nhưng chúng ta sẽ tập trung vào những tùy chọn quan trọng nhất và thường được sử dụng nhất:

  • -u, --unit=UNIT: Lọc nhật ký theo đơn vị systemd (ví dụ: ssh.service, nginx.service). Ví dụ: journalctl -u nginx.service sẽ hiển thị nhật ký của dịch vụ Nginx.
  • -k, --dmesg: Hiển thị nhật ký kernel (tương đương với lệnh dmesg).
  • -f, --follow: Theo dõi nhật ký theo thời gian thực, hiển thị các mục nhật ký mới khi chúng được ghi. Ví dụ: journalctl -f sẽ hiển thị nhật ký hệ thống liên tục.
  • -p, --priority=PRIORITY: Lọc nhật ký theo mức độ nghiêm trọng (priority). Các mức độ nghiêm trọng bao gồm: emerg, alert, crit, err, warning, notice, info, debug. Ví dụ: journalctl -p err sẽ hiển thị tất cả các lỗi trong nhật ký.
  • --since=DATE, --until=DATE: Lọc nhật ký theo thời gian. DATE có thể là một ngày cụ thể, một thời gian tương đối (ví dụ: yesterday, 1 hour ago), hoặc một kết hợp của cả hai. Ví dụ: journalctl --since="2023-10-27" --until="2023-10-28" sẽ hiển thị nhật ký từ ngày 27 đến ngày 28 tháng 10 năm 2023.
  • -n, --lines=NUMBER: Hiển thị NUMBER dòng cuối cùng của nhật ký. Ví dụ: journalctl -n 20 sẽ hiển thị 20 dòng cuối cùng của nhật ký.
  • --disk-usage: Hiển thị dung lượng đĩa mà journald đang sử dụng.
  • --vacuum-size=SIZE: Giới hạn dung lượng đĩa mà journald có thể sử dụng. Ví dụ: journalctl --vacuum-size=1G sẽ giới hạn dung lượng sử dụng của journald là 1GB.

Ví dụ thực tế về cách sử dụng journalctl

Bây giờ, chúng ta hãy xem một vài ví dụ thực tế về cách sử dụng journalctl để giải quyết các vấn đề thường gặp:

  • Tìm lỗi khởi động hệ thống: journalctl -b -p err (-b hiển thị nhật ký từ lần khởi động hiện tại).
  • Theo dõi nhật ký của dịch vụ SSH: journalctl -u ssh.service -f
  • Xem nhật ký từ 2 giờ trước: journalctl --since "2 hours ago"
  • Tìm kiếm một chuỗi cụ thể trong nhật ký: journalctl | grep "authentication failure"

So sánh journalctl với syslog

Trước khi journalctl trở nên phổ biến, syslog là hệ thống ghi nhật ký tiêu chuẩn trong Linux. Dưới đây là một bảng so sánh giữa hai hệ thống này:

Tính năng journalctl (systemd-journald) syslog (ví dụ: rsyslog)
Định dạng lưu trữ Dữ liệu nhị phân có cấu trúc Tệp văn bản
Khả năng tìm kiếm Tìm kiếm nâng cao theo nhiều tiêu chí Tìm kiếm dựa trên văn bản (ví dụ: grep)
Quản lý dung lượng Tự động quản lý dung lượng, giới hạn kích thước Cần cấu hình thủ công để xoay vòng và nén nhật ký
Tích hợp với systemd Tích hợp chặt chẽ, dễ dàng theo dõi dịch vụ Không tích hợp trực tiếp, cần cấu hình thêm
Hiệu suất Hiệu suất cao hơn trong việc ghi và truy vấn nhật ký Có thể chậm hơn khi xử lý lượng lớn nhật ký

Mặc dù syslog vẫn được sử dụng rộng rãi, journalctl ngày càng trở nên phổ biến hơn nhờ những ưu điểm vượt trội của nó.

Mẹo và thủ thuật khi sử dụng journalctl

  • Sử dụng sudo khi cần thiết: Một số nhật ký hệ thống có thể yêu cầu quyền root để xem.
  • Kết hợp các tùy chọn: Bạn có thể kết hợp nhiều tùy chọn để lọc nhật ký một cách chính xác. Ví dụ: journalctl -u nginx.service --since "1 hour ago" -p err.
  • Sử dụng less để duyệt nhật ký: journalctl | less cho phép bạn di chuyển lên xuống, tìm kiếm và đánh dấu trong nhật ký.
  • Cấu hình journald: Bạn có thể cấu hình journald thông qua tệp /etc/systemd/journald.conf để điều chỉnh các tham số như dung lượng lưu trữ, thời gian lưu giữ, và hơn thế nữa.

FAQ (Câu hỏi thường gặp)

Làm cách nào để xóa nhật ký cũ?

Bạn có thể sử dụng lệnh journalctl --vacuum-time=TIME hoặc journalctl --vacuum-size=SIZE để xóa nhật ký cũ dựa trên thời gian hoặc dung lượng.

Làm cách nào để cấu hình journald để lưu trữ nhật ký vĩnh viễn?

Trong tệp /etc/systemd/journald.conf, hãy đặt Storage=persistent. Sau đó, tạo thư mục /var/log/journal bằng lệnh sudo mkdir /var/log/journalsudo systemd-tmpfiles --create --prefix /var/log/journal. Khởi động lại dịch vụ systemd-journald để áp dụng thay đổi.

Làm cách nào để gửi nhật ký đến một máy chủ syslog từ xa?

Bạn có thể cấu hình rsyslog để thu thập nhật ký từ journald và chuyển tiếp chúng đến một máy chủ syslog từ xa. Tham khảo tài liệu của rsyslog để biết thêm chi tiết.

Kết luận

journalctl là một công cụ mạnh mẽ và linh hoạt để truy vấn và phân tích nhật ký hệ thống trong Linux. Bằng cách nắm vững các tùy chọn và kỹ thuật được trình bày trong bài viết này, bạn có thể sử dụng journalctl để theo dõi, gỡ lỗi và giải quyết các vấn đề một cách hiệu quả hơn. Hy vọng rằng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan toàn diện về journalctl và giúp bạn tự tin hơn trong việc sử dụng công cụ này.

Chúc bạn thành công trên hành trình khám phá Linux!

Last Updated : 21/08/2025