Kako postaviti Rsyslog klijent za slanje zapisa na Rsyslog poslužitelj u CentOS 7


Upravljanje zapisima jedna je od najkritičnijih komponenti mrežne infrastrukture. Brojni sistemski softveri, kao što su uslužni programi, aplikacije, demoni, usluge povezane s mrežom, kernelom, fizičkim uređajima i tako dalje, neprestano generiraju poruke zapisnika.

Log datoteke pokazale su se korisnima u slučaju rješavanja problema s Linux sustavom, nadgledanja sustava i pregledavanja sigurnosne snage i problema sustava.

Rsyslog je program za bilježenje otvorenog koda, koji je najpopularniji mehanizam za bilježenje u ogromnom broju distribucija Linuxa. To je također zadana usluga zapisivanja u CentOS 7 ili RHEL 7.

Demon Rsyslog u CentOS-u može se konfigurirati da radi kao poslužitelj radi prikupljanja poruka dnevnika s više mrežnih uređaja. Ovi uređaji djeluju kao klijenti i konfigurirani su za prijenos svojih zapisa na rsyslog poslužitelj.

Međutim, uslugu Rsyslog također je moguće konfigurirati i pokrenuti u načinu rada klijenta. Ova postavka daje upute demonu rsyslog da proslijedi poruke dnevnika na udaljeni Rsyslog poslužitelj koristeći TCP ili UDP transportne protokole. Servis Rsyslog također se može konfigurirati da radi kao klijent i kao poslužitelj u isto vrijeme.

U ovom vodiču opisat ćemo kako postaviti Rsyslog demon CentOS/RHEL 7 za slanje poruka dnevnika udaljenom Rsyslog poslužitelju. Ova postavka osigurava da se prostor na disku vašeg stroja može sačuvati za pohranjivanje drugih podataka.

Mjesto gdje se gotovo sve datoteke dnevnika zapisuju prema zadanim postavkama u CentOS je put sustava /var. Također je preporučljivo uvijek stvoriti zasebnu 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 obliku običnog teksta, ako nije drugačije navedeno. Ne biste trebali postaviti Rsyslog klijent za prijenos poruka dnevnika preko Interneta ili mreža koje nisu pod vašom potpunom kontrolom.

Zahtjevi

  1. Instalacijski postupak CentOS 7.3
  2. RHEL 7.3 Instalacijski postupak
  3. Konfigurirajte Rsyslog poslužitelj u CentOS/RHEL 7

Korak 1: Provjerite instalaciju Rsysloga

1. Prema zadanim postavkama demon Rsyslog već je instaliran i radi u sustavu CentOS 7. Kako biste provjerili je li usluga rsyslog prisutna u sustavu, izdajte sljedeće naredbe.

rpm -q | grep rsyslog
rsyslogd -v

2. Ako paket Rsyslog nije instaliran u CentOS-u, izvršite donju naredbu za instalaciju usluge.

yum install rsyslog

Korak 2: Konfigurirajte uslugu Rsyslog kao klijenta

3. Kako biste prisilili demona Rsyslog instaliranog na sustav CentOS 7 da djeluje kao klijent dnevnika i usmjerava sve lokalno generirane poruke dnevnika na udaljeni Rsyslog poslužitelj, izmijenite rsyslog konfiguracijsku datoteku kako slijedi:

Prvo otvorite glavnu konfiguracijsku datoteku za uređivanje.

vi /etc/rsyslog.conf

Zatim dodajte donji redak na kraj datoteke kao što je prikazano u donjem izvatku.

*. *  @192.168.10.254:514

U gornjem retku provjerite jeste li u skladu s time zamijenili IP adresu FQDN-a udaljenog rsyslog poslužitelja. Gornji red daje upute demonu Rsyslog da pošalje sve poruke dnevnika, bez obzira na značajku ili ozbiljnost, glavnom računalu s IP 192.168.10.254 putem porta 514/UDP.

4. Ako je udaljeni poslužitelj zapisnika konfiguriran za slušanje samo TCP veza ili želite koristiti pouzdani protokol prijenosne mreže, kao što je TCP, dodajte još jedan znak @ ispred udaljenog hosta kao što je prikazano u primjeru u nastavku:

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

Linux rsyslog također dopušta neke posebne znakove, kao što su = ili !, koji se mogu staviti ispred razina prioriteta kako bi označili “samo ovaj prioritet ” za znak jednakosti i “nije ovaj prioritet ili viši od ovoga ”.

Neki uzorci Rsyslog kvalifikatora razine prioriteta u CentOS 7:

  • kern.info=dnevnici kernela s prioritetom informacija i višim.
  • kern.=info=samo poruke kernela s prioritetom informacija.
  • kern.info;kern.!err=samo poruke kernela s prioritetima informacija, obavijesti i upozorenja.
  • kern.debug;kern.!=upozorenje=svi prioriteti jezgre osim upozorenja.
  • kern.*=sve poruke o prioritetima jezgre.
  • kern.none=ne bilježi nikakve povezane poruke značajki jezgre bez obzira na prioritet.

Na primjer, pod pretpostavkom da udaljenom poslužitelju dnevnika želite poslati samo određene poruke, kao što su sve povezane poruke e-pošte bez obzira na razinu prioriteta, dodajte sljedeći redak u konfiguracijsku datoteku rsyslog:

mail.* @192.168.10.254:514 

5. Na kraju, kako bi se primijenila nova konfiguracija, potrebno je ponovno pokrenuti uslugu Rsyslog kako bi demon preuzeo promjene, pokretanjem donje naredbe:

systemctl restart rsyslog.service

6. Ako iz nekog razloga demon Rsyslog nije omogućen tijekom vremena pokretanja, izdajte naredbu u nastavku da omogućite uslugu za cijeli sustav:

systemctl enable rsyslog.service

Korak 3: Pošaljite Apache i Nginx zapise na udaljeni poslužitelj zapisa

7. Apache HTTP poslužitelj može se konfigurirati za slanje poruka zapisnika udaljenom syslog poslužitelju dodavanjem sljedećeg retka u njegovu glavnu konfiguracijsku datoteku kao što je ilustrirano u donjem primjeru.

vi /etc/httpd/conf/httpd.conf

U Apache glavnu conf datoteku dodajte donji redak.

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

Redak će nametnuti HTTP demonu da interno zapisuje poruke dnevnika u datoteku dnevnika datotečnog sustava, ali također i dalje obrađuje poruke putem uslužnog programa cijevi za zapisivač, koji će ih poslati udaljenom syslog poslužitelju, označavajući ih da dolaze iz local1 objekt.

8. Ako također želite usmjeriti Apache poruke dnevnika pogrešaka na udaljeni syslog poslužitelj, dodajte novo pravilo kao ono predstavljeno u gornjem primjeru, ali svakako zamijenite naziv httpd datoteke dnevnika i razinu ozbiljnosti datoteke dnevnika kako bi odgovarali prioritetu pogreške, kao što je prikazano u sljedećem primjeru:

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

9. Nakon što ste dodali gornje retke, morate ponovno pokrenuti Apache daemon da biste primijenili promjene, izdavanjem sljedeće naredbe:

systemctl restart httpd.service                 

10. Od verzije 1.7.1, Nginx web poslužitelj ima ugrađene mogućnosti za izravno zapisivanje svojih poruka na udaljeni syslog poslužitelj, dodavanjem sljedećih redaka kod u nginx konfiguracijsku datoteku.

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 poslužitelj koristite sljedeći format sintakse za prilaganje IPv6 adrese.

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

11. Na udaljenom Rsyslog poslužitelju trebate izvršiti sljedeću promjenu u rsyslog konfiguracijskoj datoteci, kako biste primali zapise koje šalje Apache web poslužitelj.

local1.* @Apache_IP_address:514

To je sve! Uspješno ste konfigurirali demon Rsyslog za rad u načinu rada klijenta i, također, dali ste upute Apache HTTP poslužitelju ili Nginxu da proslijedi svoje poruke dnevnika na udaljeni syslog poslužitelj.

U slučaju da vam se sustav sruši, trebali biste moći istražiti problem pregledom sadržaja datoteka dnevnika koji su pohranjeni na udaljenom syslog poslužitelju.