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
Máy chủ vật lý
4 Lợi Ích Thiết Thực Mà Máy Chủ Vật Lý Mang Lại Cho Doanh Nghiệp
Trong thời đại chuyển đổi số mạnh mẽ như hiện nay, việc đầu tư vào [...]
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]
Cloud VPS
[2024] Kinh Nghiệm Chọn VPS Treo Game Không Lo Gián Đoạn
Với sự phát triển nhanh chóng của các trò chơi trực tuyến, việc duy trì [...]
Blog
Tuyển Đại lý dịch vụ Cloud – Chiết khấu đến 35%
Cloudzone tuyển đại lý dịch vụ Cloud, Data Center với lợi nhuận không giới hạn, [...]