• Nginx & Apache logowanie do syslog-a

    dodany przez Przemysław Sikora

    Logi stanowią czasem jedyne źródło wiedzy na temat awarii, czy problemów z funkcjonowaniem urządzeń, czy stron 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. Można to jednak zmienić w dosyć łatwy sposób. W przypadku Nginx, możliwe jest skorzystanie z wbudowanej funkcjonalności. Otwieramy w tym celu plik konfiguracyjny zawierający konfiguracją vhostów i modyfikujemy parametr “access_log” oraz error_log”, wpisując zamiast ścieżki do pliku z logami “syslog:server=unix:/dev/log”. Przykładowy fragment pliku z vhost-em poniżej:
    server {
    listen 80;
    server_name magento-demo.pl www.magento-demo.pl;
    access_log syslog:server=unix:/dev/log;
    error_log syslog:server=unix:/dev/log error;
    .
    .
    .

    Na koniec oczywiście restart nginx.

    systemctl restart nginx

    Oczywiście zamiast lokalnego urządzenia z logami, możemy wysłać je na zewnątrz i w tym przykładzie musimy dodać następujący wpis “syslog:server=adres_ip_zdalnego_serwera”

    Na nginx świat się nie kończy i teraz czas na konfigurację Apache. Wspomniany serwer www posiada wbudowaną funkcjonalność wysyłania logów do rsyslog podobnie jak nginx, ale tylko w przypadku error logu. Przykładowy vhost Apache. Do access logu potrzebujemy skorzystać z zewnętrznego narzędzia -> loggera.

    <VirtualHost *:80>
    ServerName super-strona.pl
    ServerAlias www.super-strona.pl
    ServerAdmin admin@super-strona.pl
    ErrorLog syslog:
    TransferLog "||/usr/bin/logger -t apache"
    DocumentRoot /www/super-strona.pl/html/

    <Directory /www/super-strona.pl/html/>
    AllowOverride All
    </Directory>
    </VirtualHost>

    W przypadku logger-a możemy użyć przełącznika “-i”, który zapewni logowanie id procesu, a także “-p” określającego priorytet danego logu.

    Na koniec oczywiście restart Apache.

    systemctl restart httpd

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony