V systému Linux jsou soubory protokolu soubory obsahující zprávy o systémových funkcích, které používají správci systému k identifikaci případných problémů na strojích. Záznamy pomáhají správcům vizualizovat události, ke kterým došlo v systému v časech. Obvykle jsou všechny soubory protokolu uloženy pod / var / log 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 zaznamenávání systémových událostí, soubor protokolu pro zprávy týkající se zabezpečení, další soubory protokolu určené 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 systému Linux je řízena službou rsyslogd. Na novějších verzích distribucí systému Linux jsou také soubory protokolu kontrolovány a spravovány službou journald system, která je součástí systémového inicializačního programu. Záznamy uložené démonem časopisu jsou napsány v binárním formátu a jsou převážně volatilní, uloženy v paměti RAM a v kruhu v / run / log / journal /. Služba časopisu však může být také nakonfigurována tak, aby trvale ukládala zprávy Syslog.
V systému Linux může být server rsyslog nakonfigurován tak, aby spustil centrální správce protokolů v modelu služby klient-klient a odeslal zprávy protokolu přes síť přes protokoly přenosu protokolu TCP nebo UDP nebo přijímal protokoly ze síťových zařízení, serverů, směrovačů, přepínačů nebo další systémy nebo vestavěná zařízení, která generují protokoly.
Rsyslog daemon může být nastaven tak, aby běžel jako klient a server současně. Nakonfigurovaný jako server, Rsyslog bude poslouchat na výchozím portu 514 TCP a UDP a začne shromažďovat zprávy protokolu, které jsou odesílány přes síť vzdálenými systémy. Rsyslog jako klient odešle po síti vnitřní protokolové zprávy na vzdálený server Ryslog prostřednictvím stejných portů TCP nebo UDP.
Rsyslog bude filtrovat syslog zprávy podle vybraných vlastností a akcí. Filtry rsyslog jsou následující:
- Zařízení nebo priority
- Filtry založené na vlastnostech
- Filtry na základě výrazů
Projekt zařízení filtr je reprezentován interním subsystémem Linux, který vytváří protokoly. Jsou kategorizovány tak, jak je uvedeno níže:
- auth / authpriv = zprávy vytvořené ověřovacími procesy
- cron= protokoly týkající se úkolů cron
- démon = zprávy týkající se služeb běžícího systému
- jádro = Zprávy jádra Linuxu
- mail = zprávy poštovního serveru
- syslog = zprávy týkající se syslogu nebo jiných démonů (server DHCP odesílá protokoly zde)
- Lpr = tiskárny nebo zprávy tiskového serveru
- místní0 - místní7 = vlastní zprávy pod správcem
Projekt priority nebo závažnosti úrovně jsou přidělena klíčovému slovu a číslu, jak je popsáno níže.
- tísňová = Nouzové - 0
- upozornit = Upozornění - 1
- chybovat = Chyby - 3
- varovat = Výstrahy - 4
- oznámení = Oznámení - 5
- info = Informace - 6
- ladit = Debugging - Nejvyšší úroveň 7
K dispozici je také několik speciálních klíčových slov Rsyslog, jako je hvězdička (*) pro definování všech
zařízení nebo priorit, žádný klíčové slovo, které neupřesňuje žádné priority, rovnost označení (=), který vybírá pouze tuto prioritu a výkričník (!), což znemožňuje prioritu.
Akční část syslog je reprezentována příkazem destinace prohlášení. Cílem zprávy protokolu může být soubor uložený v souborovém systému, soubor v / var / log / systémové cestě, jiný místní procesový vstup prostřednictvím pojmenované trubky nebo FIFO. Záznamy protokolu mohou být také směrovány na uživatele, odhozeny do černé díry (/ dev / null) nebo posílány do stdout nebo vzdáleného serveru syslog přes protokol TCP / UDP. Záznamy protokolu mohou být také uloženy v databázi, jako je MySQL nebo PostgreSQL.
Konfigurace služby Rsyslog jako serveru
Démon Rsyslog se automaticky instaluje do většiny distribucí Linuxu. Pokud však ve vašem systému není nainstalován Rsyslog, můžete k instalaci služby vydat jeden z níže uvedených příkazů> ke spuštění příkazů budete potřebovat oprávnění root.
V distribučních systémech Debian:
sudo apt-get nainstalovat rsyslog
V distribuovaných distribučních systémech RHEL jako CentOS:
sudo yum install rsyslog
Chcete-li ověřit, zda je spuštěn démon Rsyslog v systému, spusťte níže uvedené příkazy v závislosti na distribuční verzi.
Na novějších distribucích systému Linux s systemd:
systémový stav rsyslog.service
Na starších verzích Linux s init:
status služby rsyslog
/etc/init.d/rsyslog stav
Chcete-li spustit démon rsyslog, zadejte následující příkaz.
Na starších verzích Linux s init:
service rsyslog start
/etc/init.d/rsyslog start
Na nejnovějších Linux distribucích:
systemctl start rsyslog.service
Chcete-li nastavit program rsyslog pro spuštění v režimu serveru, upravte hlavní konfigurační soubor v souboru /etc/rsyslog.conf. V tomto souboru proveďte následující změny, jak ukazuje níže uvedený vzorek.
sudo vi /etc/rsyslog.conf
Vyhledejte a odkomentujte odebráním značky hash (#) následujících řádků, aby bylo umožněno přijímání protokolu protokolu UDP na portu 514. Ve výchozím nastavení je port UDP syslog používán pro odesílání a přijímání zpráv.
$ ModLoad imudp $ UDPServerRun 514
Vzhledem k tomu, že protokol UDP není spolehlivý pro výměnu dat v síti, můžete nastavit protokol Rsyslog, aby protokoly protokolu protokolu TCP protokolů odesílali na vzdálený server. Chcete-li povolit protokol příjmu protokolu TCP, otevřete /etc/rsyslog.conf soubor a odkomentujte následující řádky, jak je uvedeno níže. To umožní démonu rsyslog vázat a naslouchat na TCP soketu na portu 514.
$ ModLoad imtcp $ InputTCPServerRun 514
Oba protokoly mohou být povoleny v rsyslog ke spuštění současně.
Chcete-li určit, na které odesílatele povolíte přístup k démonu rsyslog, přidejte následující řádek po řádcích povolených protokolů:
$ AllowedSender TCP, 127.0.0.1, 10.110.50.0 / 24, * .yourdomain.com
Budete také muset vytvořit novou šablonu, která bude analyzována démonem rsyslog před přijetím příchozích protokolů. Šablona by měla instruovat místní server Rsyslog, kam ukládat příchozí zprávy protokolu. Definujte šablonu hned za $ AllowedSender line, jak je ukázáno na níže uvedeném vzorku.
$ template Příchozí protokoly, "/ var / log /% HOSTNAME% /% PROGRAMNAME% .log" *. * ? Příchozí protokoly & ~
Chcete-li protokolovat pouze zprávy generované serverem 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 lokálním souborovém systému v adresáři / var / log / v souborech pojmenovaných podle klientského zařízení klientského klienta, které vytvořilo zprávy: % HOSTNAME% a % PROGRAMNAME% proměnné.
Níže & ~ pravidlo přesměrování nakonfiguruje démona Rsyslog pro ukládání příchozích zpráv 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ány a uloženy v obsahu místních protokolů, jako je například soubor / var / log / syslog.
Chcete-li přidat pravidlo, chcete-li odstranit všechny související zprávy protokolu do pošty, můžete použít následující příkaz.
mail. * ~
Další proměnné, které lze použít k výstupu názvů souborů, jsou:% syslogseverity%,% syslogfacility%,% timegenerated%,% HOSTNAME%,% syslogtag%,% msg%,% FROMHOST-IP%,% PRI%,% % APP-NAME%,% TIMESTAMP%,% $ rok%,% $ měsíc%,% $ den%
Počínaje Rsyslog verze 7, nový formát konfigurace lze použít k deklarování šablony v serveru Rsyslog.
Vzor šablony verze 7 může vypadat podobně jako v následujících řádcích.
šablona (název = "MyTemplate" typ = "řetězec" string = "/ var / log /% FROMHOST-IP% /% PROGRAMNAME ::: secpath-replace%.
Jiný režim, který můžete napsat výše uvedenou šablonu, může být také zobrazen níže:
šablona (name = "MyTemplate" type = "list") {konstanta (hodnota = "/ var / log / "SecurePath =" replace ") konstanta (hodnota =" .log ")}
Chcete-li aplikovat změny provedené v konfiguračním souboru rsyslog, musíte znovu spustit démon a načíst novou konfiguraci.
sudo služba rsyslog restart
sudo systemctl restartujte rsyslog
Chcete-li zkontrolovat, které sokety rsyslog v režimu naslouchání jsou otevřeny v systému Debian Linux, můžete spustit netstat příkaz s oprávněním uživatele root. Výsledky projděte pomocí nástroje filtru, jako je například grep.
sudo netstat -tulpn | grep rsyslog
Uvědomte si, že musíte také otevřít porty Rsyslog v bráně firewall, aby bylo možné vytvořit příchozí připojení.
V distribučních systémech založených na RHEL s aktivovaným Firewaldem vydáváte následující příkazy:
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd -reload
V distribuovaných distribučních systémech se systémem UFW firewall aktivujte následující příkazy:
ufw povolit 514 / tcp
ufw povolit 514 / udp
Pravidla firewallu Iptables:
iptables -A INPUT -p tcp -m tcp --dport 514 -j PŘIJÍMAT
iptables -A VSTUP -p udp --dport 514 -j PŘIJMOUT
Konfigurace služby Rsyslog jako klienta
Chcete-li povolit spuštění rsyslog daemon v klientském režimu a vygenerovat zprávy 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 vyvést všechny interní protokoly do vzdáleného serveru Rsyslog na portu UDP 514.
Chcete-li odeslat protokoly protokolem TCP, použijte následující šablonu:
*. * @@ IP_reomte_syslog_server: 514
Chcete-li vygenerovat pouze protokoly související s protokolem cron se všemi prioritami na server rsyslog, použijte následující šablonu:
cron. * @ IP_reomte_syslog_server: 514
V případech, kdy není server Rsyslog dosažitelný prostřednictvím sítě, přidejte následující řádky do souboru /etc/rsyslog.conf na straně klienta, aby se dočasně ukládaly protokoly do souboru s vyrovnávací pamětí na disku, dokud se server nepřijde online.
$ ActionQueueFileName fronta $ ActionQueueMaxDiskSpace 1g $ ActionQueueSaveOnShutdown na $ ActionQueueType LinkedList $ ActionResumeRetryCount -1
Chcete-li použít výše uvedená pravidla, je třeba restartovat démon Rsyslog, aby vystupoval jako klient.