Bài viết này nói về những chức năng cơ bản của công cụ journalctl cùng với những câu lệnh đi kèm nó. Bạn có thể dùng những câu lệnh này trong quá trình sửa lỗi của máy Desktop cũng như server chạy Linux. Sau đây là hướng dẫn dùng journalctl để đọc và phân tích Systemd Logs với những ví dụ khác nhau
Mục lục
- Giới thiệu
- journald – systemd journal daemon
- Sử dụng journalctl để đọc và phân tích Systemd Logs
- Câu lệnh journald cơ bản
- Câu lệnh journald theo múi giờ
- Chỉ xem errors, warnings, vv
- Xem journal logs cho một lần boot cụ thể
- Xem journal logs cho một thời gian, khoảng thời gian cụ thể
- Xem journal logs về phần nhân (Kernel)
- Xem journal logs của một serivce, PID
- Xem journal logs của một user,group
- Xem journal logs của một thực thi
Giới thiệu
Nhiều quan điểm cho rằng systemd không thực sự tốt, nó làm cho hệ thống trở nên nặng nề và đây vẫn là một vấn đề còn luôn gây ra sự tranh cãi. Nhưng bạn không thể phủ nhận rằng nó cũng cấp một loạt công cụ để quản lí cũng như gỡ rối trên hệ thống. Lấy ví dụ hệ thống của bạn bị hỏng phần GUI, hay như bạn có thể lẫn lộn giữa boot và GRUB. Nếu kịch bản đó xảy ra, bạn có thể boot từ chế độ LIVE, mount phân vùng Linux và đọc logs của Systemd để tìm cách xử lí vấn đề này
Systemd có ba thành phần chính như sau
- systemd: Quản lí hệ thống và dịch vụ cho hệ điều hành Linux
- systemctl: Câu lệnh để kiểm soát tình trạng của systemd và quản lí các dịch vụ
- systemd-analyze: Cung cấp các thống kê về hiệu năng khởi động của hệ thống cũng như kiểm tra các trạng thái còn lại và thu thập thông tin từ hệ thống và bộ quản lí dịch vụ
Ngoài ba thành phần trên, có các dịch vụ khác mà systemd cung cấp như journald, logind, networkd. Trong bài viết này chúng ta sẽ nói về journald
journald – systemd journal daemon
Lợi ích của việc ghi lại các sự kiện một cách tập trung là, các vấn đề trong hệ thống có rất nhiều. Và chúng được lưu dưới dạng mã nhị phân, túc là bạn có thể phiên dịch nó ra text, JSON objects hoặc rất nhiều dạng khác mà bạn muốn. Vì vậy, cực kì đơn giản để có thể tìm ra một sự kiện nhỏ dựa vào thời gian của Logs
Nhớ rằng các files log mà journald thu thật được có hàng nghìn dòng và nó được cập nhật mỗi khi có một sự kiện nhỏ nào xảy ra, vì vậy nếu bạn có một hệ thống sử dụng đã lâu, kích cỡ của files đó có thể lên tới hàng GB. Vì vậy chúng ta nên biết những câu lệnh cơ bản để có thể dễ dàng tìm hiểu về các vấn đề của hệ thống hơn
File cấu hình của journald
File cấu hình của journald được lưu ở đường dẫn /etc/systemd/journald.conf. Nó rất nhiều tham số để cho chúng ta biết quá trình logging diễn ra như thế nào, bạn không nên chỉnh sửa files này trừ khi bạn biết chắc mình đang làm việc gì
Nơi journald lưu trữ các files log
journald lưu trữ các files log ở dạng mã nhị phân, nó được lưu trữ ở đường dẫn /var/log/journal. Đừng dùng công cụ nano, cat hay vi để xem hay sửa những files này vì nó đang ở dạng nhị phân và sẽ không được hiển thị đúng cách
Sử dụng journalctl để đọc và phân tích Systemd Logs
Câu lệnh journald cơ bản
Câu lệnh cơ bản để đọc logs của journal daemon là
journalctl
Bạn sẽ được cung cấp toàn bộ những mục như lỗi, cảnh báo, vv từ tất cả các ứng dụng và tiến trình. Nó sẽ xuất ra danh sách từ những log cũ nhất phía trên và dòng logs mới nhất ở dưới cuối. bạn có thể bấm Enter hoặc phím PAGE UP và PAGE DOWN để cuộn. Bấm phím q để thoát
Câu lệnh journald theo múi giờ
Mặc định, journalctl hiển thị log time theo múi giờ hiện tại của bạn. Tuy nhiên, bạn có thể dễ dàng yêu cầu chương trình hiển thị theo múi giờ bạn chỉ định, ví dụ để xem ở múi giờ UTC, dùng câu lệnh dưới đây
journalctl --utc
Chỉ xem errors, warnings, vv
The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command.
Logs mà hệ thống xuất ra có những mức ưu tiên khác nhau. Nhiều Logs chỉ là cảnh báo bạn có thể không cần quan tâm, nhưng một số logs là mỗi nghiêm trọng. Bạn chỉ cần lọc ra những lỗi, không phải cảnh báo. Điều này hoàn toàn có thể khi sử dụng câu lệnh dưới
journalctl -p 0
Error Code như sau
- 0: emergency
- 1: alerts
- 2: critical
- 3: errors
- 4: warning
- 5: notice
- 6: info
- 7: debug
Xem journal logs cho một lần boot cụ thể
Để xem danh sách các lần khởi động kèm thời gian, bạn gõ lệnh sau
journalctl --list-boots
- Cột đầu tiên hiển thị số thứ tự Boot Track Number của lần Boot
- Cột thứ hai là Boot ID
- Cột tiếp theo là về thời gian boot
Để xem journal logs cho một lần boot cụ thể. Bạn thực hiện lệnh sau
journalctl -b -Boot Track Number journalctl -b Boot ID
Bạn có thê rthêm tham số -x để được giải thích về từng lỗi mà đang gặp phải. Ví dụ
journalctl -xb -p 3
Xem journal logs cho một thời gian, khoảng thời gian cụ thể
Bạn có thể dùng tham số --since
với các giá tị như “yesterday”, “today”, “tomorrow”, “now”.
Hoặc với khoảng thời gian cụ thể theo định dạng “YYYY-MM-DD HH:MM:SS”
Một số ví dụ
journalctl --since "2020-12-04 06:00:00" journalctl --since "2020-12-03" --until "2020-12-05 03:00:00" journalctl --since yesterday journalctl --since 09:00 --until "1 hour ago"
Xem journal logs về phần nhân (Kernel)
Các bạn sử dụng câu lệnh với tham số -k
journalctl -k
Xem journal logs của một serivce, PID
Các bạn sử dụng câu lệnh với tham số -u
journalctl -u NetworkManager.service
Nếu bạn chưa nắm được tên service, bạn có thể sử dụng câu lệnh sau để tìm
systemctl list-units --type=service
Xem journal logs của một user,group
Các bạn dùng câu lệnh id -u để tìm ID của user/group đó
id -u debugpoint
Sau đó dùng tham số _UID cho User và _GID cho Group để xem
journalctl _UID=1000 –since today
Xem journal logs của một thực thi
Bạn sử dụng câu lệnh
journalctl /usr/bin/gnome-shell --since today
Blog VPS GPU
Giá thuê VPS GPU treo game 2023: Hướng dẫn thuê và cài đặt chi tiết
Bạn là một game thủ đam mê, luôn tìm kiếm trải nghiệm chơi game tối [...]
Blog Cloud VPS VPS GPU
Vì sao nên thuê VPS GPU tại Cloudzone
Trong vô số những nhà cung cấp dịch vụ thuê VPS GPU trên thị trường, [...]
Blog Cloud VPS VPS GPU
Giải đáp những thắc mắc về dịch vụ thuê VPS có GPU
Bạn đang tìm kiếm một giải pháp VPS mạnh mẽ và hiệu suất cao để [...]
Blog Cloud VPS
Bảng giá thuê VPS GPU mới nhất năm 2023
Trong thế giới công nghệ ngày nay, VPS (Virtual Private Server) có GPU đóng vai [...]
Cloud VPS Blog
VPS GPU: Đỉnh cao hiệu suất với lợi ích & ứng dụng vượt trội
Trong thế giới công nghệ đầy cạnh tranh hiện nay, việc nâng cao hiệu suất [...]
Cloud VPS
VPS có GPU và sức mạnh xử lý đồ họa, phân tích dữ liệu của nó
VPS có GPU là lựa chọn tuyệt vời cho việc xử lý đồ họa cao [...]