Unix / Linux - Ghi nhật ký hệ thống

Trong chương này, chúng ta sẽ thảo luận chi tiết về đăng nhập hệ thống trong Unix.

Hệ thống Unix có một hệ thống ghi nhật ký rất linh hoạt và mạnh mẽ, cho phép bạn ghi lại hầu hết mọi thứ bạn có thể tưởng tượng và sau đó thao tác trên nhật ký để truy xuất thông tin bạn yêu cầu.

Nhiều phiên bản Unix cung cấp một phương tiện ghi nhật ký có mục đích chung được gọi là syslog. Các chương trình riêng lẻ cần ghi thông tin, hãy gửi thông tin đến nhật ký hệ thống.

Unix syslog là một phương tiện ghi nhật ký hệ thống thống nhất, có thể định cấu hình trên máy chủ. Hệ thống sử dụng quy trình ghi nhật ký hệ thống tập trung chạy chương trình/etc/syslogd hoặc là /etc/syslog.

Hoạt động của trình ghi nhật ký hệ thống khá đơn giản. Các chương trình gửi các mục nhật ký của chúng đến syslogd , nó sẽ tư vấn cho tệp cấu hình/etc/syslogd.conf hoặc là /etc/syslog và, khi tìm thấy kết quả khớp, hãy ghi thông báo nhật ký vào tệp nhật ký mong muốn.

Có bốn thuật ngữ nhật ký hệ thống cơ bản mà bạn nên hiểu -

Sr.No. Thuật ngữ & Mô tả
1

Facility

Số nhận dạng được sử dụng để mô tả ứng dụng hoặc quy trình đã gửi thông báo nhật ký. Ví dụ: mail, kernel và ftp.

2

Priority

Một chỉ báo về tầm quan trọng của thông điệp. Các cấp độ được định nghĩa trong nhật ký hệ thống dưới dạng hướng dẫn, từ gỡ lỗi thông tin đến các sự kiện quan trọng.

3

Selector

Sự kết hợp của một hoặc nhiều cơ sở và cấp độ. Khi một sự kiện đến khớp với một bộ chọn, một hành động sẽ được thực hiện.

4

Action

Điều gì xảy ra với một tin nhắn đến khớp với một bộ chọn - Các thao tác có thể ghi tin nhắn vào tệp nhật ký, lặp lại tin nhắn đến bảng điều khiển hoặc thiết bị khác, viết tin nhắn cho người dùng đã đăng nhập hoặc gửi tin nhắn cùng với một máy chủ nhật ký hệ thống khác.

Cơ sở Syslog

Bây giờ chúng ta sẽ hiểu về các cơ sở nhật ký hệ thống. Dưới đây là các phương tiện có sẵn cho bộ chọn. Không phải tất cả các tiện ích đều có trên mọi phiên bản Unix.

Cơ sở Sự miêu tả
1

auth

Hoạt động liên quan đến yêu cầu tên và mật khẩu (getty, su, đăng nhập)

2

authpriv

Giống như auth nhưng được đăng nhập vào một tệp mà chỉ những người dùng được chọn mới có thể đọc

3

console

Được sử dụng để nắm bắt các thông báo thường được hướng đến bảng điều khiển hệ thống

4

cron

Tin nhắn từ bộ lập lịch hệ thống cron

5

daemon

Bắt tất cả daemon hệ thống

6

ftp

Tin nhắn liên quan đến daemon ftp

7

kern

Thông báo hạt nhân

số 8

local0.local7

Cơ sở vật chất địa phương được xác định trên mỗi trang

9

lpr

Tin nhắn từ hệ thống in dòng

10

mail

Tin nhắn liên quan đến hệ thống thư

11

mark

Sự kiện giả được sử dụng để tạo dấu thời gian trong tệp nhật ký

12

news

Thông báo liên quan đến giao thức tin tức mạng (nntp)

13

ntp

Thông báo liên quan đến giao thức thời gian mạng

14

user

Quy trình người dùng thông thường

15

uucp

Hệ thống con UUCP

Ưu tiên Syslog

Các ưu tiên của nhật ký hệ thống được tóm tắt trong bảng sau:

Sr.No. Ưu tiên & Mô tả
1

emerg

Tình trạng khẩn cấp, chẳng hạn như sự cố hệ thống sắp xảy ra, thường được phát cho tất cả người dùng

2

alert

Tình trạng cần được sửa chữa ngay lập tức, chẳng hạn như cơ sở dữ liệu hệ thống bị hỏng

3

crit

Tình trạng nghiêm trọng, chẳng hạn như lỗi phần cứng

4

err

Lỗi thông thường

5

Warning

Cảnh báo

6

notice

Tình trạng không phải là lỗi nhưng có thể phải được xử lý theo cách đặc biệt

7

info

Tin nhắn thông tin

số 8

debug

Thông báo được sử dụng khi gỡ lỗi chương trình

9

none

Mức giả được sử dụng để chỉ định không ghi nhật ký tin nhắn

Sự kết hợp của các phương tiện và cấp độ cho phép bạn sáng suốt về những gì được ghi lại và thông tin đó đi đến đâu.

Khi mỗi chương trình gửi các thông điệp của nó đến trình ghi hệ thống một cách cẩn thận, trình ghi nhật ký sẽ đưa ra quyết định về những gì cần theo dõi và những gì cần loại bỏ dựa trên các mức được xác định trong bộ chọn.

Khi bạn chỉ định một cấp độ, hệ thống sẽ theo dõi mọi thứ ở cấp độ đó và cao hơn.

Tệp /etc/syslog.conf

Các /etc/syslog.confkiểm soát tệp nơi tin nhắn được ghi. Một điển hìnhsyslog.conf tệp có thể trông như thế này -

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

Mỗi dòng của tệp chứa hai phần:

  • A message selectorchỉ định loại tin nhắn để ghi. Ví dụ, tất cả các thông báo lỗi hoặc tất cả các thông báo gỡ lỗi từ hạt nhân.

  • An action fieldcho biết những gì nên được thực hiện với tin nhắn. Ví dụ: đưa nó vào một tệp hoặc gửi tin nhắn đến thiết bị đầu cuối của người dùng.

Sau đây là những điểm đáng chú ý cho cấu hình trên -

  • Bộ chọn tin nhắn có hai phần: a facilitya priority. Ví dụ, kern.debug chọn tất cả các thông báo gỡ lỗi (ưu tiên) được tạo bởi hạt nhân (cơ sở).

  • Bộ chọn thông báo kern.debug chọn tất cả các ưu tiên lớn hơn gỡ lỗi.

  • Dấu hoa thị thay cho cơ sở hoặc mức độ ưu tiên cho biết "tất cả". Ví dụ,*.debug có nghĩa là tất cả các thông báo gỡ lỗi, trong khi kern.* có nghĩa là tất cả các thông báo được tạo bởi hạt nhân.

  • Bạn cũng có thể sử dụng dấu phẩy để chỉ định nhiều cơ sở. Hai hoặc nhiều bộ chọn có thể được nhóm lại với nhau bằng cách sử dụng dấu chấm phẩy.

Hành động ghi nhật ký

Trường hành động chỉ định một trong năm hành động -

  • Ghi tin nhắn vào một tệp hoặc một thiết bị. Ví dụ,/var/log/lpr.log hoặc là /dev/console.

  • Gửi tin nhắn cho người dùng. Bạn có thể chỉ định nhiều tên người dùng bằng cách phân tách chúng bằng dấu phẩy; ví dụ: root, amrood.

  • Gửi tin nhắn cho tất cả người dùng. Trong trường hợp này, trường hành động bao gồm một dấu sao; ví dụ, *.

  • Chuyển thông điệp đến một chương trình. Trong trường hợp này, chương trình được chỉ định sau ký hiệu Unix pipe (|).

  • Gửi tin nhắn đến nhật ký hệ thống trên máy chủ lưu trữ khác. Trong trường hợp này, trường hành động bao gồm tên máy chủ, đứng trước dấu tại; ví dụ: @ tutorialspoint.com.

Lệnh ghi nhật ký

Unix cung cấp logger, là một lệnh cực kỳ hữu ích để xử lý việc ghi nhật ký hệ thống. Cáclogger lệnh gửi thông báo ghi nhật ký đến daemon syslogd và do đó kích hoạt ghi nhật ký hệ thống.

Điều này có nghĩa là chúng tôi có thể kiểm tra từ dòng lệnh bất kỳ lúc nào syslogddaemon và cấu hình của nó. Lệnh ghi nhật ký cung cấp một phương pháp để thêm các mục nhập một dòng vào tệp nhật ký hệ thống từ dòng lệnh.

Định dạng của lệnh là -

logger [-i] [-f file] [-p priority] [-t tag] [message]...

Đây là chi tiết của các thông số -

Sr.No. Tùy chọn & Mô tả
1

-f filename

Sử dụng nội dung của tên tệp tệp làm thông báo để ghi nhật ký.

2

-i

Ghi lại ID tiến trình của tiến trình ghi nhật ký với mỗi dòng.

3

-p priority

Nhập thư với mức độ ưu tiên được chỉ định (mục nhập bộ chọn được chỉ định); mức độ ưu tiên của thông báo có thể được chỉ định bằng số hoặc dưới dạng một cặp cơ sở vật chất. Ưu tiên mặc định là user.notice.

4

-t tag

Đánh dấu từng dòng được thêm vào nhật ký bằng thẻ được chỉ định.

5

message

Các đối số chuỗi có nội dung được nối với nhau theo thứ tự đã chỉ định, được phân tách bằng dấu cách.

Bạn có thể sử dụng Manpage Help để kiểm tra cú pháp hoàn chỉnh cho lệnh này.

Xoay nhật ký

Các tệp nhật ký có xu hướng phát triển rất nhanh và tiêu tốn nhiều dung lượng đĩa. Để bật tính năng xoay vòng nhật ký, hầu hết các bản phân phối đều sử dụng các công cụ nhưnewsyslog hoặc là logrotate.

Những công cụ này nên được gọi trong một khoảng thời gian thường xuyên bằng cách sử dụng cron daemon. Kiểm tra các trang man cho newsyslog hoặc logrotate để biết thêm chi tiết.

Vị trí nhật ký quan trọng

Tất cả các ứng dụng hệ thống tạo tệp nhật ký của chúng trong /var/logvà các thư mục con của nó. Dưới đây là một số ứng dụng quan trọng và thư mục nhật ký tương ứng của chúng -

Ứng dụng Danh mục
httpd / var / log / httpd
samba / var / log / samba
cron / var / log /
thư / var / log /
mysql / var / log /