Logování po síti

Z důvodu zabezpečení případně ladění systému je vhodné logovat na samostatný stroj, který je určený pouze pro tyto účely. Postup který zde popíšu je jen přibližný a slouží spíš jako odrazový můstek pro lidi, kteří logování po síti ještě nikdy nepoužívali.

Syslog

Klasický syslog, se kterým se setkýte na Solarisu případně na Linuxu umí logovat pouze přes protokol UDP, provoz běží na portu 514. Pro logování přes síť potřeba mít správný záznam v /etc/services:

syslog          514/udp

a spoštět syslogd s parametrem -r.

Nastavení na straně klienta ještě vyžaduje správné určení cíle pro logy. Následující příklad ukazuje jak se všechny logy přeposílají na server s názvem loghost.

*.*            @loghost

Nezapomeňte zapsat název serveru na který posíláte logy do souboru /etc/hosts

Pro další nastavení logování se mrkněte do manuálu (man syslogd).

Syslog-ng

Syslog-ng se trochu (víc) liší od klasického syslogu. Je mnohem víc konfigurovatelný, snadno se dají zadávat vlastní třídící pravidla a je prostě lepší. Škoda, že se s ním na většině instalacích UNIXů nesetkáte 🙁

Server pro sběr logů můžete nastavit celkem jednoduše, je třeba udělat pár změn v souboru /etc/syslog-ng/syslog-ng.conf

  • Definice zdroje dat ze sítě:
    source s_net {
            udp();
    };
    

    Použijeme UDP z důvodu zpětné kompatibility se starým syslogem. Lze udělat více zdrojů, třeba pro každý server který bude na loghosta logovat jeden zdroj. Pak se to zadává pomocí udp(ip(10.0.0.1) port(514));

  • Dále nadefinujeme samostatný soubor do kterého se budou ukládat logy ze sítě.
    destination d_net { file("/var/log/net.log"); };
  • a nakonec nastavíme vlastní logování dat ze sítě do samostatného souboru
    log {
            source(s_net);
            destination(d_net);
    };

Cílový soubor pro logy můžete udělat pro každý stroj samostaný:

source s_net {udp();}; 
destination d_net{ file("/logy/$HOST/$YEAR/$MONTH/$FACILITY-$YEAR$MONTH" \
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));};
log {
        source(s_net);
        destination(d_net);
};

Lze nastavit i logování po síti protokolem TCP tcp(ip(0.0.0.0) port(5000));

Nastavení na straně klienta je také docela v pohodě, buď nadefinujete jako cíl UDP udp("loghost" port(514)); nebo TCP tcp("loghost" port (5000));

Snad to jako vodítko dostačuje. Pokud jsem tu plácal blbosti, tak napište emila a opravím to. Nastavení Syslog-ng lze provést různě, třeba lze logovat i do databáze.

Napsat komentář