Tải bản đầy đủ (.pdf) (7 trang)

Log và lập lịch (crontab, logrotate)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (213.75 KB, 7 trang )

Chương 7:

Log và lập lịch

7.1. Log
System log là một phần rất quan trọng của hệ thống giúp quản trị viên có thể biết
được những sự kiện đã xảy ra trong hệ thốn. Các files log của linux đặt ở /var/log/. Mặc dù
không có chuẩn nào cho tất cả linux system log nhưng hầu hết các version của linux sử
dụng rsyslogd, và hầu hết các log của linux tuân theo syslog. Log configuration file là
rsyslogd sử dụng file base config đặt tại /etc/rsyslog.conf, tuy nhiên config cho cấu hình
hiện tại sẽ đặt ở /etc/rsyslog.d là Log Facility và Priority:
Syslog là một giao thức client/server là giao thức dùng để chuyển log và thông điệp
đến máy nhận log. Máy nhận log thường được gọi là syslogd, syslog daemon hoặc syslog
server. Syslog có thể gửi qua UDP hoặc TCP. Các dữ liệu được gửi dạng cleartext. Syslog
dùng cổng 514.
Linux sử dụng hệ thống Syslog để hiển thị và lưu thông tin miêu tả về các sự kiện
xảy ra trong hệ thống, Syslog cho phép kiểm soát chặt chẽ logging của các message từ
kernel, từ các tiến trình đang chạy trong hệ thống hoặc từ hệ thống từ xa.
Các khái niệm trong syslog:
Mục

Miêu tả

Facility (phương tiện)

Dấu hiệu nhận diện được sử dụng để miêu tả ứng
dụng hoặc tiến trình mà đệ trình tới thông báo log. Các
ví dụ là mail, kernel, và ftp.

Priority (quyền ưu tiên)


Một chỉ dẫn quan trọng của thông báo. Các mức
được xác định trong syslog như một guideline, từ việc
chỉnh lỗi thông tin tới các sự kiện quan trọng.

Selector (bộ chọn)

Một sự kết nối của một hoặc nhiều phương tiện
và mức độ. Khi một sự kiện mới đến kết nối với một
bộ chọn, một hành động được thực hiện.


Action (hành động)

Điều gì xảy ra khi một thông tin mới đến kết nối
với một bộ chọn. Các hành động có thể ghi thông tin
tới file ghi log, phản xạ thông tin tới một bàn điều
khiển hoặc thiết bị khác, ghi thông báo tới hệ thống
ghi log của người sử dụng hoặc gửi thông báo cùng
với máy chủ syslog khác.

Các phương tiện syslog:
Facility

Miêu tả

auth

Các hoạt động liên quan đến yêu cầu tên và mật khẩu (getty,
su, login)


authpriv

Tương tự như auth nhưng ghi log tới một file mà chỉ có thể
được đọc bởi những người dùng được chọn.

console

Sử dụng để bắt các thông báo mà thường trực tiếp gửi tới
bàn điều khiển hệ thống.

cron

Các thông báo từ người lập hệ thống cron.

daemon

Hệ thống daemon nhận tất cả.

ftp

Các thông báo liên quan đến hệ thống ftp deamon.

kern

Các thông báo kernel.

local0.local7

Các phương tiện nội bộ được xác định cho mỗi site.


lpr

Các thông báo từ dòng hệ thống in.

mail

Các thông báo liên quan tới hệ thống mail.

mark

Các sự kiện giả được sử dụng để tạo timestamp trong các
file hệ thống.

news

Các thông báo liên quan tới mạng lưới giao thức tin tức
(network news protocol)

ntp

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


user

Các tiến trình người dùng thông thường.

uucp

Hệ thống phụ UUCP.


Các quyền ưu tiên syslog:
Quyền ưu tiên

Miêu tả

emerg

Tình trạng khẩn cấp, như một sự ngưng hoạt động hệ
thống sắp xảy ra, thường được thông báo tới tất cả người dùng.
Tình trạng mà nên được chỉnh lại cho đúng ngay lập tức,

alert

như một dữ liệu hệ thống bị hư hỏng.
crit

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

err

Các lỗi thông thường.

warning

Cảnh báo.

notice

Tình trạng mà không là lỗi, nhưng có lẽ nên được thực

hiện theo một cách đặc biệt.

info

Thông báo mang tính thông tin.

debug

Các thông báo mà được sử dụng khi chỉnh lỗi các chương
trình.
Các mức giả tạo được sử dụng để xác định không log các

none

thông báo.
Định dạng hoàn chỉnh của một thông báo syslog gồm có 3 phần chính như sau, và độ
dài một thông báo không được vượt quá 1024 bytes:
<PRI> HEADER MSG
Phần PRI hay Priority là một số được đặt trong ngoặc nhọn, thể hiện cơ sở sinh ra log
hoặc mức độ nghiêm trọng, là một số gồm 8 bit:
-

3 bit đầu tiên thể hiện cho tính nghiêm trọng của thông báo.

-

5 bit còn lại đại diện cho sơ sở sinh ra thông báo.
Giá trị Priority được tính như sau:



Cơ sở sinh ra log x 8 + Mức độ nghiêm trọng
Phần HEADER thì gồm các phần chính sau:
-

Time stamp - Thời gian mà thông báo được tạo ra. Thời gian này được lấy từ
thời gian hệ thống ( Chú ý nếu như thời gian của server và thời gian của
client khác nhau thì thông báo ghi trên log được gửi lên server là thời gian
của máy client)

-

Hostname hoặc IP

Phần Message hay MSG chứa một số thông tin về quá trình tạo ra thông điệp đó. Gồm
2 phần chính:

-

Tag field: tên chương trình tạo ra thông báo

-

Content field: chứa các chi tiết của thông báo

Các file log trong linux:
-

/var/log/message: thông tin chung về hệ thống

-


/var/log/auth.log: các log về xác thực

-

/var/log/kern.log: các log về nhân của hệ điều hành

-

/var/log/cron.log: các log về dịch vụ Crond (dịch vụ lập lịch chạy tự động)

-

/var/log/maillog: Các log của máy chủ email

-

/var/log/qmail/ : Thư mục log của phân mềm Qmail

-

/var/log/httpd/: Thư mục log truy cập và lỗi của phần mềm Apache

-

/var/log/lighttpd: Thư mục log truy cập và lỗi của phần mềm Lighttpd

-

/var/log/boot.log : Log của quá trình khởi động hệ thống


-

/var/log/mysqld.log: Log của MySQL

-

/var/log/secure: Log xác thực

-

/var/log/utmp hoặc /var/log/wtmp : file lưu bản ghi đăng nhập

-

/var/log/yum.log: các log của Yum log files

Các hành động ghi log trong Unix/Linux:
Trường hành động xác định một trong 5 hành động sau:


-

Thông tin ghi log tới một file hoặc một thiết bị. Ví dụ, /var/log/lpr.log hoặc
/dev/console.

-

Gửi một thông báo tới một người sử dụng. Bạn có thể xác định nhiều tên sử
dụng bằng việc ngăn cách chúng bởi dấu phảy (ví dụ root, amrood).


-

Gửi một thông báo tới 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 *.

-

Gửi một thông báo thông qua pipe tới một chương trình. Trong trường hợp
này, chương trình được xác định sau ký hiệu pipe (|).

-

Gửi thông báo tới syslog trên một host khác. Trong trường hợp này, trường
hành động bao gồm một tên host, được đặt trước bởi một dấu hiệu (ví dụ:
@tutorialspoint.com)

7.2. Logrotate
Logrotate là tiện ích trên linux giúp quản lý log trên hệ thống như xoay vòng log, di
chuyển, nén log .... Xoay vòng log là tiến trình xử lý file log đã cũ theo chính sách đã đặt
trước đó đồng thời tạo ra file log mới.
Bằng cách thiết lập đơn giản nhưng chặt chẽ thông qua file cấu hình, Logrotate hoạt
động một cách tự động, không cần can thiệp thủ công. Hệ thống linux chạy chương trình
logrotate theo thời gian lập sẵn trong crontab, mặc định là hằng ngày, script logrotate chạy
hằng ngày tại : etc/cron.daily/logrotate.
Người dùng còn có thể sử dụng script mặc định của chương trình logrotate. Người
dùng còn có thể cấu hình riêng biệt cho từng loại file log trên các file chứa trong thư mục
/etc/logrotate.d/
Các option cấu hình:



Logfile: Người dùng có thể chỉ định một hoặc nhiều logfile bằng đường dẫn tuyệt đối
của nó, các đường dẫn cách nhau một khoảng trắng để phân biệt.



Count: Số file log cũ được giữ lại, nếu số filelog cũ bằng số count, thì logfile cũ nhất
sẽ bị xóa để nạp thêm logfile mới.




Time: Thời gian xoay vòng: có 4 giá trị là daily, weekly, monthly, yearly



Size: Xoay vòng file log dựa vào kích thước file, các kích thước có thể sử dụng là
KB, MG, GB, phần cấu hình xoay vòng log dựa vào kích thước file được ưu tiên hơn
so với xoay vòng log dựa vào thời gian.



Compress/ nocompress: Nén/không file log

7.3. Crontab
Cron là một tiện ích lập lịch trên linux, người dùng sử dụng cron để lên lịch công việc
(lệnh hoặc tập lệnh) với thời gian được lập sẵn.
Cron được điểu khiển bởi file Crontab (Cron table) là một file cấu hình chỉ định các
lệnh với thời gian chạy lập sẵn của nó, cron dựa trên file crontab này để thực hiện các công
việc theo thời gian đã lập sẵn. Mỗi dòng trong file crontab là cronjob. Mỗi user đều có file

crontab của riêng mình có tên trùng với tên user.
Cron tìm kiếm các file crontab của các user trong thư mục /var/spool/cron/crontabs
vào load vào memory.
Một cronjob có dạng:



Command: có thể là 1 lệnh hoặc một đường dẫn tới file chứa lệnh



Minute: Xác định cronjob sẽ chạy ở phút thứ mấy
o

* : Chạy ở mỗi phút

o

, : Tùy chọn những giá trị khác nhau

o

- : Xác định một khoảng thời gian




Hour: Xác định cronjob sẽ chạy ở giờ thứ mấy, option tương tự như phút
o


*/[x] : Mỗi x giờ chạy 1 lần



Day: Xác định ngày chạy cronjob, option tương tụ như phút



Month: Xác định tháng chạy cronjob, option tương tụ như phút, ngoài ra có thể viết
tắt như JAN, DEC, …



Day of week: Xác định ngày chạy trong tuần, option tương tự như giờ, option tương
tự phút, ngoài ra có thể viết tắt MON, TUE, …



×