GNU/Linux >> Znalost Linux >  >> Debian

Nainstalujte centralizovaný server protokolů s Rsyslog v Debianu 9

V Linuxu jsou soubory protokolu soubory, které obsahují zprávy o funkcích systému, které používají správci systému k identifikaci případných problémů na počítačích. Protokoly pomáhají správcům vizualizovat události, které se staly v systému v průběhu časových období. Obvykle jsou všechny soubory protokolu uchovávány pod /var/log adresář v Linuxu. V tomto umístění existuje několik typů souborů protokolu pro ukládání různých zpráv, jako je soubor protokolu pro záznam systémových událostí, soubor protokolu pro zprávy související se zabezpečením, další soubory protokolu vyhrazené pro jádro, uživatele nebo úlohy cron. Hlavním účelem souborů protokolu je odstraňování problémů se systémem. Většina souborů protokolu v Linuxu je řízena službou rsyslogd. V novějších verzích linuxových distribucí jsou soubory protokolu také řízeny a spravovány systémovou službou journald, která je součástí inicializačního programu systemd. Protokoly uložené démonem žurnálu jsou zapsány v binárním formátu a jsou převážně nestálé, uložené v RAM a v ring-bufferu v /run/log/journal/. Službu deníku však lze také nakonfigurovat tak, aby trvale ukládala zprávy Syslog.

V Linuxu lze server rsyslog nakonfigurovat tak, aby spouštěl centrálního správce protokolů v modelu služby-klient a posílal protokolové zprávy přes síť prostřednictvím přenosových protokolů TCP nebo UDP nebo přijímal protokoly ze síťových zařízení, serverů, směrovačů, přepínačů nebo jiné systémy nebo vestavěná zařízení, která generují protokoly.

Démon Rsyslog lze nastavit tak, aby běžel jako klient a server současně. Nakonfigurován tak, aby běžel jako server, bude Rsyslog naslouchat na výchozím portu 514 TCP a UDP a začne shromažďovat zprávy protokolu, které vzdálené systémy odesílají přes síť. Jako klient bude Rsyslog po síti odesílat zprávy interního protokolu na vzdálený server Ryslog přes stejné porty TCP nebo UDP.

Rsyslog bude filtrovat zprávy syslog podle vybraných vlastností a akcí. Filtry rsyslog jsou následující:

  1. Zařízení nebo Prioritní soubory
  2. Filtry založené na vlastnostech
  3. Filtry založené na výrazech

 Zařízení filtr je reprezentován interním subsystémem Linuxu, který vytváří protokoly. Jsou rozděleny do kategorií, jak je uvedeno níže:

  • auth/authpriv =zprávy vytvořené autentizačními procesy
  • cron =protokoly související s úlohami cron
  • démon =zprávy související se spuštěnými systémovými službami
  • jádro =Zprávy jádra Linux
  • mail =zprávy poštovního serveru
  • syslog =zprávy související se syslogem nebo jinými démony (sem posílá protokoly DHCP server)
  • lpr =tiskárny nebo zprávy tiskového serveru
  • místní0 – místní7 =vlastní zprávy pod správou správce

 priorita nebo závažnost úrovně jsou přiřazeny klíčovému slovu a číslu, jak je popsáno níže.

  • emerg =Nouzový stav – 0
  • upozornění =Upozornění – 1
  • chyba =Chyby – 3
  • varovat =Varování – 4
  • oznámení =Upozornění – 5
  • informace =Informace – 6
  • ladění =Ladění – 7 nejvyšší úrovně

K dispozici jsou také některá speciální klíčová slova Rsyslog, jako je hvězdička (* ) znak pro definování všech
zařízení nebo priorit, žádné klíčové slovo, které neurčuje žádné priority, rovnítko (= ), který vybere pouze tuto prioritu a vykřičník (! ), který neguje prioritu.

Akční část syslogu představuje cíl prohlášení. Cílem zprávy protokolu může být soubor uložený v systému souborů, soubor v systémové cestě /var/log/, další vstup místního procesu přes pojmenovanou rouru nebo FIFO. Zprávy protokolu mohou být také směrovány uživatelům, zahozeny do černé díry (/dev/null) nebo odeslány na stdout nebo na vzdálený server syslog pomocí protokolu TCP/UDP. Zprávy protokolu mohou být také uloženy v databázi, jako je MySQL nebo PostgreSQL.

Konfigurovat Rsyslog jako server

Démon Rsyslog je automaticky nainstalován ve většině distribucí Linuxu. Pokud však Rsyslog není na vašem systému nainstalován, můžete za účelem instalace služby zadat jeden z níže uvedených příkazů> ke spuštění příkazů budete potřebovat oprávnění root.

V distribucích založených na Debianu:

sudo apt-get install rsyslog

V distribucích založených na RHEL, jako je CentOS:

sudo yum install rsyslog

Chcete-li ověřit, zda je v systému spuštěn démon Rsyslog, proveďte níže uvedené příkazy v závislosti na verzi vaší distribuce.

V novějších distribucích Linuxu se systemd:

stav systemctl rsyslog.service

Na starších verzích Linuxu s init:

stav rsyslog služby
/etc/init.d/rsyslog status

Chcete-li spustit démona rsyslog, zadejte následující příkaz.

Na starších verzích Linuxu s init:

spuštění služby rsyslog
/etc/init.d/rsyslog start

V nejnovějších distribucích Linuxu:

systemctl spustí rsyslog.service

Chcete-li nastavit program rsyslog pro běh v režimu serveru, upravte hlavní konfigurační soubor v /etc/rsyslog.conf. V tomto souboru proveďte následující změny, jak je ukázáno v níže uvedené ukázce.

sudo vi /etc/rsyslog.conf

Vyhledejte a odkomentujte odstraněním hashtagu (#) na následujících řádcích, abyste umožnili příjem zpráv protokolu UDP na portu 514. Ve výchozím nastavení syslog používá port UDP k odesílání a přijímání zpráv.

$ModLoad imudp 
$UDPServerRun 514

Protože protokol UDP není spolehlivý pro výměnu dat po síti, můžete nastavit Rsyslog tak, aby odesílal zprávy protokolu na vzdálený server prostřednictvím protokolu TCP. Chcete-li povolit protokol příjmu TCP, otevřete /etc/rsyslog.conf soubor a odkomentujte následující řádky, jak je uvedeno níže. To umožní démonu rsyslog navázat se a naslouchat na soketu TCP na portu 514.

$ModLoad imtcp 
$InputTCPServerRun 514

Oba protokoly lze v rsyslog povolit, aby běžely současně.

Pokud chcete určit, kterým odesílatelům povolíte přístup k démonu rsyslog, přidejte za řádky povoleného protokolu následující řádek:

$AllowedSender TCP, 127.0.0.1, 10.110.50.0/24, *.yourdomain.com

Před přijetím příchozích protokolů budete také muset vytvořit novou šablonu, která bude analyzována démonem rsyslog. Šablona by měla dát místnímu serveru Rsyslog pokyn, kam má ukládat příchozí zprávy protokolu. Šablonu definujte hned za $AllowedSender řádek, jak je znázorněno na níže uvedené ukázce.

$template Incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.*   ?Příchozí protokoly
&~

  Chcete-li protokolovat pouze zprávy generované zařízením kern, použijte níže uvedenou syntaxi.

kern.*   ?Příchozí protokoly

Přijaté protokoly jsou analyzovány výše uvedenou šablonou a budou uloženy v místním souborovém systému v adresáři /var/log/ v souborech pojmenovaných podle klientského zařízení hostname, které zprávy vytvořilo:%HOSTNAME% a %PROGRAMNAME% proměnné.

Níže &~ pravidlo přesměrování nakonfiguruje démona Rsyslog tak, aby ukládal příchozí zprávy protokolu pouze do výše uvedených souborů určených názvy proměnných. V opačném případě budou přijaté protokoly dále zpracovávány a také uloženy v obsahu místních protokolů, jako je soubor /var/log/syslog.

Chcete-li přidat pravidlo pro zahození všech souvisejících zpráv protokolu do pošty, můžete použít následující příkaz.

mail.* ~

Další proměnné, které lze použít pro výstup jmen souborů, jsou:%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, %$year%, %$month%, %$day%

Počínaje verzí Rsyslog 7 lze k deklaraci šablony na serveru Rsyslog použít nový konfigurační formát.

Ukázka šablony verze 7 může vypadat jako na následujících řádcích.

template(name="MyTemplate" type="string"
         string="/var/log/%FROMHOST-IP%/%PROGRAMNAME:::secpath-replace%.log"
        )

  Další režim, kterým můžete napsat výše uvedenou šablonu, může být také takový, jak je ukázáno níže:

template(name="MyTemplate" type="list") {
    konstanta(value="/var/log/")
    property(name="fromhost-ip")
    konstanta(value="/")
    property(name="název programu" SecurePath="nahradit")
    konstanta(value=".log")
    }

Chcete-li použít jakékoli změny provedené v konfiguračním souboru rsyslog, musíte restartovat démona, aby se načetla nová konfigurace.

restartování rsyslog služby sudo
sudo systemctl restart rsyslog

Chcete-li zkontrolovat, které zásuvky rsyslog ve stavu naslouchání jsou otevřeny v systému Debian Linux, můžete spustit netstat příkaz s právy root. Předejte výsledky pomocí nástroje filtru, jako je grep .

sudo netstat –tulpn | grep rsyslog

Uvědomte si, že musíte také otevřít porty Rsyslog ve firewallu, aby bylo možné navazovat příchozí spojení.

V distribucích založených na RHEL s aktivovaným Firewallem vydávejte níže uvedené příkazy:

firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd –reload

V distribucích založených na Debianu s aktivním firewallem UFW zadejte níže uvedené příkazy:

ufw povolit 514/tcp
ufw povolit 514/udp

Pravidla brány firewall iptables:

iptables -A INPUT -p tcp -m tcp --dport 514 -j PŘIJÍMAT
iptables -A INPUT -p udp --dport 514 -j PŘIJÍMAT

Konfigurovat Rsyslog jako klienta

Chcete-li povolit spuštění démona rsyslog v klientském režimu a výstup zpráv místního protokolu na vzdálený server Rsyslog, upravte /etc/rsyslog.conf soubor a přidejte jeden z následujících řádků:

*. *  @IP_REMOTE_RSYSLOG_SERVER:514
*. *  @FQDN_RSYSLOG_SERVER:514

Tento řádek umožňuje službě Rsyslog odesílat všechny interní protokoly na vzdálený server Rsyslog na portu UDP 514.

Pro odeslání protokolů přes TCP protokol použijte následující šablonu:

*. *  @@IP_reomte_syslog_server:514

Chcete-li na server rsyslog odeslat pouze protokoly související s cronem se všemi prioritami, použijte níže uvedenou šablonu:

cron.* @ IP_reomte_syslog_server:514

V případech, kdy server Rsyslog není dostupný přes síť, připojte níže uvedené řádky k souboru /etc/rsyslog.conf na straně klienta, aby se protokoly dočasně uložily do souboru s vyrovnávací pamětí disku, dokud se server nepřipojí.

Fronta $ActionQueueFileName
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown dne
$ActionQueueType LinkedList
$ActionResume Chcete-li použít výše uvedená pravidla, musí být démon Rsyslog restartován, aby mohl fungovat jako klient.


Debian
  1. Jak nainstalovat Redis Server na Debian 11

  2. Jak nainstalovat HTTP Git Server s Nginx na Debian 11

  3. Nainstalujte WordPress se vzdálenou databází na Debian

  1. Jak nastavit Rsyslog Server na Debianu 11

  2. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  3. Nainstalujte phpMyAdmin na Debian 11 s Nginx

  1. Jak nainstalovat Minecraft Server na Debian 9

  2. Jak nainstalovat SuiteCRM na Debian 9

  3. Nainstalujte Cockpit na Debian 9