Si të konfiguroni klientin Rsyslog për të dërguar regjistra në serverin Rsyslog në CentOS 7


Menaxhimi i regjistrave është një nga komponentët më kritikë në një infrastrukturë rrjeti. Mesazhet e regjistrave gjenerohen vazhdimisht nga softuer të shumtë të sistemit, të tilla si shërbimet, aplikacionet, demonët, shërbimet që lidhen me rrjetin, kernelin, pajisjet fizike etj.

Skedarët e regjistrave provojnë të jenë të dobishëm në rast të zgjidhjes së problemeve të sistemit Linux, monitoroni sistemin dhe rishikoni fuqinë dhe problemet e sigurisë së sistemit.

Rsyslog është një program regjistrimi me burim të hapur, i cili është mekanizmi më i popullarizuar i regjistrimit në një numër të madh shpërndarjesh Linux. Është gjithashtu shërbimi i paracaktuar i regjistrimit në CentOS 7 ose RHEL 7.

Daemon Rsyslog në CentOS mund të konfigurohet të funksionojë si një server në mënyrë që të mbledhë mesazhe regjistri nga pajisje të shumta rrjeti. Këto pajisje veprojnë si klientë dhe janë konfiguruar për të transmetuar regjistrat e tyre në një server rsyslog.

Sidoqoftë, shërbimi Rsyslog gjithashtu mund të konfigurohet dhe të fillojë në modalitetin e klientit. Ky konfigurim udhëzon daemonin rsyslog të përcjellë mesazhet e regjistrit në një server të largët Rsyslog duke përdorur protokollet e transportit TCP ose UDP. Shërbimi Rsyslog gjithashtu mund të konfigurohet që të funksionojë si klient dhe si server në të njëjtën kohë.

Në këtë tutorial ne do të përshkruajmë se si të konfiguroni një demon CentOS/RHEL 7 Rsyslog për të dërguar mesazhe log në një server të largët Rsyslog. Ky konfigurim siguron që hapësira e diskut të makinës suaj të ruhet për ruajtjen e të dhënave të tjera.

Vendi ku pothuajse të gjithë skedarët e regjistrit janë shkruar si parazgjedhje në CentOS është rruga e sistemit /var. Është gjithashtu e këshillueshme që gjithmonë të krijoni një ndarje të veçantë për drejtorinë /var, e cila mund të rritet në mënyrë dinamike, në mënyrë që të mos shterohet seksioni /(root).

Një klient Rsyslog dërgon gjithmonë mesazhet e regjistrit në tekst të thjeshtë, nëse nuk specifikohet ndryshe. Nuk duhet të konfiguroni një klient Rsyslog për të transmetuar mesazhe të regjistrit përmes Internetit ose rrjeteve që nuk janë nën kontrollin tuaj të plotë.

  1. Procedura e instalimit të CentOS 7.3
  2. Procedura e instalimit RHEL 7.3
  3. Konfiguro një server Rsyslog në CentOS/RHEL 7

Hapi 1: Verifikoni instalimin e Rsyslog

1. Si parazgjedhje, daemon Rsyslog është instaluar tashmë dhe funksionon në një sistem CentOS 7. Për të verifikuar nëse shërbimi rsyslog është i pranishëm në sistem, lëshoni komandat e mëposhtme.

# rpm -q | grep rsyslog
# rsyslogd -v

2. Nëse paketa Rsyslog nuk është e instaluar në CentOS, ekzekutoni komandën e mëposhtme për të instaluar shërbimin.

# yum install rsyslog

Hapi 2: Konfiguro Shërbimin Rsyslog si Klient

3. Për të imponuar demonin Rsyslog të instaluar në një sistem CentOS 7 që të veprojë si klient log dhe të drejtojë të gjitha mesazhet e regjistrit të krijuara në nivel lokal në një server të largët Rsyslog, modifikoni skedarin e konfigurimit rsyslog si më poshtë:

Fillimisht hapni skedarin kryesor të konfigurimit për redaktim.

# vi /etc/rsyslog.conf

Më pas, shtoni rreshtin e mëposhtëm në fund të skedarit siç ilustrohet në fragmentin e mëposhtëm.

*. *  @192.168.10.254:514

Në rreshtin e mësipërm sigurohuni që të zëvendësoni adresën IP të FQDN të serverit të largët rsyslog në përputhje me rrethanat. Linja e mësipërme udhëzon daemonin Rsyslog të dërgojë të gjitha mesazhet e logit, pavarësisht nga lehtësia ose ashpërsia, te hosti me IP 192.168.10.254 nëpërmjet portit 514/UDP.

4. Nëse serveri i regjistrit në distancë është konfiguruar të dëgjojë vetëm lidhjet TCP ose dëshironi të përdorni një protokoll të besueshëm rrjeti transporti, si p.sh. TCP, shtoni një karakter tjetër @ përpara hostit në distancë siç tregohet në shembullin e mëposhtëm:

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

Linux rsyslog gjithashtu lejon që ka disa karaktere të veçanta, të tilla si = ose !, të cilat mund t'i vendosen parashtesa niveleve të përparësisë për të treguar \vetëm këtë prioritet për shenjën e barabartë dhe\“Jo ky prioritet apo më i lartë se ky”.

Disa shembuj të kualifikuesve të nivelit të prioritetit Rsyslog në CentOS 7:

  • kern.info = regjistrat e kernelit me prioritet informacioni dhe më të lartë.
  • kern.=info = vetëm mesazhet e kernelit me përparësi informacioni.
  • kern.info;kern.!err = vetëm mesazhet e kernelit me përparësi informacioni, njoftimi dhe paralajmërimi.
  • kern.debug;kern.!=warning = të gjitha prioritetet e kernelit përveç paralajmërimit.
  • kern.* = të gjitha mesazhet e prioriteteve të kernelit.
  • kern.none = mos regjistro asnjë mesazh të lidhur me strukturën e kernelit, pavarësisht nga përparësia.

Për shembull, duke supozuar se doni të dërgoni vetëm mesazhe të një lehtësie specifike në një server të regjistrit të largët, siç janë të gjitha mesazhet e postës përkatëse, pavarësisht nga niveli i përparësisë, shtoni rreshtin e mëposhtëm në skedarin e konfigurimit rsyslog:

mail.* @192.168.10.254:514 

5. Së fundi, për të aplikuar konfigurimin e ri, shërbimi Rsyslog duhet të riniset në mënyrë që daemon të marrë ndryshimet, duke ekzekutuar komandën e mëposhtme:

# systemctl restart rsyslog.service

6. Nëse për disa arsye daemon Rsyslog nuk është aktivizuar gjatë kohës së nisjes, lëshoni komandën e mëposhtme për të aktivizuar shërbimin në të gjithë sistemin:

# systemctl enable rsyslog.service

Hapi 3: Dërgoni regjistrat e Apache dhe Nginx në një server të regjistrave në distancë

7. Serveri Apache HTTP mund të konfigurohet për të dërguar mesazhe regjistrash në një server të largët të syslog-it duke shtuar rreshtin e mëposhtëm në skedarin e tij kryesor të konfigurimit, siç ilustrohet në shembullin e mëposhtëm.

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

Në skedarin kryesor të konfigurimit Apache shtoni rreshtin e mëposhtëm.

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

Linja do të detyrojë daemonin HTTP të shkruajë mesazhet e regjistrit brenda në skedarin e regjistrit të sistemit të skedarëve, por gjithashtu do t'i përpunojë mesazhet më tej përmes një programi pipe to logger, i cili do t'i dërgojë ato në një server të largët syslog, duke i shënuar si të ardhur nga lokali1. objekti.

8. Nëse dëshironi të drejtoni gjithashtu mesazhet e regjistrit të gabimeve Apache në një server të largët të sistemeve, shtoni një rregull të ri si ai i paraqitur në shembullin e mësipërm, por sigurohuni që të zëvendësoni emrin e skedarit të regjistrit httpd dhe nivelin e ashpërsisë së skedarit log në prioriteti i gabimit të përputhjes, siç tregohet në mostrën e mëposhtme:

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

9. Pasi të keni shtuar rreshtat e mësipërm, duhet të rinisni Apache Daemon për të aplikuar ndryshimet, duke lëshuar komandën e mëposhtme:

# systemctl restart httpd.service                 

10. Që nga versioni 1.7.1, serveri i uebit Nginx ka aftësi të integruara në mënyrë që të regjistrojë drejtpërdrejt mesazhet e tij në një server të largët syslog, duke shtuar linjat e mëposhtme të kodit në një skedar konfigurimi nginx.

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;

Për një server IPv6, përdorni formatin e mëposhtëm sintaksor për të mbyllur adresën IPv6.

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

11. Në serverin e largët Rsyslog ju duhet të bëni ndryshimin e mëposhtëm në skedarin e konfigurimit rsyslog, në mënyrë që të merrni regjistrat e dërguar nga serveri në internet Apache.

local1.* @Apache_IP_address:514

Kjo eshte e gjitha! Ju keni konfiguruar me sukses daemon Rsyslog për të ekzekutuar në modalitetin e klientit dhe, gjithashtu, keni udhëzuar serverin Apache HTTP ose Nginx që të përcjellë mesazhet e tij të regjistrit në një server të largët syslog.

Në rast se sistemi juaj prishet, duhet të jeni në gjendje të hetoni problemin duke inspektuar përmbajtjen e skedarëve të regjistrit që ruhen në serverin e largët të syslog.