![Objavljeno Linux kernel 4.0, ovo je novo](/f/8183b47e91b06cee95c19f4df814deee.jpeg?width=100&height=100)
Dnevnici kritična su komponenta svakog softvera ili operacijskog sustava. Zapisnici obično bilježe radnje korisnika, događaje u sustavu, mrežne aktivnosti i još mnogo toga, ovisno o tome čemu su namijenjeni. Jedan od najčešće korištenih sustava bilježenja na Linux sustavima je rsyslog.
Rsyslog je snažan, siguran i učinkovit sustav za obradu dnevnika koji prihvaća podatke iz različitih vrsta izvora (sustava/aplikacija) i šalje ih u više formata.
Razvilo se iz redovnog syslog demon u potpuno opremljen sustav bilježenja na razini poduzeća. Dizajniran je u modelu klijent/poslužitelj, stoga se može konfigurirati kao klijent i/ili kao središnji poslužitelj za bilježenje za druge poslužitelje, mrežne uređaje i udaljene aplikacije.
Za potrebe ovog vodiča koristit ćemo sljedeće hostove:
Većina distribucija Linuxa dolazi s rsyslog prethodno instaliran paket. U slučaju da nije instaliran, možete ga instalirati pomoću alata za upravljanje paketima za Linux kao što je prikazano.
$ sudo yum update && yum install rsyslog #CentOS 7. $ sudo apt update && apt install rsyslog #Ubuntu 16.04, 18.04.
Jednom rsyslog instaliran, trebate pokrenuti uslugu za sada, omogućiti joj automatsko pokretanje pri pokretanju i provjeriti njen status pomoću naredba systemctl.
$ sudo systemctl pokrenite rsyslog. $ sudo systemctl omogući rsyslog. $ sudo systemctl status rsyslog.
Glavna rsyslog konfiguracijska datoteka nalazi se na /etc/rsyslog.conf, koji učitava module, definira globalne direktive, sadrži pravila za obradu poruka dnevnika, a također uključuje sve konfiguracijske datoteke u /etc/rsyslog.d/ za razne aplikacije/usluge.
$ sudo vim /etc/rsyslog.conf.
Prema zadanim postavkama, rsyslog koristi imjournal i imusock moduli za uvoz strukturiranih poruka dnevnika iz sistemski dnevnik i za prihvaćanje poruka sysloga od aplikacija koje se izvode na lokalnom sustavu putem Unix utičnica.
Da biste konfigurirali rsyslog kao mrežni/središnji poslužitelj zapisivanja, morate postaviti protokol (bilo UDP ili TCP ili oboje) koje će koristiti za udaljeni prijem sysloga, kao i port na kojem sluša.
Ako želite koristiti a UDP vezu, koja je brža, ali nepouzdana, pretražite i raskomentirajte donje retke (zamijenite 514 s portom na kojem želite da sluša, to bi se trebalo podudarati s adresom porta na koju klijenti šalju poruke, ovo ćemo pogledati više pri konfiguriranju rsyslog klijenta).
$ ModLoad imudp. $ UDPServerRun 514.
Koristiti TCP veze (koja je sporija, ali pouzdanija), pretražite i raskomentirajte donje retke.
$ ModLoad imtcp. $ InputTCPServerRun 514.
U ovom slučaju želimo istovremeno koristiti i UDP i TCP veze.
Zatim morate definirati skup pravila za obradu udaljenih zapisa u sljedećem formatu.
object.severity_level destinacija (gdje pohraniti dnevnik)
Gdje:
*
znači sve sadržaje.*
znači sve razine ozbiljnosti i nijedna ne implicira razinu ozbiljnosti.Koristit ćemo sljedeće skup pravila za prikupljanje zapisnika s udaljenih hostova, koristeći Daljinski zapisi predložak. Imajte na umu da ova pravila moraju biti ispred svih pravila za obradu lokalnih poruka, kao što je prikazano na snimci zaslona.
$ template RemoteLogs, "/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.*? RemoteLogs & ~
Gledajući gore navedeno skup pravila, prvo pravilo je “$ Template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log “”.
Direktiva $ predložak govori demonu rsysloga da prikupi i zapiše sve primljene udaljene poruke u različite zapise pod /var/log, bazirano na naziv hosta (naziv računala klijenta) i udaljeni klijentski objekt (program/aplikacija) koji je generirao poruke kako je definirano postavkama prisutnim u predlošku Daljinski zapisi.
Druga linija "*.*? RemoteLogs" znači snimati poruke iz svih objekata svih razina ozbiljnosti koristeći Daljinski zapisi konfiguracija predloška.
Završna linija “& ~” upućuje rsyslog da prestane obrađivati poruke nakon što su zapisane u datoteku. Ako ne uključite “& ~”, poruke će se umjesto toga zapisati u lokalne datoteke.
Možete koristiti mnoge druge predloške, za više informacija pogledajte stranicu s konfiguracijom rsysloga (čovjek rsyslog.conf) ili se obratite na Rsyslog internetska dokumentacija.
To je sve s konfiguriranjem poslužitelja rsyslog. Spremite i zatvorite konfiguracijsku datoteku. Da biste primijenili nedavne promjene, ponovno pokrenite demon rsyslog sa sljedećom naredbom.
$ sudo systemctl ponovno pokrenite rsyslog.
Sada provjerite mrežne utičnice rsyslog. Koristiti naredba ss (ili netstat s istim zastavicama) naredbom i usmjerite izlaz u grep za filtriranje out rsyslogd veze.
$ sudo ss -tulnp | grep "rsyslog"
Dalje, na CentOS 7, Ako imate SELinux omogućeno, pokrenite sljedeće naredbe kako biste dopustili promet rsysloga na temelju vrste mrežne utičnice.
$ sudo semanage -a -t syslogd_port_t -p udp 514. $ sudo semanage -a -t syslogd_port_t -p tcp 514
Ako sustav ima omogućen vatrozid, morate otvoriti port 514 dopustiti oboje UDP/TCP veze s poslužiteljem rsyslog, pokretanjem.
Na CentOS -u $ sudo firewall-cmd --permanent --add-port = 514/udp. $ sudo firewall-cmd --permanent --add-port = 514/tcp. $ sudo firewall-cmd-ponovno učitavanje Na Ubuntuu $ sudo ufw dopušta 514/udp. $ sudo ufw dopušta 514/tcp. $ sudo ufw ponovno učitavanje
Sada na klijentskom sustavu provjerite radi li usluga rsyslog ili ne pomoću sljedeće naredbe.
$ sudo systemctl status rsyslog.
Ako nije instaliran, instalirajte ga i pokrenite uslugu kao što je ranije prikazano.
$ sudo yum update && yum install rsyslog #CentOS 7. $ sudo apt update && apt install rsyslog #Ubuntu 16.04, 18.04. $ sudo systemctl pokrenite rsyslog. $ sudo systemctl omogući rsyslog. $ sudo systemctl status rsyslog.
Nakon što usluga rsyslog bude pokrenuta, otvorite glavnu konfiguracijsku datoteku u kojoj ćete izvršiti promjene zadane konfiguracije.
$ sudo vim /etc/rsyslog.conf.
Da biste natjerali demon rsyslog da djeluje kao klijent dnevnika i proslijedi sve lokalno generirane poruke dnevnika u udaljeni poslužitelj rsyslog, dodajte ovo pravilo prosljeđivanja na kraj datoteke kao što je prikazano u nastavku snimka zaslona.
*. * @@192.168.100.10:514.
Gore navedeno pravilo slat će poruke iz svih objekata i na svim razinama ozbiljnosti. Za slanje poruka iz određenog objekta, na primjer auth, poslužite se sljedećim pravilom.
auth. * @@192.168.100.10:514.
Spremite promjene i zatvorite konfiguracijsku datoteku. Da biste primijenili gornje postavke, ponovno pokrenite demon rsyslog.
$ sudo systemctl ponovno pokrenite rsyslog.
Posljednji korak je provjeriti prima li rsyslog poruke i bilježi poruke od klijenta, pod /var/log, u obliku hostname/programname.log.
Pokrenite a Naredba je na dugačak popis imenika nadređenih dnevnika i provjerite postoji li imenik koji se zove ip-172.31.21.58 (ili bilo koji drugi naziv računala vašeg klijentskog računala).
$ ls -l/var/log/
Ako direktorij postoji, provjerite datoteke dnevnika unutar njega pokretanjem.
$ sudo ls -l/var/log/ip-172-31-21-58/
Rsyslog je sustav za obradu dnevnika visokih performansi, dizajniran u arhitekturi klijent/poslužitelj. Nadamo se da ste u mogućnosti instalirati i konfigurirati Rsyslog kao središnji/mrežni poslužitelj za bilježenje i kao klijent kako je prikazano u ovom vodiču.
Za dodatnu pomoć možete se obratiti i relevantnim stranicama priručnika rsyslog. Slobodno nam pošaljite povratne informacije ili postavite pitanja.