Kaip nustatyti „Rsyslog“ klientą siųsti žurnalus į „Rsyslog“ serverį sistemoje „CentOS 7“


Žurnalų tvarkymas yra vienas iš svarbiausių tinklo infrastruktūros komponentų. Žurnalų pranešimus nuolat generuoja daugybė sistemos programinės įrangos, tokių kaip komunalinės paslaugos, programos, demonai, paslaugos, susijusios su tinklu, branduolys, fiziniai įrenginiai ir pan.

Žurnalo failai yra naudingi šalinant „Linux“ sistemos problemas, stebint sistemą ir peržiūrint sistemos saugumo stiprumą bei problemas.

„Rsyslog“ yra atvirojo kodo registravimo programa, kuri yra populiariausias registravimo mechanizmas daugelyje „Linux“ paskirstymų. Tai taip pat yra numatytoji „CentOS 7“ arba „RHEL 7“ registravimo tarnyba.

„Cents“ „Rsyslog“ demoną galima sukonfigūruoti veikti kaip serverį, kad būtų galima rinkti žurnalo pranešimus iš kelių tinklo įrenginių. Šie įrenginiai veikia kaip klientai ir yra sukonfigūruoti perduoti savo žurnalus į „rsyslog“ serverį.

Tačiau „Rsyslog“ paslaugą taip pat galima sukonfigūruoti ir paleisti kliento režimu. Ši sąranka nurodo „rsyslog“ deemonui persiųsti žurnalo pranešimus į nuotolinį „Rsyslog“ serverį, naudojant TCP arba UDP perdavimo protokolus. „Rsyslog“ paslauga taip pat gali būti sukonfigūruota veikti vienu metu kaip klientas ir kaip serveris.

Šioje pamokoje aprašysime, kaip sukonfigūruoti „CentOS/RHEL 7 Rsyslog“ demoną siųsti žurnalo pranešimus į nuotolinį „Rsyslog“ serverį. Ši sąranka užtikrina, kad jūsų kompiuteryje bus galima išsaugoti vietos kitiems duomenims saugoti.

Vieta, kur beveik visi žurnalo failai pagal numatytuosius nustatymus yra įrašomi „CentOS“, yra sistemos kodas /var . Taip pat patartina visada sukurti atskirą /var katalogo skaidinį, kurį galima dinamiškai auginti, kad neišeikvotumėte /(root) skaidinio.

„Rsyslog“ klientas visada siunčia žurnalo pranešimus paprastu tekstu, jei nenurodyta kitaip. Neturėtumėte nustatyti „Rsyslog“ kliento, kad jis galėtų perduoti žurnalo pranešimus internetu ar tinklais, kurių nevaldote visiškai.

  1. „CentOS 7.3“ diegimo procedūra
  2. „RHEL 7.3“ diegimo procedūra
  3. Konfigūruokite „Rsyslog“ serverį sistemoje „CentOS/RHEL 7“

1 veiksmas: patikrinkite „Rsyslog“ diegimą

1. Pagal numatytuosius nustatymus „Rsyslog“ demonas jau yra įdiegtas ir veikia „CentOS 7“ sistemoje. Norėdami patikrinti, ar sistemoje yra „rsyslog“ paslauga, pateikite šias komandas.

# rpm -q | grep rsyslog
# rsyslogd -v

2. Jei „Rsyslog“ paketas nėra įdiegtas „CentOS“, vykdykite žemiau esančią komandą, kad įdiegtumėte paslaugą.

# yum install rsyslog

2 veiksmas: sukonfigūruokite „Rsyslog“ tarnybą kaip klientą

3. Kad priverstumėte „CentOS 7“ sistemoje įdiegtą „Rsyslog“ demoną veikti kaip žurnalo klientą ir nukreipti visus vietoje sukurtus žurnalo pranešimus į nuotolinį „Rsyslog“ serverį, pakeiskite „rsyslog“ konfigūracijos failą taip:

Pirmiausia atidarykite pagrindinį konfigūracijos failą redaguoti.

# vi /etc/rsyslog.conf

Tada pridėkite žemiau esančią eilutę failo pabaigoje, kaip parodyta toliau pateiktoje ištraukoje.

*. *  @192.168.10.254:514

Pirmiau pateiktoje eilutėje įsitikinkite, kad atitinkamai pakeisite nuotolinio „rsyslog“ serverio FQDN IP adresą. Aukščiau pateiktoje eilutėje nurodoma „Rsyslog“ deemonui siųsti visus žurnalo pranešimus, neatsižvelgiant į galimybę ar sunkumą, į pagrindinį kompiuterį naudojant IP 192.168.10.254 per 514/UDP prievadą.

4. Jei nuotolinio žurnalo serveris sukonfigūruotas klausytis tik per TCP ryšius arba norite naudoti patikimą transporto tinklo protokolą, pvz., TCP, prie nuotolinio pagrindinio kompiuterio pridėkite kitą simbolį @ , kaip parodyta žemiau pateiktas pavyzdys:

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

„Linux rsyslog“ taip pat leidžia turėti keletą specialiųjų simbolių, tokių kaip = arba ! , kuriuos prieš prefiksus galima įvesti į prioritetinius lygius, kad būtų rodomas „tik šis prioritetas“ lygybės ženklui ir „ne“ šis prioritetas ar didesnis už šį “.

Keletas „Rsyslog“ prioritetinių lygių kvalifikacijų „CentOS 7“ pavyzdžių:

  • kern.info = branduolio žurnalai, turintys informacijos prioritetą ir didesnį.
  • branduolys. = info = tik branduolio pranešimai, turintys informacijos prioritetą.
  • kern.info; kern.! err = tik branduolio pranešimai su informacija, pranešimais ir įspėjimo prioritetais.
  • kern.debug; kern.! = įspėjimas = visi branduolio prioritetai, išskyrus įspėjimą.
  • branduolys. * = visi branduolio prioritetų pranešimai.
  • kern.none = neprisijungti jokių susijusių branduolio įrenginių pranešimų, neatsižvelgiant į prioritetą.

Pavyzdžiui, darant prielaidą, kad norite į nuotolinio žurnalo serverį siųsti tik tam tikrus objekto pranešimus, pvz., Visus susijusius pašto pranešimus, neatsižvelgiant į prioriteto lygį, pridėkite žemiau esančią eilutę prie „rsyslog“ konfigūracijos failo:

mail.* @192.168.10.254:514 

5. Galiausiai, norint pritaikyti naują konfigūraciją, reikia iš naujo paleisti „Rsyslog“ paslaugą, kad daemonas paimtų pakeitimus, vykdydamas šią komandą:

# systemctl restart rsyslog.service

6. Jei dėl kokių nors priežasčių „Rsyslog“ demonas įjungimo metu neįjungtas, išleiskite žemiau esančią komandą, kad įgalintumėte visos sistemos paslaugų teikimą:

# systemctl enable rsyslog.service

3 žingsnis: Siųskite „Apache“ ir „Nginx“ žurnalus į nuotolinį žurnalų serverį

7. Apache HTTP serverį galima sukonfigūruoti siunčiant žurnalų pranešimus į nuotolinį syslog serverį, prie jo pagrindinio konfigūracijos failo pridėjus šią eilutę, kaip parodyta toliau pateiktame pavyzdyje.

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

Pagrindiniame „Apache“ konf faile pridėkite žemiau esančią eilutę.

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

Eilutė privers HTTP demoną rašyti žurnalo pranešimus viduje į failų sistemos žurnalo failą, bet taip pat apdoros pranešimus toliau per „pipe to logger“ įrankį, kuris nusiųs juos į tolimą syslog serverį, pažymėdamas juos kaip gaunamus iš local1 įrenginį.

8. Jei taip pat norite nukreipti „Apache“ klaidų žurnalo pranešimus į nuotolinį syslog serverį, pridėkite naują taisyklę kaip pateiktą aukščiau pateiktame pavyzdyje, tačiau būtinai pakeiskite httpd žurnalo failo pavadinimą ir žurnalo failo sunkumo lygį į atitikti klaidos prioritetą, kaip parodyta šiame pavyzdyje:

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

9. Pridėję pirmiau nurodytas eilutes, turite iš naujo paleisti „Apache“ deemoną, kad pritaikytumėte pakeitimus, išleisdami šią komandą:

# systemctl restart httpd.service                 

10. Nuo 1.7.1 versijos „Nginx“ žiniatinklio serveris turi įmontuotas galimybes tiesiogiai užregistruoti savo pranešimus į nuotolinį syslog serverį, prie „nginx“ konfigūracijos failo pridėdamas šias eilutes:

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;

Norėdami pridėti IPv6 serverį, naudokite šį sintaksės formatą, kad pridėtumėte IPv6 adresą.

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

11. Nuotoliniame „Rsyslog“ serveryje turite atlikti šiuos „rsyslog“ konfigūracijos failo pakeitimus, kad gautumėte „Apache“ žiniatinklio serverio siunčiamus žurnalus.

local1.* @Apache_IP_address:514

Tai viskas! Jūs sėkmingai sukonfigūravote „Rsyslog“ deemoną, kad jis veiktų kliento režimu, taip pat nurodėte „Apache“ HTTP serveriui arba „Nginx“ persiųsti savo žurnalo pranešimus į nuotolinį syslog serverį.

Jei sistema sugenda, turėtumėte sugebėti ištirti problemą, patikrindami žurnalo failų turinį, saugomą nuotoliniame syslog serveryje.