GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit server centrálního protokolování pomocí Rsyslog na Ubuntu 20.04

Rsyslog je open-source nástroj pro zpracování protokolů. Umožňuje logování dat z různých typů systémů do centrálního úložiště. Rsyslog je protokol Syslog s více rozšířeními, funkcemi a výhodami.

Co dělá rsyslog tak výkonným? Rsyslog může doručit více než jeden milion zpráv za sekundu do místních destinací, pokud je aplikováno omezené zpracování.

V tomto tutoriálu se naučíme, jak nainstalovat a nakonfigurovat rsyslog na Ubuntu 20.04 .

Funkce Rsyslog

Rsyslog přišel v roce 2004. a rozšiřuje protokol syslog o nové funkce:

  • Podpora protokolu RELP
  • Podpora provozu s vyrovnávací pamětí
  • Poslouchání připojení TCP/UDP (s omezením portu, IP)
  • Podpora načítání velkého množství modulů (například modul pro podporu protokolu RELP)
  • Podpora pro zahození zprávy, která obsahuje speciálně nakonfigurovaná pravidla

V Rsyslog zůstávají konfigurační soubory stejné jako Syslog. To jednoduše znamená, že můžete zkopírovat soubor syslog.conf přímo do rsyslog.conf a bude to fungovat.

Co jsou protokoly a syslog?

Než přejdeme k samotnému procesu konfigurace, podívejme se nejprve, k čemu se používají protokoly? Informace z protokolu vám mohou skutečně pomoci zjistit, co se přesně stalo ve vašem systému nebo co se přesně děje pod kapotou.

Dovolte mi uvést příklad:pokud náhle váš počítač zamrzl nebo možná havaroval nebo dokonce došlo k výpadku vašeho systému a mnohem užitečnější informace, které při zobrazení chybové zprávy nevidíte obvyklým způsobem.

Pokud víte, jak správně používat protokoly, mohou vám poskytnout mnoho funkcí a výhod pro diagnostické informace o samotném systému.

Ve výchozím nastavení Linux používá démona syslog k zaznamenávání protokolů o tom, jak systém běží, a poté tyto protokoly vkládá do centrálního úložiště v:/var/log kde je můžeme zkoumat a zkoumat.
Zjednodušeně řečeno, vše od událostí jádra po akce uživatelů je protokolováno systémem Linux, což vám umožňuje vidět téměř všechny akce provedené na vašem počítači nebo serverech.

V systému souborů Linux existuje jeden speciální adresář pro ukládání protokolů s názvem /var/log . Tento adresář obsahuje všechny protokoly ze samotného OS, jako jsou:služby nebo různé aplikace běžící na systému.

Podívejme se, jak vypadají adresáře a struktury protokolů na čerstvém Linuxu ubuntu 20.04.

Adresář, kde jsou uloženy různé druhy protokolů:

/var/log/syslog - Ukládá všechny spouštěcí zprávy, zprávy spouštění aplikací atd. Prakticky ukládá všechny globální systémové protokoly.
/var/log/cron - Úlohy Cron jsou v podstatě druhem naplánovaných a automatizovaných úloh vytvořených v systému, které se spouštějí pravidelně a opakovaně. Můžete vidět, co by tento adresář protokolů uložil.
/var/log/kern.log – ukládá protokoly jádra. Bez ohledu na to, jaké jsou protokoly. Protokoly událostí, chyb nebo upozornění.
/var/log/auth.log - Protokoly autentizace
/var/log.boot.log - Protokoly spouštění systému
/var/log/mysql.d - Mysql protokoly
/var/log/httpd - Adresář protokolů Apache
/var/log/maillog - Protokoly poštovního serveru

Nastavit Rsyslog Centralized Log Server na Ubuntu 20.04

Po krátkém přehledu, co jsou logy, Syslog a kde má rsyslog místo, přejděme k samotnému procesu konfigurace.

Předpoklady

  • Dva servery se systémem Ubuntu 20.04
  • Statická IP adresa:příklad 192.168.0.101 je potřeba nakonfigurovat na serveru Rsyslog a 192.168.0.102 je nakonfigurován na klientském počítači Rsyslog

Systém Ubuntu 20.04 má ve výchozím nastavení nainstalovaný rsyslog který byl dodáván se standardními balíčky systému.

Můžete zkontrolovat, zda běží:

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Spusťte následující příkaz a zkontrolujte verzi Rsyslog, která je aktuálně nainstalována:

$ rsyslogd -v

Výstup:

rsyslogd  8.2001.0 (aka 2020.01) compiled with:
         PLATFORM:                               x86_64-pc-linux-gnu
         PLATFORM (lsb_release -d):
         FEATURE_REGEXP:                         Yes
         GSSAPI Kerberos 5 support:              Yes
         FEATURE_DEBUG (debug build, slow code): No
         32bit Atomic operations supported:      Yes
         64bit Atomic operations supported:      Yes
         memory allocator:                       system default
         Runtime Instrumentation (slow code):    No
         uuid support:                           Yes
         systemd support:                        Yes
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

V případě, že není nainstalován nebo spuštěn, nainstalujte rsyslog pomocí následujících příkazů:

$ sudo apt-get update
$ sudo apt-get install rsyslog

Nyní je čas přejít na rsyslog.conf soubor, odkomentovat a změnit některé řádky pro spuštění služby rsyslog v režimu serveru:

$ sudo nano /etc/rsyslog.conf

Odkomentujte tyto čtyři řádky, které umožňují vazbu portů udp a tcp:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Dalším krokem, který budeme muset přidat, je vytvoření nové šablony. Musíme vytvořit novou šablonu pro příjem vzdálených zpráv. Šablona poskytne serveru rsyslog instrukce o tom, jak ukládat příchozí zprávy syslog.

POZNÁMKA: Přidejte šablonu těsně před GLOBAL DIRECTIVES sekce:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

Výše uvedený řádek označuje, že přijaté protokoly budou zpracovány a uloženy v adresáři /var/log/. V souboru /etc/rsyslog.conf můžete definovat, kam se mají rsyslog protokoly.

Název souboru obsahuje proměnné %HOSTNAME% a %PROGRAMNAME% představují klientský počítač a název klientského programu, který vytvořil zprávu protokolu.

Uložte a poté restartujte službu rsyslog:

$ sudo systemctl restart rsyslog

Ověřte, že služba rsyslog naslouchá na nakonfigurovaných portech:

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Pokud možná máte službu brány firewall ufw, musíte povolit pravidla portu brány firewall rsyslog:

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

Chcete-li ověřit konfiguraci , spusťte následující příkaz:

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Nakonfigurujte Rsyslog na klientovi

Po dokončení této konfigurace serveru rsyslog je dalším krokem konfigurace klientského počítače rsyslog pro odesílání protokolů na vzdálený server rsyslog server.

Jak jdeme se souborem rsyslog.conf na vzdáleném serveru, otevře se tento soubor na straně klienta pomocí vašeho oblíbeného editoru a upraví některé změny:

sudo nano /etc/rsyslog.conf

A povolit zachování FQDN:Alternativně, chcete-li, aby byl rsyslog zasílán s plně kvalifikovaným názvem domény (FQDN, jako je system1.example.com) namísto pouhého názvu hostitele (system1), použijte direktivu:

$PreserveFQDN on

Na konec přidejte nakonfigurovaný vzdálený server rsyslog.

 @192.168.0.101:514

Nebo můžete povolit odesílání protokolů přes UDP. Pro TCP použijte @@ , místo jednoho

*.* @@192.168.0.101:514

Na závěr přidejte tyto proměnné v případě, že selže server rsyslog:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Poté restartujte službu rsyslog:

sudo systemctl restart rsyslog

Ověřte protokoly

Po dokončení konfigurace na klientském počítači chceme ověřit, že vše proběhlo v pořádku.

Přejděte na svůj server Rsyslog a ověřte protokoly ze svého klientského počítače:

$ ls /var/log/

Najdete něco takového:

V mém případě je adresář s názvem obrad název mého klientského počítače, který aktuálně používám. Vstoupíme do tohoto adresáře a uvidíme něco takového:

Měli byste vidět všechny soubory protokolu generované Rsyslog.

Kterýkoli z těchto protokolů můžete zkontrolovat pomocí následujícího příkazu:Pojďme například zkontrolovat systemd.log .

$ tail -f /var/log/obrad/systemd.log

A uvidíte něco takového:

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: Succeeded.

Jak můžete vidět, spustil jsem na svém klientském počítači úpravu textu terminálu a gedit a vygeneroval Rsyslog a zobrazil to ve výstupu.

Závěr

V tomto tutoriálu jsme se naučili, jak nakonfigurovat základní parametry pro rsyslog pomocí modelu klient-server na Ubuntu 20.04. Dalšími alternativami pro Rsyslog jsou syslog-ng, FluentD, Logstash, GreyLog2 a Logagent, Filebeat.




Ubuntu
  1. Jak nastavit Rsyslog Server na Debianu 11

  2. Jak nastavit NTP server na Ubuntu a LinuxMint

  3. Jak nastavit vzdálené přihlášení Rsyslog v systému Linux (Central Log Server)

  1. Jak nastavit Rsyslog Server na Ubuntu 18.04 LTS

  2. Jak nastavit server centralizovaného protokolování pomocí Rsyslog

  3. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  1. Jak nastavit server OpenVPN na Ubuntu 20.04

  2. Jak nastavit FTP server s VSFTPD na Ubuntu 20.04

  3. Jak nastavit FTP server s VSFTPD na Ubuntu 18.04