Bài viết này giới thiệu với các bạn về những file log quan trọng trên hệ điều hành Linux. Trong bài viết này sẽ giới thiệu với các bạn về file log, cũng như công dụng của chúng từ đó giúp cho chúng ta có thể tự tìm hiểu và tự học Linux cơ bản dễ dàng hơn.
1. Giới thiệu về file log
File log là một tập hợp các bản ghi mà Linux duy trì để các quản trị viên theo dõi các sự kiện quan trọng. Các file log này sẽ chứa các thông báo về máy chủ, bao gồm kernel, dịch vụ và ứng dụng đang chạy trên nó. File log cung cấp thời gian của các sự kiện cho hệ điều hành, ứng dụng và hệ thống Linux và là một công cụ quan trọng giúp chúng ta khắc phục sự cố.
Hệ điều hành Linux cung cấp một kho lưu trữ tập trung các file log trong thư mục /var/log
.
Hầu hết các file log được chia thành một trong bốn loại:
- Application Logs: Nhật ký ứng dụng
- Event Logs: Nhật ký sự kiện
- Service Logs: Nhật ký dịch vụ
- System Logs: Nhật ký hệ thống
Thông qua việc giám sát các file log chúng ta có thể nắm rõ hơn về hiệu suất của máy chủ, bảo mật, thông báo lỗi và các vấn đề tiềm ẩn. Các file log cho phép chúng ta dự đoán các vấn đề sắp tới trước khi thực sự xảy ra.
2. Các file log quan trọng
Để giúp cho chúng ta dễ dàng hơn một chút trong việc giám sác file log, trong phần này sẽ giới thiệu cho các bạn một số file log quan trọng nhất mà bạn phải theo dõi.
1. File log /var/log/messages
[root@localhost ~]# cat /var/log/messages
Hoặc
root@ubuntuserver:~# cat /var/log/syslog
Trong file log này sẽ chứa nhật ký hoạt động hệ thống (System Logs). Nó chủ yếu được sử dụng để lưu trữ các thông tin liên quan đến hệ thống. Về cơ bản, file log này lưu trữ tất cả dữ liệu hoạt động trên toàn hệ thống như mail, cron, daemon, kern, auth,...
Khi chúng ta xem file log này chúng ta có thể theo dõi các lỗi khởi động trừ kernel, lỗi dịch vụ liên quan đến ứng dụng và các thông báo được ghi lại trong quá trình khởi động hệ thống.
Đây là file log đầu tiên mà các quản trị viên Linux nên kiểm tra nếu có sự cố trên hệ thống.
Lưu ý: Các bản phân phối Linux thuộc họ Redhat, như CentOS hoặc RHEL được lưu trữ trong
/var/log/message,
trong khi Ubuntu và các hệ thống dựa trên Debian khác được lưu trữ trong/var/log/syslog
.
2. File log /var/log/auth.log
[root@localhost ~]# cat /var/log/auth.log
Chứa thông tin xác thực trên hệ thống trong máy chủ Debian và Ubuntu được ghi lại. Khi chúng ta tìm kiếm vấn đề liên quan đến cơ chế ủy quyền của người dùng thì hãy tìm kiếm trong file log này.
Thông qua file log này giúp cho chúng ta xác định được:
- Các lần thử đăng nhập thất bại
- Điều tra các cuộc tấn công và các lỗ hổng liên quan đến cơ chế ủy quyền của người dùng.
3. File log /var/log/secure
[root@localhost ~]# cat /var/log/secure
Đối với các hệ thống sử dụng RedHat và CentOS thì file log này thay thế cho file log /var/log/auth.log
bên trên.
Tại đây nó sử chứ các thông tin về xác thực trên hệ thống. Và có thể lưu trữ tất cả các thông tin liên quan đến bảo mật, các lỗi xác thực. File log này còn giúp cho chúng ta theo dõi thông tin đăng nhập sudo, đăng nhập SSH và các lỗi khác được ghi bởi tiến trình chạy nền của dịch vụ bảo mật hệ thống. Ngoài ra còn giúp cho chúng ta thấy được chi tiết về các lần đăng nhập trái phép hoặc thất bại và nó cũng lưu trữ thông tin đăng nhập thành công và theo dõi các hoạt động của người dùng hợp lệ.
4. File log /var/log/boot.log
[root@localhost ~]# cat /var/log/boot.log
Đối với file log boot.log
chính là nơi lưu trữ tất cả thông tin liên quan đến khởi động và mọi thông báo được ghi lại trong quá trình khởi động bao gồm tập lệnh khởi tạo hệ thống, /etc/init.d/bootmisc.sh
,... Chúng ta nên phân tích file log này để kiểm tra các vấn đề liên quan đến tắt máy không đúng cách, khởi động lại hoặc lỗi khởi động. Và cũng có thể hữu ích để xác định thời gian ngừng hoạt động của hệ thống do tắt máy đột xuất.
5. File log /var/log/dmesg
[root@localhost ~]# cat /var/log/dmesg
Tại đây các thông tin về bộ kernel được ghi nhận. Khi hệ thống khởi động các thông tin liên quan đến các thiết bị phần cứng và trình điều khiển của chúng được ghi lại ở đây. Vì kernel phát hiện các thiết bị phần cứng vật lý được liên kết trong quá trình khởi động, nó sẽ ghi lại trạng thái thiết bị, lỗi phần cứng và các thông báo chung khác. Nếu một thiết bị phần cứng nào đó hoạt động không đúng hoặc không được phát hiện, thì chúng ta có thể dựa vào tệp nhật ký này để khắc phục sự cố.
6. File log /var/log/kern.log
[root@localhost ~]# cat /var/log/kern.log
Đây là một file log vô cùng quan trọng chính là nơi chứa các thông tin được ghi bởi kernel. Thông qua file log này giúp cho chúng ta có thể khắc phục các lỗi và cảnh báo liên quan đến kernel. Kernel log có thể hữu ích trong việc khắc phục sự cố kernel và có ích trong việc gỡ lỗi các vấn đề phần cứng.
7. File log /var/log/faillog
[root@localhost ~]# cat /var/log/faillog
Trong file này sẽ chứa các thông tin người dùng đã đăng nhập thất bại. Chúng ta có thể sử dụng lệnh faillog
để hiển thị nội dung của file. Nó là file log vô cùng hữu ích để chúng ta có thể tìm ra bất kỳ vi phạm bảo mật liên quan đến việc hack username hoặc passwrod của người dùng cừng như các cuộc tấn công.
8. File log /var/log/cron
[root@localhost ~]# cat /var/log/cron
Nơi lưu trữ tất cả các thông tin liên quan đến Crond (công việc cron), ví dụ như khi tiến trình nền cron
khởi tạo một công việc, các thông báo lỗi liên quan,... Bất cứ khi nào một công việc cron
chạy, tệp nhật ký này ghi lại tất cả các thông tin liên quan bao gồm thực thi thành công và thông báo lỗi trong trường hợp thất bại.
Nếu như chúng ta đang gặp một vấn đề với cron
theo lịch trình của mình chúng ta cần kiểm tra file log này.
9. File log /var/log/yum.log
[root@localhost ~]# cat /var/log/yum.log
Chứa thông tin được ghi lại khi gói được cài đặt bằng yum. Thông qua file log này giúp cho chúng ta có thể theo dõi việc cài đặt các thành phần hệ thống và gói phần mềm. Kiểm tra các thông tin được ghi lại ở đây để xem một gói đã được cài đặt chính xác hay chưa. Từ đây giúp cho chúng ta có thể khắc phục sự cố liên quan đến cài đặt phần mềm.
Ví dụ: Trong một ngày nào đó máy chủ của chúng ta hoạt động bất thường và chúng ta nghi ngờ gói phần mềm được cài đặt gần đây là nguyên nhân cho vấn đề này. Trong các trường hợp như vậy, chúng ta cần thực hiện việc kiểm tra file log này để tìm ra các gói đã được cài đặt gần đây và xác định các chương trình lỗi.
10. File log /var/log/maillog hoặc /var/log/mail.log
[root@localhost ~]# cat /var/log//maillog
Hoặc
[root@localhost ~]# cat /var/log/mail.log
Nơi đây sẽ lưu trữ các thông tin từ máy chủ mail đang chạy trên hệ thống bao gồm các thông tin về postfix, smtpd, MailScanner, SpamAssassain hoặc bất kỳ dịch vụ liên quan đến email nào khác. TRong file log này sẽ ghi lại tất cả các email đã được gửi hoặc nhận trong một khoảng thời gian cụ thể. Thông qua file log giúp chúng ta có thể kêểm tra các vấn đề gửi thư thất bại, nhận thông tin về spam có thể bị chặn bởi máy chủ mail. Theo dõi nguồn gốc của một email đến bằng cách xem xét kỹ file log maillog
hoặc mail.log
.
11. File log /var/log/httpd
[root@localhost ~]# cat /var/log/httpd
Tại đây là nơi lưu trữ của các file error_log
và access_log
của tiến trình nền httpd
Apache. Các error_log
chứa tất cả các lỗi gặp phải httpd. Những lỗi này bao gồm các vấn đề về bộ nhớ và các lỗi liên quan đến hệ thống khác, access_log
chứa một bản ghi của tất cả các yêu cầu nhận được qua HTTP. Giúp bạn theo dõi mọi trang được phục vụ và mọi tệp được tải bởi Apache. Ghi lại địa chỉ IP và ID người dùng của tất cả các máy khách thực hiện yêu cầu kết nối đến máy chủ. Lưu trữ thông tin về trạng thái của các yêu cầu truy cập cho dù phản hồi đã được gửi thành công hay yêu cầu dẫn đến lỗi.
Khi chúng ta gặp vấn đề với máy chủ web Apache, hãy kiểm tra file log này để biết thông tin chẩn đoán.
12. File log /var/log/mysqld.log hoặc /var/log/mysql.log
[root@localhost ~]# cat /var/log/mysqld.log
Hoặc
[root@localhost ~]# cat /var/log/mysql.log
File log MySQL
ghi lại tất cả các thông báo gỡ lỗi, thất bại và thành công. Chứa thông tin về việc bắt đầu, dừng và khởi động lại MySQL daemon mysqld. Sử dụng file log này để xác định các vấn đề trong khi bắt đầu, chạy hoặc dừng mysqld. Nhận thông tin về các kết nối máy khách đến thư mục dữ liệu MySQL. Chúng ta cũng có thể thiết lập tham số long_query_time
để ghi thông tin về khóa truy vấn và truy vấn chạy chậm.
Lưu ý: Đối với hệ thống RedHat, CentOS, Fedora và các hệ thống dựa trên RedHat khác sử dụng
/var/log/mysqld.log
, trong khi Debian/Ubuntu sử dụng thư mục/var/log/mysql.log
.
Ngoài các file log quan trọng cần kiếm tra đầu tiên khi hệ thống bị lỗi hoặc một vấn dề nào đó chúng ta còn có các file log khác chứa các thông tin khác nhau của hệ thống
/var/log/daemon.log
: Chứa thông tin được ghi lại bởi các tiến trình nền khác nhau chạy trên hệ thống./var/log/dpkg.log
: Chứa thông tin được ghi lại khi gói được cài đặt hoặc gỡ bỏ bằng lệnhdpkg
./var/log/lastlog
: Hiển thị thông tin đăng nhập gần đây cho tất cả người dùng. Chúng ta nên sử dụng lệnhlastlog
để xem nội dung của file này./var/log/user.log
: Chứa thông tin về tất cả nhật ký cấp độ người dùng./var/log/alternigin.log
: Thông tin của các lựa chọn thay thế cập nhật được đăng nhập vào tệp nhật ký này./var/log/btmp
: Tập tin này chứa thông tin về các thông tin đăng nhập thất bại. Sử dụng lệnhlast
để xem file btmp./var/log/anaconda.log
: Khi chúng ta cài đặt Linux, tất cả các thông báo liên quan đến cài đặt được lưu trữ tại đây./var/log/safe
: Chứa thông tin liên quan đến xác thực và đặc quyền ủy quyền. Ví dụ:sshd
ghi lại tất cả các thông tin ở đây, bao gồm cả đăng nhập không thành công./var/log/wtmp
hoặc/var/log/utmp
: Chứa các bản ghi đăng nhập. Sử dụng wtmp bạn có thể tìm ra ai đã đăng nhập vào hệ thống. Lệnhwho
sử dụng file log này để hiển thị thông tin.
3. Cách xem file log
Để xem file log chúng ta có thể sử dụng một số phương pháp phổ biến sau:
vi
: Chúng ta có thể sử dụng trình soạn thảo vi để kiểm tra file log.tail
: Nếu chúng ta muốn xem nội dung của file log theo thời gian thực ứng dụng đang ghi vào đó, hãy sử dụng tail -f.grep
: Nếu chúng ta biết chính xác những gì đang tìm kiếm trong file log hãy sử dụng lệnh grep để grep một mẫu.
Ngoài ra còn nhiều phương pháp khác để kiểm tra file log.
4. Lời kết
Qua bài trên, giúp cho chúng ta hiểu hơn về các file log trên hệ điều hành Linux. Từ đây giúp cho chúng ta khắc phục được các sự cố liên quan hệ thống cũng như kiếm tra quá trình hoạt động của hệ thống từ đó giúp cho chúng ta có thể giám sát hệ thống một cách tôt nhất.