Kako podesiti Rsyslog klijenta da šalje zapise na Rsyslog server u CentOS 7


Upravljanje dnevnikom je jedna od najkritičnijih komponenti mrežne infrastrukture. Poruke dnevnika konstantno generišu brojni sistemski softver, kao što su uslužni programi, aplikacije, demoni, servisi povezani sa mrežom, kernelom, fizičkim uređajima i tako dalje.

Log fajlovi su korisni u slučaju rešavanja problema sa Linux sistemom, nadgledanja sistema i pregleda bezbednosti sistema i problema.

Rsyslog je program za evidentiranje otvorenog koda, koji je najpopularniji mehanizam evidentiranja u velikom broju Linux distribucija. To je također zadana usluga evidentiranja u CentOS 7 ili RHEL 7.

Daemon Rsyslog u CentOS-u se može konfigurirati da radi kao server kako bi prikupljao poruke dnevnika sa više mrežnih uređaja. Ovi uređaji djeluju kao klijenti i konfigurirani su za prijenos svojih dnevnika na rsyslog server.

Međutim, usluga Rsyslog se također može konfigurirati i pokrenuti u klijentskom načinu rada. Ovo podešavanje upućuje demonu rsyslog da prosljeđuje poruke dnevnika udaljenom Rsyslog serveru koristeći TCP ili UDP transportne protokole. Rsyslog servis se također može konfigurirati da radi kao klijent i kao server u isto vrijeme.

U ovom vodiču ćemo opisati kako postaviti CentOS/RHEL 7 Rsyslog demon za slanje dnevnik poruka na udaljeni Rsyslog server. Ovo podešavanje osigurava da se prostor na disku vaše mašine može sačuvati za pohranjivanje drugih podataka.

Mjesto gdje su skoro sve datoteke dnevnika po defaultu napisane u CentOSu je /var sistemska putanja. Također je preporučljivo uvijek kreirati posebnu particiju za /var direktorij, koji se može dinamički povećavati, kako se ne bi iscrpila /(root) particija.

Klijent Rsyslog uvijek šalje poruke dnevnika u običnom tekstu, ako nije drugačije navedeno. Ne biste trebali postavljati Rsyslog klijenta za prijenos poruka dnevnika preko Interneta ili mreža koje nisu pod vašom potpunom kontrolom.

Zahtjevi

  1. Procedura instalacije CentOS 7.3
  2. RHEL 7.3 Procedura instalacije
  3. Konfigurirajte Rsyslog server u CentOS/RHEL 7

Korak 1: Potvrdite instalaciju Rsyslog-a

1. Podrazumevano, Rsyslog daemon je već instaliran i radi u sistemu CentOS 7. Da biste provjerili da li je usluga rsyslog prisutna u sistemu, izdajte sljedeće naredbe.

rpm -q | grep rsyslog
rsyslogd -v

2. Ako Rsyslog paket nije instaliran u CentOS-u, izvršite naredbu ispod da instalirate uslugu.

yum install rsyslog

Korak 2: Konfigurirajte uslugu Rsyslog kao klijenta

3. Da bi se nametnuo Rsyslog demon instaliran na sistemu CentOS 7 da djeluje kao klijent dnevnika i usmjerava sve lokalno generirane poruke dnevnika na udaljeni Rsyslog server, izmijenite rsyslog konfiguracijski fajl kako slijedi:

Prvo otvorite glavnu konfiguracijsku datoteku za uređivanje.

vi /etc/rsyslog.conf

Zatim dodajte red ispod na kraj datoteke kao što je prikazano u donjem izvodu.

*. *  @192.168.10.254:514

U gornjem redu pobrinite se da zamijenite IP adresu FQDN-a udaljenog rsyslog servera u skladu s tim. Gornji red daje instrukcije demonu Rsyslog da šalje sve poruke dnevnika, bez obzira na mogućnost ili ozbiljnost, hostu sa IP 192.168.10.254 preko 514/UDP porta.

4. Ako je udaljeni poslužitelj dnevnika konfiguriran da sluša samo TCP veze ili želite koristiti pouzdani protokol transportne mreže, kao što je TCP, dodajte još jedan znak @ ispred udaljenog hosta kao što je prikazano u donjem primjeru:

*. *  @@logs.domain.lan:514

Linux rsyslog takođe dozvoljava da ima neke posebne znakove, kao što su = ili !, koji se mogu postaviti prefiksom na nivoe prioriteta da bi označili "samo ovaj prioritet ” za znak jednakosti i “ne ovaj prioritet ili viši od ovog”.

Neki uzorci kvalifikatora nivoa prioriteta Rsyslog u CentOS 7:

  • kern.info=evidencije kernela sa prioritetom informacija i višim.
  • kern.=info=samo poruke kernela sa prioritetom informacija.
  • kern.info;kern.!err=samo poruke kernela sa prioritetima informacija, obaveštenja i upozorenja.
  • kern.debug;kern.!=warning=svi prioriteti kernela osim upozorenja.
  • kern.*=sve poruke o prioritetima kernela.
  • kern.none=ne evidentiraj nikakve povezane poruke o mogućnosti kernela bez obzira na prioritet.

Na primjer, pod pretpostavkom da želite poslati samo određene poruke na udaljeni log server, kao što su sve povezane poruke pošte bez obzira na nivo prioriteta, dodajte red ispod u konfiguracijsku datoteku rsyslog:

mail.* @192.168.10.254:514 

5. Konačno, da bi se primijenila nova konfiguracija, Rsyslog servis treba ponovo pokrenuti kako bi demon pokupio promjene, pokretanjem donje naredbe:

systemctl restart rsyslog.service

6. Ako iz nekih razloga Rsyslog demon nije omogućen tokom vremena pokretanja, izdajte naredbu ispod da omogućite uslugu na cijelom sistemu:

systemctl enable rsyslog.service

Korak 3: Pošaljite Apache i Nginx dnevnike na udaljeni log server

7. Apache HTTP server se može konfigurirati za slanje poruka dnevnika na udaljeni syslog server dodavanjem sljedećeg reda u njegovu glavnu konfiguracijsku datoteku kao što je ilustrovano u primjeru ispod.

vi /etc/httpd/conf/httpd.conf

Na Apache glavnu conf datoteku dodajte donji red.

CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined

Linija će prisiliti HTTP daemon da interno upisuje poruke dnevnika u datoteku evidencije sistema datoteka, ali i dalje obrađuje poruke kroz uslužni program cijevi do loggera, koji će ih poslati udaljenom syslog serveru, označavajući ih kao da dolaze s lokalnog1 objekat.

8. Ako također želite da uputite Apache poruke dnevnika grešaka na udaljeni syslog server, dodajte novo pravilo kao ono predstavljeno u gornjem primjeru, ali svakako zamijenite naziv httpd datoteke dnevnika i nivo ozbiljnosti datoteke dnevnika koji odgovara prioritetu greške, kao što je prikazano u sljedećem uzorku:

ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"

9. Nakon što dodate gornje linije, morate ponovo pokrenuti Apache demon da biste primijenili promjene, izdavanjem sljedeće naredbe:

systemctl restart httpd.service                 

10. Od verzije 1.7.1, Nginx web server ima ugrađene mogućnosti kako bi direktno evidentirao svoje poruke na udaljenom syslog serveru, dodavanjem sljedećih redova kod u nginx konfiguracijski fajl.

error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.10.254:514,facility=local7,tag=nginx,severity=info main;

Za IPv6 server, koristite sljedeći format sintakse da priložite IPv6 adresu.

access_log syslog:server=[7101:dc7::9]:514,facility=local7,tag=nginx,severity=info;

11. Na udaljenom Rsyslog serveru morate napraviti sljedeću promjenu u konfiguracijskoj datoteci rsyslog, kako biste primili logove koje šalje Apache web server.

local1.* @Apache_IP_address:514

To je sve! Uspješno ste konfigurirali Rsyslog daemon da radi u klijentskom načinu rada i takođe ste naložili Apache HTTP server ili Nginx da prosljeđuje svoje dnevnik poruke na udaljeni syslog server.

U slučaju da se sistem sruši, trebalo bi da budete u mogućnosti da istražite problem tako što ćete pregledati sadržaj log fajlova koji su pohranjeni na udaljenom serveru syslog.