Logi są często jedynym źródłem wiedzy na temat awarii, czy problemów z funkcjonowaniem urządzeń lub WWW. Gromadzenie logów w jednym centralnym miejscu ma parę zalet, między innymi lepsze zarządzanie, czy monitorowanie, a co najważniejsze często jest ostatnią szansą wytropienia złośliwego użytkownika lub włamywacza. Dlatego dobrą praktyką jest odsyłanie logów przez rsyslog na zewnętrzny serwer. Aplikacje takie jak Nginx, czy Apache, zapisują domyślnie logi do plików. Nginx potrafi zapisywać do sysloga, ale Apache już nie do końca, bo tylko logi błędów. Można to jednak w dosyć prosty sposób zrobić inaczej, wykorzystując moduł „imfile” rsysloga.
vim /etc/rsyslog.conf
Edytujemy główny plik konfiguracyjny i dodajemy „$ModLoad imfile”.
vim /etc/rsyslog.d/httpd.conf
Następnie tworzymy plik z konfiguracją „eksportu” logów access i error do sysloga. Przykładowa zawartość poniżej:
# error log
$InputFileName /var/log/httpd/error.log
$InputFileTag httpd:
$InputFileStateFile stat-httpd-error
$InputFileSeverity error
$InputFileFaility local6
$InputFilePollInterval 1
$InputRunFileMonitor
# access log
$InputFileName /var/log/httpd/access.log
$InputFileTag httpd:
$InputFileStateFile stat-httpd-access
$InputFileSeverity notice
$InputFileFaility local6
$InputFilePollInterval 1
$InputRunFileMonitor
Na koniec restartujemy rsyslog-a.
systemctl restart rsyslog
Od teraz logi serwera WWW powinny być dostępne między innymi w „/var/log/messages”.