Hvernig á að setja upp Central Logging Server með Rsyslog í Linux


Logs eru mikilvægur hluti hvers hugbúnaðar eða stýrikerfis. Logs skrá venjulega aðgerðir notenda, kerfisatburði, netvirkni og svo margt fleira, allt eftir því til hvers þeir eru ætlaðir. Eitt mest notaða skógarhöggkerfi á Linux kerfum er rsyslog.

Rsyslog er öflugt, öruggt og afkastamikið annálavinnslukerfi sem tekur við gögnum frá mismunandi gerðum (kerfum/forritum) og gefur það út á mörg snið.

Það hefur þróast úr venjulegum syslog púka yfir í fullbúið skógarhöggkerfi á fyrirtækisstigi. Það er hannað í biðlara/miðlara líkani, þess vegna er hægt að stilla það sem biðlara og/eða sem miðlægan skráningarþjón fyrir aðra netþjóna, nettæki og fjarforrit.

Í tilgangi þessarar handbókar munum við nota eftirfarandi vélar:

  • Þjónn: 192.168.241.140
  • Viðskiptavinur: 172.31.21.58

Hvernig á að setja upp og stilla Rsyslog Server

Flestar Linux dreifingar eru með rsyslog pakkanum foruppsettan. Ef það er ekki sett upp geturðu sett það upp með því að nota Linux pakkastjórnunartólið þitt eins og sýnt er.

$ sudo yum update && yum install rsyslog 	#CentOS 7
$ sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04

Þegar rsyslog hefur verið sett upp þarftu að ræsa þjónustuna í bili, gera henni kleift að ræsast sjálfkrafa við ræsingu og athuga stöðu hennar með systemctl skipuninni.

$ sudo systemctl start rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

Aðal rsyslog stillingarskráin er staðsett á /etc/rsyslog.conf, sem hleður einingar, skilgreinir alþjóðlegar tilskipanir, inniheldur reglur um vinnslu logskilaboða og hún inniheldur einnig allar stillingarskrár í /etc/rsyslog.d/ fyrir ýmis forrit/þjónustur .

$ sudo vim /etc/rsyslog.conf

Sjálfgefið er að rsyslog notar imjournal og imusock einingarnar til að flytja inn skipulögð annálsskilaboð úr systemd journal og til að samþykkja syslog skilaboð frá forritum sem keyra á staðbundnu kerfinu í gegnum Unix sockets.

Til að stilla rsyslog sem net-/miðlægan skráningarþjón þarftu að stilla samskiptareglur (annaðhvort UDP eða TCP eða bæði) sem það mun nota fyrir ytri syslog móttöku sem og tengið sem það hlustar á.

Ef þú vilt nota UDP tengingu, sem er hraðari en óáreiðanleg, leitaðu og afskrifaðu línurnar hér að neðan (skiptu út 514 fyrir tengið sem þú vilt að það hlusti á, þetta ætti að passa við port heimilisfangið sem viðskiptavinir senda skilaboð á, við munum skoða þetta meira þegar þú stillir rsyslog biðlara).

$ModLoad imudp
$UDPServerRun 514

Til að nota TCP tengingu (sem er hægari en áreiðanlegri) skaltu leita og afskrifa línurnar hér að neðan.

$ModLoad imtcp
$InputTCPServerRun 514

Í þessu tilviki viljum við nota bæði UDP og TCP tengingar á sama tíma.

Næst þarftu að skilgreina reglusettið fyrir vinnslu ytra annála á eftirfarandi sniði.

facility.severity_level	destination (where to store log)

Hvar:

  • aðstaða: er tegund ferli/forrits sem býr til skilaboð, þau innihalda auth, cron, púka, kjarna, local0..local7. Notkun * þýðir öll aðstaða.
  • alvarleikastig: er tegund logskilaboða: emerg-0, alert-1, crit-2, err-3, warn-4, notice-5, info-6, debug-7. Notkun * þýðir öll alvarleikastig og engin þýðir ekkert alvarleikastig.
  • áfangastaður: er annað hvort staðbundin skrá eða ytri rsyslog þjónn (skilgreint á formi IP:port).

Við munum nota eftirfarandi reglur til að safna annálum frá ytri gestgjöfum, með því að nota RemoteLogs sniðmátið. Athugaðu að þessar reglur verða að koma á undan öllum reglum um vinnslu staðbundinna skilaboða, eins og sýnt er á skjámyndinni.

$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs 
& ~

Þegar litið er á ofangreind reglusett er fyrsta reglan \$template RemoteLogs,/var/log/%HOSTNAME%/%PROGRAMNAME%log.

Tilskipunin $template segir rsyslog púknum að safna og skrifa öll móttekin fjarskilaboð í sérstakar annálar undir /var/log, byggt á hýsilheiti (nafn viðskiptavinar vélar) og ytri biðlara (forrit/forrit) sem bjó til skilaboðin eins og þau voru skilgreind. með stillingum sem eru til staðar í sniðmátinu RemoteLogs.

Önnur línan \*.* ?RemoteLogs þýðir að taka upp skilaboð frá öllum aðstöðu á öllum alvarleikastigum með því að nota RemoteLogs sniðmátsstillinguna.

Lokalínan \& ~ gefur rsyslog fyrirmæli um að hætta að vinna skeytin þegar þau hafa verið skrifuð í skrá. Ef þú lætur ekki „& ~“ fylgja með, verða skilaboð þess í stað skrifuð í staðbundnar skrár.

Það eru mörg önnur sniðmát sem þú getur notað, fyrir frekari upplýsingar, sjáðu rsyslog stillingar man síðuna (man rsyslog.conf) eða skoðaðu Rsyslog netskjölin.

Það er það með að stilla rsyslog netþjóninn. Vistaðu og lokaðu stillingarskránni. Til að beita nýlegum breytingum skaltu endurræsa rsyslog púkann með eftirfarandi skipun.

$ sudo systemctl restart rsyslog

Staðfestu nú rsyslog netinnstungurnar. Notaðu ss skipunina (eða grep til að sía út rsyslogd tengingar.

$ sudo ss -tulnp | grep "rsyslog"

Næst, á CentOS 7, ef þú ert með SELinux virkt, keyrðu eftirfarandi skipanir til að leyfa rsyslog umferð byggt á nettengisgerðinni.

$ sudo semanage -a -t syslogd_port_t -p udp 514
$ sudo semanage -a -t syslogd_port_t -p tcp 514 

Ef kerfið er með eldvegg virkan þarftu að opna gátt 514 til að leyfa báðar UDP/TCP tengingar við rsyslog þjóninn, með því að keyra.

------------- On CentOS ------------- 
$ sudo firewall-cmd --permanent --add-port=514/udp
$ sudo firewall-cmd --permanent --add-port=514/tcp
$ sudo firewall-cmd --reload

------------- On Ubuntu -------------
$ sudo ufw allow 514/udp
$ sudo ufw allow 514/tcp
$ sudo ufw reload 

Hvernig á að stilla Rsyslog viðskiptavin til að senda logs til Rsyslog Server

Nú á biðlarakerfinu skaltu athuga hvort rsyslog þjónustan sé í gangi eða ekki með eftirfarandi skipun.

$ sudo systemctl status rsyslog

Ef það er ekki uppsett skaltu setja það upp og hefja þjónustuna eins og sýnt var áðan.

$ sudo yum update && yum install rsyslog 	#CentOS 7
$ sudo apt update && apt install rsyslog	#Ubuntu 16.04, 18.04
$ sudo systemctl start rsyslog
$ sudo systemctl enable rsyslog
$ sudo systemctl status rsyslog

Þegar rsyslog þjónustan er komin í gang skaltu opna aðalstillingarskrána þar sem þú munt framkvæma breytingar á sjálfgefnum stillingum.

$ sudo vim /etc/rsyslog.conf

Til að þvinga rsyslog púkann til að virka sem annálaforrit og framsenda öll staðbundin logskilaboð til ytri rsyslog miðlarans, bætið þessari framsendingarreglu við, í lok skráarinnar eins og sýnt er á eftirfarandi skjámynd.

*. *  @@192.168.100.10:514

Ofangreind regla mun senda skilaboð frá öllum aðstöðu og á öllum alvarleikastigum. Notaðu eftirfarandi reglu til að senda skilaboð frá tiltekinni aðstöðu, til dæmis auðkenningu.

auth. *  @@192.168.100.10:514

Vistaðu breytingarnar og lokaðu stillingarskránni. Til að beita ofangreindum stillingum skaltu endurræsa rsyslog púkann.

$ sudo systemctl restart rsyslog

Hvernig á að fylgjast með fjarskráningu á Rsyslog netþjóninum

Lokaskrefið er að ganga úr skugga um hvort rsyslog sé í raun að taka við og skrá skilaboð frá viðskiptavininum, undir /var/log, á forminu hostname/programname.log.

Keyrðu ls skipun til að langa skráningu yfir foreldrisskrárskrána og athugaðu hvort það sé skrá sem heitir ip-172.31.21.58 (eða hvað sem hýsingarheiti viðskiptavinarvélarinnar þinnar er).

 
$ ls -l /var/log/

Ef skráin er til, athugaðu skrárnar í henni með því að keyra.

$ sudo ls -l /var/log/ip-172-31-21-58/

Rsyslog er afkastamikið annálavinnslukerfi, hannað í arkitektúr viðskiptavinar/miðlara. Við vonum að þú getir sett upp og stillt Rsyslog sem miðlægan/netskráningarþjón og sem viðskiptavin eins og sýnt er í þessari handbók.

Þú gætir líka viljað vísa á viðeigandi rsyslog handbókarsíður til að fá frekari hjálp. Ekki hika við að gefa okkur athugasemdir eða spyrja spurninga.