Syslog là một công cụ nhận biết và ghi lại tất cả các loại system message, từ loại thông thường cho đến quan trọng. Syslog quản lý các system message dựa trên hai nhãn của sys-tem message.
Nhãn thứ nhất thể hiện nguồn tạo message.
Nhãn thứ hai thể hiện mức độ quan trọng của message, gồm tám giá trị như sau :
Mã:
0 emergencies 1 alerts 2 critical 3 errors 4 warnings 5 notifications 6 informational 7 debugging
Mã:
/etc/syslog.conf
Cột thứ nhất thể hiện syslog sẽ nhận các message từ đâu và mức độ quan trọng của các message, cột thứ hai thể hiện file chứa các message đó.
vi dụ cấu hình sau
Mã:
info;mail.none;authpriv.none;cron.none /var/log/messages
Mã:
debug /var/log/debug
Mã:
/var/log/debug
Thể hiện mọi system message loại emerge sẽ được ghi trực tiếp ra màn hình.
Bên cạnh đó có nhiều dịch vụ hệ thống sẽ ghi log message của nó vào file riêng biệt mà không phụ thuộc vào cấu hình syslog như.
dịch vụ mail sẽ ghi log vào
Mã:
file /var/log/maillog
Mã:
/var/log/httpd/
Khi đó muốn xem log của dịch vụ nào bạn phải mở các file log tương ứng của dịch vụ đó
Xem log hệ thống
Thông thường khối lượng system message được ghi lại là rất lớn nhất là đối với những hệ thống có mật độ xử lý lớn. Sau đây là một số lệnh thường dùng để xem những file log có số lượng message lớn.
Mã:
tail -f /var/log/messages
Mã:
grep string /var/log/messages | more
Mã:
more /var/log/message
Remote syslog
Với syslog bạn có thể thực hiện việc ghi log của nhiều hệ thống ở nhiều địa điểm cách xa nhau vào một server log duy nhất. Đây cũng là một điểm giúp tăng khả năng bảo mật hệ thống mà bạn cần lưu ý.
Cũng như mọi dịch vụ remote khác phần cấu hình sẽ gồm hai phần, phần phía Server (serverlog) và phần phía Client (clientlog).
Cấu hình phía Serverlog
Như đã nói syslog đọc file cấu hình /etc/syslog.conf để xác định loại system message mà nó sẽ nhận và vị trí file mà nó sẽ ghi log vào. Tuy nhiên bên cạnh đó nó còn đọc file /etc/sysconfig/syslog để xác định mốt hoạt động.
Mặc định syslog không nhận system message từ các hệ thống ở xa tuy nhiên điều này sẽ thay đổi nếu biến SYSLOGD_OPTIONS trong file /etc/sysconfig/syslog được đặt thêm giá trị -r như sau :
Mã:
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages received with -r # See syslogd(8) for more details
Mã:
SYSLOGD_OPTIONS="-m 0 -r" # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-2"
bạn dùng lệnh netstat để đảm bảo syslog trên hệ thống đã sẵn sàng nhận message từ các hệ thống ở xa.
Mã:
netstat -a | grep syslog udp 0 0 *:syslog *:*
Mã:
netstat -an | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:*
Cấu hình phía Clientlog
khai báo địa chỉ ip và tên host đầy đủ (FQDN) của Serverlog tại file /etc/hosts
192.168.1.100 syslogserver.com syslogserver loghost
Với loghost là nickname của logserver.
Sửa file /etc/syslog.conf để syslog trên máy Clientlog gửi message đến máy loghost (Serverlog).
ví dụ :
Mã:
*.debug @loghost *.debug /var/log/messages *.debug @loghost *.debug /var/log/messages
Với những hệ thống lớn có số lượng file log lớn thì việc quản lý các file log này cũng là một vấn đề. Logrotate là một công cụ hữu hiệu hỗ trợ cho việc quản trị các file log. Với Logrotate các file log có thể được định kỳ sử dụng lại theo ngày tuần tháng hay theo kích thước file log, nén, xoá bỏ file log...
Hoạt động của logrotate mặc định được cấu hình tại file /etc/logrotate.conf thông qua những tham số tuỳ chọn, sau đây là một số tham số thường dùng.
compress : nén những file log đã sử dụng
nocompress: ngược lại với tuỳ chọn compress
create mode owner group: khi sử dụng một file log mới, file log mới được tạo sẽ có các thuộc tính (mode, owner group).
nocreate : không tạo file log mới.
mail address : khi hết chu kỳ sử dụng file log sẽ được gửi tới địa chỉ (address).
nomail : ngược lại với tuỳ chọn trên.
daily : chu kỳ sử dụng file log theo ngày
weekly : chu kỳ sử dụng file log theo tuần.
monthly : chu kỳ sử dụng file log theo tháng.
rotate count : xác định số lần luân phiên sử dụng file log.
size size : chu kỳ sử dụng file log được xác định theo kích thước.
include /etc/logrotate.d : đọc thêm các thông tin cấu hình tại các file trong thư mục /etc/logrotate. Các tham số khai báo ở các file này có độ ưu tiên cao hơn các tham số khai báo trong file /etc/logrotate.conf.
Ví dụ một file /etc/logrotate có thể như sau :
Mã:
weekly rotate 4 errors root create compress include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp rotate 1 } /var/log/lastlog { monthly rotate 1 }
Phần mặc định xác định mỗi file log được ghi trong một tuần, chỉ lưu lại file log của bốn tuần, các logrotate error message được gửi tới root, các file log lưu trữ được nén lại.
Cho phép logrotate đọc thêm các thông tin cấu hình nằm tại các file trong thư mục /etc/logrotate.d
File log /var/log/wtmp được ghi log trong một tháng, khi tạo file log mới file này có thuộc tính là 0664, woner là root, group là utmp, chỉ lưu thông tin log trong một tháng.
File log /var/log/lastlog được ghi log trong một tháng, chỉ lưu thông tin log trong một tháng.