Kako nastaviti odjemalca Rsyslog za pošiljanje dnevnikov na strežnik Rsyslog v CentOS 7


Upravljanje dnevnikov je ena najpomembnejših komponent v omrežni infrastrukturi. Sporočila v dnevnikih nenehno generira številna sistemska programska oprema, kot so pripomočki, aplikacije, demoni, storitve, povezane z omrežjem, jedrom, fizičnimi napravami itd.

Dnevniške datoteke se izkažejo za koristne v primeru odpravljanja težav s sistemom Linux, spremljanja sistema in pregleda varnosti in težav sistema.

Rsyslog je odprtokodni program za beleženje, ki je najbolj priljubljen mehanizem za beleženje v velikem številu distribucij Linuxa. To je tudi privzeta storitev beleženja v CentOS 7 ali RHEL 7.

Demon Rsyslog v CentOS-u lahko nastavite tako, da deluje kot strežnik, da zbira dnevniška sporočila iz več omrežnih naprav. Te naprave delujejo kot odjemalci in so konfigurirane za prenos svojih dnevnikov na strežnik rsyslog.

Storitev Rsyslog pa je mogoče konfigurirati in zagnati tudi v odjemalnem načinu. Ta nastavitev demonu rsyslog naroči, naj sporočila dnevnika posreduje oddaljenemu strežniku Rsyslog z uporabo transportnih protokolov TCP ali UDP. Storitev Rsyslog je mogoče konfigurirati tudi tako, da deluje kot odjemalec in kot strežnik.

V tej vadnici bomo opisali, kako nastaviti demon CentOS/RHEL 7 Rsyslog za pošiljanje dnevniških sporočil na oddaljeni strežnik Rsyslog. Ta nastavitev zagotavlja, da lahko na računalniku shranite prostor za shranjevanje drugih podatkov.

Kraj, kamor so v CentOS privzeto zapisane skoraj vse dnevniške datoteke, je sistemska pot /var . Priporočljivo je tudi, da vedno ustvarite ločeno particijo za imenik /var , ki jo je mogoče dinamično gojiti, da ne bi izčrpali particije /(root) .

Odjemalec Rsyslog vedno pošlje dnevniška sporočila v navadnem besedilu, če ni določeno drugače. Odjemalca Rsyslog ne smete nastaviti za prenos dnevniških sporočil prek interneta ali omrežij, ki niso pod vašim popolnim nadzorom.

  1. Postopek namestitve CentOS 7.3
  2. RHEL 7.3 Postopek namestitve
  3. Konfigurirajte strežnik Rsyslog v CentOS/RHEL 7

1. korak: Preverite namestitev Rsysloga

1. Demon Rsyslog je privzeto že nameščen in deluje v sistemu CentOS 7. Če želite preveriti, ali je storitev rsyslog prisotna v sistemu, izdajte naslednje ukaze.

# rpm -q | grep rsyslog
# rsyslogd -v

2. Če paket Rsyslog ni nameščen v CentOS -u, za namestitev storitve izvedite spodnji ukaz.

# yum install rsyslog

2. korak: Konfigurirajte storitev Rsyslog kot odjemalca

3. Če želite, da demon Rsyslog, nameščen v sistemu CentOS 7, deluje kot odjemalec dnevnika in usmerja vsa lokalno ustvarjena sporočila dnevnika na oddaljeni strežnik Rsyslog, spremenite konfiguracijsko datoteko rsyslog, kot sledi:

Najprej odprite glavno konfiguracijsko datoteko za urejanje.

# vi /etc/rsyslog.conf

Nato na konec datoteke dodajte spodnjo vrstico, kot je prikazano v spodnjem odlomku.

*. *  @192.168.10.254:514

V zgornji vrstici poskrbite, da ustrezno zamenjate naslov IP FQDN oddaljenega strežnika rsyslog. Zgornja vrstica naroča demonu Rsyslog, da pošlje vsa sporočila dnevnika, ne glede na zmogljivost ali resnost, gostitelju z IP 192.168.10.254 prek vrat 514/UDP.

4. Če je oddaljeni dnevniški strežnik konfiguriran za poslušanje samo v povezavah TCP ali če želite uporabljati zanesljiv protokol prometnega omrežja, kot je TCP, dodajte še en znak @ pred oddaljenim gostiteljem, kot je prikazano v spodnji primer:

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

Linux rsyslog dovoljuje tudi nekatere posebne znake, na primer = ali ! , ki jih je mogoče predponirati na ravni prioritet, da označijo\"samo to prednost" za znak enakosti in\"ne ta prednostna naloga ali višja od te".

Nekaj vzorcev kvalifikatorjev prednostne ravni Rsyslog v CentOS 7:

  • kern.info = dnevniki jedra s prednostjo podatkov in višjo.
  • kern. = info = samo sporočila jedra s prednostjo informacij.
  • kern.info; kern.! err = samo sporočila jedra z informacijami, obvestili in opozorili.
  • kern.debug; kern.! = warning = vse prioritete jedra, razen opozorila.
  • kern. * = vsa sporočila o prioritetah jedra.
  • kern.none = ne beleži nobenih povezanih sporočil jedra ne glede na prednost.

Če na primer predpostavimo, da želite na oddaljeni dnevniški strežnik poslati samo sporočila določenega objekta, na primer vsa povezana poštna sporočila, ne glede na prednostno raven, dodajte spodnjo vrstico v konfiguracijsko datoteko rsyslog:

mail.* @192.168.10.254:514 

5. Nazadnje, če želite uporabiti novo konfiguracijo, je treba znova zagnati storitev Rsyslog, da bo demon lahko pobral spremembe, tako da zaženete spodnji ukaz:

# systemctl restart rsyslog.service

6. Če iz določenih razlogov demon Rsyslog med zagonom ni omogočen, izdajte spodnji ukaz, da omogočite storitev v celotnem sistemu:

# systemctl enable rsyslog.service

3. korak: Pošljite dnevnike Apache in Nginx na oddaljeni dnevniški strežnik

7. Strežnik HTTP Apache lahko konfigurirate za pošiljanje dnevniških sporočil na oddaljeni strežnik syslog, tako da svoji glavni konfiguracijski datoteki dodate naslednjo vrstico, kot je prikazano v spodnjem primeru.

# vi /etc/httpd/conf/httpd.conf

V glavno konfiguracijsko datoteko Apache dodajte spodnjo vrstico.

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

Vrstica bo uveljavila daemon HTTP za zapisovanje dnevniških sporočil v datoteko dnevnika datotečnega sistema, sporočila pa bo nadalje obdelala prek pripomočka pipe to logger, ki jih bo poslal na oddaljeni strežnik syslog, tako da jih označi kot prihajajoča iz lokalnega1 objekt.

8. Če želite sporočila dnevnika napak Apache usmeriti tudi na oddaljeni strežnik syslog, dodajte novo pravilo, kot je predstavljeno v zgornjem primeru, vendar ime datoteke dnevnika httpd in stopnjo resnosti datoteke dnevnika zamenjajte z prednost napak pri ujemanju, kot je prikazano v naslednjem vzorcu:

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

9. Ko dodate zgornje vrstice, morate znova zagnati demon Apache, da uveljavite spremembe, tako da izdate naslednji ukaz:

# systemctl restart httpd.service                 

10. Od različice 1.7.1 ima spletni strežnik Nginx vgrajene funkcije za neposredno beleženje svojih sporočil na oddaljeni strežnik syslog, tako da v konfiguracijsko datoteko nginx doda naslednje vrstice kode.

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 strežnik IPv6 uporabite naslednji format sintakse, da priložite naslov IPv6.

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

11. Na oddaljenem strežniku Rsyslog morate narediti naslednjo spremembo konfiguracijske datoteke rsyslog, da boste lahko prejemali dnevnike, ki jih pošilja spletni strežnik Apache.

local1.* @Apache_IP_address:514

To je vse! Uspešno ste konfigurirali demon Rsyslog za zagon v odjemalskem načinu, poleg tega pa ste strežniku Apache HTTP ali Nginx naročili, naj sporočila dnevnika posreduje na oddaljeni strežnik syslog.

V primeru zrušitve sistema bi morali težavo raziskati tako, da pregledate vsebino dnevniških datotek, ki so shranjene na oddaljenem strežniku syslog.