Tiếp nối phần 1, ở phần 2 mình sẽ hướng dẫn 2 cách đẩy Log Apache về Server Log tập trung.
Mô hình:
IP Planning:
Trên Client1:
Mặc định bạn đã cấu hình đẩy Log về Server và đã cài dịch vụ Apache
Khi cài dịch vụ Apache lên, trên thư mục /var/log
sẽ xuất hiện thư mục httpd
cùng 2 file log access_log
và error_log
.
Kiểm tra dịch vụ Web
systemctl status httpd
Cấu hình đẩy Log Apache về Rsyslog Server
Cách 1: Sử dụng Rsyslog
Tạo và thêm cấu hính sau sau vào file apache.conf:
vi /etc/rsyslog.d/apache.conf
$ModLoad imfile #Dòng này chỉ thêm một lần
# Apache error file:
$InputFileName /var/log/httpd/error_log #Đường dẫn file log muốn đẩy
$InputFileTag errorlog #Tên file
$InputFileSeverity info #Các log từ mức info trở lên được ghi lại
$InputFileFacility local3 #Facility log
$InputRunFileMonitor
# Apache access file:
$InputFileName /var/log/httpd/access_log
$InputFileTag accesslog
$InputFileSeverity info
$InputFileFacility local4
$InputRunFileMonitor
$InputFilePollInterval 10 #Cứ sau 10 giây lại gửi tin nhắn
Restart Rsyslog
systemctl restart rsyslog
Sử dụng tcpdump
để kiểm tra các gói tin đẩy về Rsyslog Server
Như các bạn thấy các gói tin local được đẩy về Rsyslog Server
Kiểm tra trên Rsyslog Server
Xuất hiện thêm 2 file local trên thư mục log của Client1. Như vậy là đã thành công.
Kiểm tra thử 2 file log đẩy về và đối chiếu với bên Client1
ErrorLog – local3
AccessLog – local4
Test 2 file log này bằng cách restart lại dịch vụ httpd và truy cập vào địa chỉ web client1 để kiểm chứng có log đẩy về Server
Cách 2: Sử dụng Logger
Unix/Linux cung cấp lệnh logger là một lệnh thực sự hữu ích để giải quyết hệ thống ghi log. Lệnh logger gửi các thông báo ghi log tới syslogd deamon, và do đó kích thích hệ thống ghi log.
Thêm dòng sau vào cuối file cấu hình: vi /etc/httpd/conf/httpd.conf
ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.info'"
CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal2.info'" combined
- ErrorLog trả về Server file
local1.log
- AccessLog trả về file Server
local2.log
Sau đó restart lại dịch vụ httpd
systemctl restart httpd
Dùng tcpdump
để kiểm tra
Kiểm tra trên Rsyslog Server
2 file local1 và local2 cấu hình ở trên đã được đẩy về Server.
Chú ý: Với 2 định dạng cấu hình file log client đẩy về server xem ở Phần 1
- Định dạng 1:
%PROGRAMNAME%.log
– tên theo các chương trình- Với cách sử dụng Logger định dạng này log apache được đẩy về server sẽ có tên
httpd.log
- Theo cách cấu hình Rsyslog tên file log đẩy về sẽ là:
errorlog.log
vàaccesslog.log
như cấu hình ở trên
- Với cách sử dụng Logger định dạng này log apache được đẩy về server sẽ có tên
- Định dạng 2:
%SYSLOGFACILITY-TEXT%.log
tên theo cơ sở sinh ra log - Log apache được đẩy về theo cách sử dụng Logger: tên file chứa log sẽ là
local1.log
vàlocal2.log
- Theo cách dùng Rsyslog, tên file chứa log sẽ là
local3.log
ứng vớierrorlog
,local4.log
ứng vớiaccesslog
0 Nhận xét