Làm quen với nhật ký hệ thống trong Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Làm quen với nhật ký hệ thống trong Linux

Chia sẻ kiến thức 08/03/2022

Lưu nhật ký hệ thống (system logging) là cách đáng tin cậy nhất để biết hoạt động nào đã được thực hiện trên hệ thống Linux của bạn.

Lưu nhật ký hệ thống (system logging) là cách đáng tin cậy nhất để biết hoạt động nào đã được thực hiện trên hệ thống Linux của bạn.

Nhật ký hệ thống (system logs) trong Linux cung cấp thông tin về các hoạt động cốt lõi trên PC hoặc cơ sở hạ tầng máy chủ của bạn. Chúng rất quan trọng để giữ cho hệ thống của bạn ổn định và an toàn. Nhật ký hệ thống cũng giúp bạn có thể kiểm tra các hoạt động khác nhau đã diễn ra trong quá khứ.

Hướng dẫn này giới thiệu cho bạn hệ thống nhật ký (logging system) trong Linux. Tất cả các hoạt động chính được thực hiện bởi các ứng dụng và dịch vụ hệ thống cốt lõi được ghi lại dưới dạng nhật ký (logs) và trung tâm của nó là một hệ thống được gọi là Syslog.

Tại sao Nhật ký Hệ thống lại quan trọng?

Hãy tưởng tượng rằng PC Linux của bạn gần đây đang gặp lỗi khởi động hoặc bạn nghi ngờ rằng ai đó đang cố gắng đăng nhập vào hệ thống. Các sự kiện này đều có thể được dễ dàng kiểm tra khi hệ thống của bạn theo dõi các hoạt động đó dưới dạng nhật ký.

Trong Linux, nhật ký hệ thống là các bản ghi con người có thể đọc được về các hoạt động cốt lõi của hệ thống được thực hiện bởi các dịch vụ, daemon và ứng dụng hệ thống. Một số hoạt động quan trọng được ghi trên máy Linux bao gồm đăng nhập của người dùng và lỗi đăng nhập, khởi động hệ điều hành, lỗi hệ thống, v.v.

Linux có một dịch vụ chuyên dụng được gọi là Syslog chịu trách nhiệm tạo nhật ký thông qua System Logger. Syslog bao gồm một số thành phần như Định dạng thông báo Syslog, Giao thức Syslog và Syslog Daemon: thường được biết đến với tên gọi syslogd hoặc rsyslogd trong các phiên bản Linux mới hơn.

Thư mục /var/log lưu trữ hầu hết các bản ghi trên hệ thống Linux. Thư mục /var chủ yếu chứa các tệp và thư mục có dữ liệu thay đổi thường xuyên. Không có định dạng chuẩn cho nhật ký nhưng tối thiểu, nhật ký phải chứa dấu thời gian (timestamp) và chi tiết về hoạt động đang được ghi.

Tệp danh sách được quản lý bởi nhật ký hệ thống

Tất cả nhật ký chung trên hệ thống của bạn được lưu trữ trong tệp /var/log/syslog trên các bản phân phối Linux dựa trên Debian. Các bản phân phối khác sử dụng tệp /var/log/messages để lưu trữ nhật ký.

Lưu ý : Các bản phân phối Linux khác nhau có thể sử dụng các tệp khác nhau để ghi các thông báo cụ thể. Ví dụ: trên các bản phân phối Linux dựa trên Debian, tệp /var/log/auth.log chứa nhật ký xác thực, trong khi hệ thống RedHat sử dụng tệp /var/log/secure để lưu trữ các nhật ký đó.

Để tìm hiểu thêm về tất cả các tệp chịu trách nhiệm lưu trữ nhật ký, bạn có thể xem thư mục /etc/rsyslog.d, nơi chứa các tệp cấu hình Syslog quan trọng. Ví dụ: để liệt kê các tệp nhật ký tiêu chuẩn, bạn có thể xem tệp /etc/rsyslog.d/50-default.conf.

 cat /etc/rsyslog.d/50-default.conf

Tệp này hiển thị cho bạn tên của các ứng dụng hệ thống và các tệp nhật ký tương ứng được liên kết với chúng.

Cách kiểm tra tệp nhật ký

Hầu hết các tệp nhật ký đều khá dài. Do đó, một trong những lệnh quan trọng nhất để kiểm tra tệp nhật ký trên Linux là lệnh less, xuất nội dung tệp trong các phần có thể điều hướng dễ dàng.

Ví dụ: để xem nội dung của tệp /var/log/syslog, hãy sử dụng lệnh less như sau.

 less /var/log/syslog 

Sử dụng phím F (viết tắt cho forward) để di chuyển về phía trướcvà phím B (viết tắt cho backward) để di chuyển về phía sau.

Tệp nhật ký hệ thống chứa nhật ký của một số hoạt động quan trọng nhất như lỗi hệ thống và hoạt động dịch vụ trên hệ thống của bạn.

Nếu bạn chỉ muốn kiểm tra nhật ký gần đây nhất, bạn có thể sử dụng lệnh tail, lệnh này chỉ liệt kê 10 thông báo nhật ký cuối cùng theo mặc định.

 tail /var/log/syslog

Bạn cũng có thể chỉ định số lượng thông báo nhật ký mà bạn muốn xem bằng tiện ích đuôi. Lệnh có định dạng sau tail -n file-to-inspect, trong đó n là số dòng bạn muốn xem. Ví dụ: để xem 7 thông báo nhật ký cuối cùng trong tệp nhật ký hệ thống, bạn có thể sử dụng lệnh sau.

 tail -7 /var/log/syslog

Để xem các nhật ký gần đây nhất trong thời gian thực, bạn có thể sử dụng lệnh tail với tùy chọn -f như sau.

 tail -f /var/log/syslog

Một lệnh quan trọng khác để kiểm tra thông báo nhật ký là lệnh head. Không giống như lệnh tail hiển thị thông báo nhật ký cuối cùng trong tệp, lệnh head hiển thị cho bạn những dòng đầu tiên trong tệp. Theo mặc định, lệnh sẽ chỉ xuất ra 10 dòng đầu tiên.

head /var/log/syslog

Nhật ký xác thực

Nếu bạn muốn tìm thông tin về thông tin đăng nhập của người dùng trên hệ thống của mình, bạn có thể xem tệp /var/log/auth.log, với các thông tin đăng nhập của người dùng, lỗi đăng nhập và phương pháp xác thực được sử dụng.

Nhật ký hạt nhân

Khi hệ thống Linux của bạn khởi động, dữ liệu quan trọng về bộ đệm vòng nhân được ghi lại trong tệp /var/log/dmesg. Các thông tin khác về trình điều khiển phần cứng, hạt nhân và trạng thái khởi động đều được ghi lại trong tệp này.

Thay vì kiểm tra thông báo nhật ký khởi động bằng lệnh less hoặc cat, bạn có thể sử dụng dmesg để xem các tệp nhật ký này.

 dmesg 

Lưu ý : Thông báo nhật ký trong tệp /var/log/dmesg được đặt lại bất cứ khi nào hệ thống khởi động.

Một tệp nhật ký quan trọng khác liên quan đến các vấn đề hạt nhân là /var/log/kern.log.

Ghi nhật ký tin nhắn bằng lệnh logger

Ngoài việc chỉ xem thông báo nhật ký được ghi lại bởi các ứng dụng hoặc dịch vụ hệ thống, hệ thống ghi nhật ký trong Linux còn cho phép bạn ghi nhật ký thông báo theo cách thủ công bằng lệnh logger. Người dùng có thể ghi nhật ký thông báo vào tệp /var/log/syslog theo mặc định. Ví dụ, để ghi một tin nhắn đơn giản, bạn có thể chạy lệnh sau.

 logger hello world!

Bây giờ bạn có thể sử dụng lệnh tail để xem thông báo đã ghi gần đây.

 tail -3 /var/log/syslog 

Bạn thậm chí có thể ghi lại kết quả đầu ra của các lệnh khác với lệnh logger bằng cách đặt lệnh trong ký tự dấu tích (`).

 logger `whoami` 

Bạn cũng có thể sử dụng lệnh logger trong tập lệnh của mình để lưu nhật ký (log) các sự kiện quan trọng. Sử dụng trang người dùng để tìm hiểu thêm về lệnh logger và các tùy chọn của nó.

 man logger 

Quản lý tệp nhật ký

Như bạn có thể nhận thấy, có rất nhiều dữ liệu được ghi trên máy Linux. Do đó, bạn cần phải có một hệ thống thích hợp để quản lý dung lượng ổ đĩa được sử dụng bởi các tệp nhật ký. Ngoài ra, có một hệ thống ghi nhật ký đảm bảo rằng bạn dễ dàng tìm thấy các thông báo nhật ký mà bạn đang tìm kiếm. Giải pháp của Linux cho vấn đề này là tiện ích logrotate.

Bạn có thể sử dụng tiện ích logrotate để định cấu hình tệp nhật ký nào cần giữ, muốn giữ chúng trong bao lâu, quản lý việc gửi nhật ký và cách nén tệp nhật ký cũ, v.v.

Bạn có thể cấu hình tiện ích logrotate với bất kỳ trình soạn thảo văn bản nào bạn chọn. Tệp cấu hình cho logrotate có thể được tìm thấy tại /etc/logrotate.conf.

Kết luận

Nhật ký hệ thống trong Linux là một cách tuyệt vời để hiểu sâu hơn về các hoạt động chính xảy ra trên hệ thống của bạn mà có thể gây ảnh hưởng đến bảo mật và sự ổn định chung của hệ thống. Biết cách xem và phân tích thông báo nhật ký trên máy chủ hoặc PC sẽ giúp bạn duy trì một hệ thống mạnh mẽ.

Đôi khi, người dùng cảm thấy khó sử dụng một số ứng dụng nhất định trên hệ thống của họ vì tính khả dụng của tài nguyên hệ thống thấp. Trong những tình huống như vậy, việc loại bỏ các chương trình không phản hồi có thể giải phóng dung lượng trên bộ nhớ chính của hệ thống.

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/system-logging-in-linux/

 

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại