Logmanager dokumentace
Přepnout tmavý/světlý/automatický režim Přepnout tmavý/světlý/automatický režim Přepnout tmavý/světlý/automatický režim Zpět na domovskou stránku

Linux Syslog-NG

Syslog zapisuje události v systémech Linux. Tyto zprávy jsou ukládány lokálně do jednotlivých souborů. Tyto zprávy lze nastavit tak, aby se přeposílali na server Logmanager.

Po úpravách konfiguračních souborů doporučujeme provést kontrolu validity příkazem syslog-ng -s.

Základní nastavení

Nejprve je potřeba ověřit základní nastavení, které je společné pro další možnosti konfigurace:

  1. Zeditujte konfigurační soubor /etc/syslog-ng/syslog-ng.conf.

  2. Zkontrolujte, zda soubor obsahuje tyto parametry:

     source s_src { system(); internal(); };
     @include "/etc/syslog-ng/conf.d/"
    
  3. Soubor uložte.

Předávání všech zpráv na Logmanager

Pokud požadujete odesílat všechny zprávy, které se vyskytují v systému, postupujte podle následujících kroků:

  1. Vytvořte soubor /etc/syslog-ng/conf.d/lm.conf.

  2. Vložte do něj následující kód:

     destination d_netlm {
         tcp(
             "<Logmanager_IP_address>"
             port(514)
             log-fifo-size(10000)
         );
     };
     log { source(s_src); destination(d_netlm); };
    

    Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

    log-fifo-size je výstupní fronta Syslogu. Číslo udává maximální počet zpráv, které mohou být uloženy ve frontě. V případě výpadku spojení s Logmanager serverem se do této fronty ukládají neodeslané zprávy. Po dosažení stanoveného limitu se začnou příchozí zprávy zahazovat až do okamžiku opětovného navázání komunikace.

  3. Soubor uložte.

  4. Zrestartujte službu syslog-ng příkazem: /etc/init.d/syslog-ng restart

Nyní bude server Syslog-NG zasílat zprávy na server Logmanager.

Předávání logů konkrétního programu

Pokud požadujete odesílat pouze zprávy z určitého programu (služby), postupujte podle následujících kroků:

  1. Vytvořte soubor /etc/syslog-ng/conf.d/lm_<program_name>.conf.

  2. Vložte do něj následující kód:

     destination d_netlm {
         tcp(
             "<Logmanager_IP_address>"
             port(514)
             log-fifo-size(10000)
         );
     };
     filter f_<program_name> { program("<program_name>"); };
     log { source(s_src); filter(f_<program_name>); destination(d_netlm); };
    

    Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

    program_name nahraďte požadovaným jménem programu, například sshd pro monitorování přístupů přes SSH daemona.

    log-fifo-size je výstupní fronta Syslogu. Číslo udává maximální počet zpráv, které mohou být uloženy ve frontě. V případě výpadku spojení s Logmanager serverem se do této fronty ukládají neodeslané zprávy. Po dosažení stanoveného limitu se začnou příchozí zprávy zahazovat až do okamžiku opětovného navázání komunikace.

  3. Soubor uložte.

  4. Zrestartujte službu syslog-ng příkazem: /etc/init.d/syslog-ng restart

Nyní bude server Syslog-NG zasílat zprávy na server Logmanager.

Ukázka logování z konkrétní služby

Ukázka konfigurace předávání logů ze služby SSH:

destination d_netlm {
    tcp(
        "<Logmanager_IP_address>"
        port(514)
        log-fifo-size(10000)
    );
};
filter f_sshd { program("sshd"); };
log { source(s_src); filter(f_sshd); destination(d_netlm); };
Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

Předávání konkrétního log souboru

Pokud požadujete odesílat pouze konkrétní log soubor, postupujte podle následujících kroků:

  1. Vytvořte soubor /etc/syslog-ng/conf.d/lm_<program_name>.conf.

  2. Vložte do něj následující kód:

     destination d_netlm {
         tcp(
             "<Logmanager_IP_address>"
             port(514)
             log-fifo-size(10000)
         );
     };
     source s_<program_name> {
     file(
         "/var/log/<program_name>"
         program_override("<program_name>")
     );
     };
     log { source(s_<program_name>); destination(d_netlm); };
    

    Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

    program_name nahraďte požadovaným jménem programu, například sshd pro monitorování přístupů přes SSH daemona.

    log-fifo-size je výstupní fronta Syslogu. Číslo udává maximální počet zpráv, které mohou být uloženy ve frontě. V případě výpadku spojení s Logmanager serverem se do této fronty ukládají neodeslané zprávy. Po dosažení stanoveného limitu se začnou příchozí zprávy zahazovat až do okamžiku opětovného navázání komunikace.

  3. Soubor uložte.

  4. Zrestartujte službu syslog-ng příkazem: /etc/init.d/syslog-ng restart

Nyní bude server Syslog-NG zasílat zprávy na server Logmanager.

Ukázka logování log souboru

Ukázka konfigurace předávání logů ze služby Apache Tomcat:

destination d_netlm {
    tcp(
        "<Logmanager_IP_address>"
        port(514)
        log-fifo-size(10000)
    );
};
source s_tomcat {
   file(
      "/var/log/tomcat7/localhost_access.log"
      program_override("tomcat")
   );
};
log { source(s_tomcat); destination(d_netlm); };
Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

Předávání logů určité facility nebo severity

Pokud požadujete odesílat pouze zprávy konkrétní facility a severity, postupujte podle následujících kroků:

  1. Vytvořte soubor /etc/syslog-ng/conf.d/lm_facility_severity.conf.

  2. Vložte do něj následující kód:

     destination d_netlm {
         tcp(
             "<Logmanager_IP_address>"
             port(514)
             log-fifo-size(10000)
         );
     };
    
     # filtr pro kritickou severitu
     filter f_crit { level(crit) };
     log { source(s_src); filter(f_crit); destination(d_netlm); };
    
     # nebo filtr pro facilitu mail
     filter f_mail { facility(mail) };
     log { source(s_src); filter(f_mail); destination(d_netlm); };
    

    Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.

    log-fifo-size je výstupní fronta Syslogu. Číslo udává maximální počet zpráv, které mohou být uloženy ve frontě. V případě výpadku spojení s Logmanager serverem se do této fronty ukládají neodeslané zprávy. Po dosažení stanoveného limitu se začnou příchozí zprávy zahazovat až do okamžiku opětovného navázání komunikace.

  3. Soubor uložte.

  4. Zrestartujte službu syslog-ng příkazem: /etc/init.d/syslog-ng restart

Nyní bude server Syslog-NG zasílat zprávy na server Logmanager.

Nastavení pro Syslog-NG 3.8 a vyšší

Od této verze Syslog-NG podporuje ukládání zpráv na disk v případě výpadku spojení mezi Syslog-NG a Logmanager serverem. Pokud požadujete ukládat větší množství neodeslaných zpráv na disk, je možné změnit následující konfiguraci:

destination d_netlm {
    tcp(
        "<Logmanager_IP_address>"
        port(514)
        disk-buffer(
            mem-buf-size(10000)
            disk-buf-size(2000000)
            reliable(yes)
        )
    );
};

Kompletní ukázka nastavení odesílání všech zpráv na server Logmanager:

destination d_netlm {
    tcp(
        "<Logmanager_IP_address>"
        port(514)
        disk-buffer(
            mem-buf-size(10000)
            disk-buf-size(2000000)
            reliable(yes)
        )
    );
};
log { source(s_src); destination(d_netlm); };
Logmanager_IP_address je IP adresa Vašeho serveru Logmanager.
Ukládání zpráv na disk je pomalejší než ukládání zpráv do paměti. V případě většího množství zpráv může Syslog-NG negativně ovlivnit výkon serveru.

Alternativa nastavení pro Syslon-NG se zabezpečením TLS

  1. Vytvořte složku pro certifikáty:

    sudo mkdir /etc/syslog-ng/ca.d
    
  2. Přejděte do nově vytvořené složky:

    cd /etc/syslog-ng/ca.d
    
  3. Zkopírujte do složky veřejný certifikát CA (ve formátu .pem)

  4. Proveďte následující příkaz:

    openssl x509 -noout -hash -in ca-certifikat.pem (výsledkem by měla být hash, např. 6d2962a8)
    
  5. Vytvořte symbolický link na certifikát (je potřeba si zkopírovat hash z předchozího příkazu a přidat za hash suffix .0):

    ln -s ca-certifikát.pem 6d2962a8.0
    
  6. Vytvořte soubor /etc/syslog-ng/conf.d/lm_TLS.conf

  7. Vložte do něj následující kód:

     destination d_netlm {
         network("<hostname/IP zadaná v CN certifikátu>" port(6514)
             transport("tls")
             tls( ca-dir("/etc/syslog-ng/ca.d"))
         );
     };
     log { source(s_src); destination(d_netlm); };