Kif Twaqqaf is-Server tal-Logging Ċentrali b'Rsyslog fil-Linux


Zkuk huma komponent kritiku ta 'kwalunkwe software jew sistema operattiva. Is-zkuk normalment jirreġistraw l-azzjonijiet tal-utent, l-avvenimenti tas-sistema, l-attività tan-netwerk u ħafna aktar, skont għalxiex huma maħsuba. Waħda mis-sistemi tal-illoggjar l-aktar użati fuq sistemi Linux hija rsyslog.

Rsyslog hija sistema b'saħħitha, sigura u ta' prestazzjoni għolja ta' pproċessar ta' log li taċċetta data minn tipi differenti ta' sors (sistemi/applikazzjonijiet) u toħroġha f'formati multipli.

Evolviet minn demon syslog regolari għal sistema ta' illoggjar fil-livell ta' intrapriża b'karatteristika sħiħa. Huwa ddisinjat f'mudell ta 'klijent/server, għalhekk jista' jiġi kkonfigurat bħala klijent u/jew bħala server ċentrali ta 'logging għal servers oħra, tagħmir tan-netwerk, u applikazzjonijiet remoti.

Għall-fini ta 'din il-gwida, se nużaw l-ospiti li ġejjin:

  • Server: 192.168.241.140
  • Klijent: 172.31.21.58

Kif tinstalla u tikkonfigura Rsyslog Server

Il-biċċa l-kbira tad-distribuzzjonijiet tal-Linux jiġu mal-pakkett rsyslog installat minn qabel. F'każ li ma jkunx installat, tista' tinstallah billi tuża l-għodda tal-maniġer tal-pakkett Linux tiegħek kif muri.

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

Ladarba rsyslog jiġi installat, għandek bżonn tibda s-servizz għalissa, tippermettilu li jibda awtomatikament mal-but u jiċċekkja l-istatus tiegħu bil-kmand systemctl.

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

Il-fajl ewlieni tal-konfigurazzjoni rsyslog jinsab f'/etc/rsyslog.conf, li jgħabbi l-moduli, jiddefinixxi d-direttivi globali, fih regoli għall-ipproċessar tal-messaġġi log u jinkludi wkoll il-fajls tal-konfigurazzjoni kollha f'/etc/rsyslog.d/ għal diversi applikazzjonijiet/servizzi .

$ sudo vim /etc/rsyslog.conf

B'mod awtomatiku, rsyslog juża l-moduli imjournal u imusock biex jimporta messaġġi ta' log strutturati minn systemd journal u biex jaċċetta messaġġi syslog minn applikazzjonijiet li jaħdmu fis-sistema lokali permezz ta' sockets Unix, rispettivament.

Biex tikkonfigura rsyslog bħala netwerk/server ċentrali tal-illoggjar, trid issettja l-protokoll (jew UDP jew TCP jew it-tnejn) li se juża għar-riċeviment remot tas-syslog kif ukoll il-port li jisma fuqu.

Jekk trid tuża konnessjoni UDP, li hija aktar mgħaġġla iżda mhux affidabbli, fittex u neħħi l-kumment tal-linji hawn taħt (issostitwixxi 514 bil-port li trid tisma' fuqu, dan għandu jaqbel mal-indirizz tal-port li l-klijenti jibagħtu l-messaġġi lilu, aħna nħarsu. f'dan aktar meta tikkonfigura klijent rsyslog).

$ModLoad imudp
$UDPServerRun 514

Biex tuża konnessjoni TCP (li hija aktar bil-mod iżda aktar affidabbli), fittex u neħħi l-kumment tal-linji hawn taħt.

$ModLoad imtcp
$InputTCPServerRun 514

F'dan il-każ, irridu nużaw kemm konnessjonijiet UDP kif ukoll TCP fl-istess ħin.

Sussegwentement, għandek bżonn tiddefinixxi s-sett ta 'regoli għall-ipproċessar ta' zkuk remoti fil-format li ġej.

facility.severity_level	destination (where to store log)

Fejn:

  • faċilità: hija tip ta' proċess/messaġġ li jiġġenera applikazzjoni, jinkludu awth, cron, daemon, kernel, local0..local7. L-użu ta' * ifisser il-faċilitajiet kollha.
  • severity_level: huwa tip ta' messaġġ log: emerg-0, alert-1, crit-2, err-3, warn-4, notice-5, info-6, debug-7. L-użu ta' * ifisser il-livelli kollha ta' severità u l-ebda wieħed ma jimplika l-ebda livell ta' severità.
  • destinazzjoni: hija jew fajl lokali jew server rsyslog remot (definit fil-forma IP:port).

Se nużaw is-sett ta' regoli li ġejjin għall-ġbir ta' zkuk minn hosts remoti, billi nużaw il-mudell RemoteLogs. Innota li dawn ir-regoli għandhom jiġu qabel kwalunkwe regola għall-ipproċessar ta 'messaġġi lokali, kif muri fil-screenshot.

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

Meta wieħed iħares lejn ir-regoli ta’ hawn fuq, l-ewwel regola hija \$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log””.

Id-direttiva $template tgħid lil rsyslog daemon biex jiġbor u jikteb il-messaġġi remoti kollha riċevuti fi zkuk distinti taħt /var/log, ibbażati fuq l-isem tal-host (isem tal-magna tal-klijent) u l-faċilità tal-klijent remot (programm/applikazzjoni) li ġġeneraw il-messaġġi kif definiti. mis-settings preżenti fil-mudell RemoteLogs.

It-tieni linja \*.* ?RemoteLogs tfisser messaġġi rekord mill-faċilitajiet kollha fil-livelli kollha ta 'severità bl-użu tal-konfigurazzjoni tal-mudell RemoteLogs.

Il-linja finali \& ~” tagħti struzzjonijiet lil rsyslog biex jieqaf jipproċessa l-messaġġi ladarba jinkiteb f'fajl. Jekk ma tinkludix “& ~”, il-messaġġi minflok jinkitbu fil-fajls lokali.

Hemm ħafna mudelli oħra li tista' tuża, għal aktar informazzjoni, ara l-paġna man tal-konfigurazzjoni ta' rsyslog (man rsyslog.conf) jew irreferi għad-dokumentazzjoni online ta' Rsyslog.

Dak hu mal-konfigurazzjoni tas-server rsyslog. Issejvja u agħlaq il-fajl tal-konfigurazzjoni. Biex tapplika l-bidliet riċenti, terġa 'tibda rsyslog daemon bil-kmand li ġej.

$ sudo systemctl restart rsyslog

Issa ivverifika s-sokits tan-netwerk rsyslog. Uża l-kmand ss (jew grep biex tiffiltra l-konnessjonijiet rsyslogd.

$ sudo ss -tulnp | grep "rsyslog"

Sussegwentement, fuq CentOS 7, jekk għandek SELinux attivat, mexxi l-kmandi li ġejjin biex tippermetti traffiku rsyslog ibbażat fuq it-tip ta 'socket tan-netwerk.

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

Jekk is-sistema għandha l-firewall attivata, trid tiftaħ il-port 514 biex tippermetti ż-żewġ konnessjonijiet UDP/TCP mas-server rsyslog, billi taħdem.

------------- 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 

Kif tikkonfigura l-Klijent Rsyslog biex tibgħat zkuk lil Rsyslog Server

Issa fuq is-sistema tal-klijent, iċċekkja jekk is-servizz rsyslog huwiex qed jaħdem jew le bil-kmand li ġej.

$ sudo systemctl status rsyslog

Jekk ma jkunx installat, installah u ibda s-servizz kif muri qabel.

$ 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

Ladarba s-servizz rsyslog ikun qed jaħdem, iftaħ il-fajl tal-konfigurazzjoni prinċipali fejn se twettaq bidliet fil-konfigurazzjoni default.

$ sudo vim /etc/rsyslog.conf

Biex iġġiegħel lid-daemon rsyslog jaġixxi bħala klijent log u jgħaddi l-messaġġi log iġġenerati lokalment kollha lis-server rsyslog remot, żid din ir-regola ta 'trażmissjoni, fl-aħħar tal-fajl kif muri fil-screenshot li ġej.

*. *  @@192.168.100.10:514

Ir-regola ta 'hawn fuq tibgħat messaġġi mill-faċilitajiet kollha u fil-livelli kollha ta' severità. Biex tibgħat messaġġi minn faċilità speċifika pereżempju awth, uża r-regola li ġejja.

auth. *  @@192.168.100.10:514

Issejvja l-bidliet u agħlaq il-fajl tal-konfigurazzjoni. Biex tapplika s-settings ta 'hawn fuq, erġa' ibda d-daemon rsyslog.

$ sudo systemctl restart rsyslog

Kif Tissorvelja l-Logging Remote fuq is-Server Rsyslog

L-aħħar pass huwa li tivverifika jekk ir-rsyslog hux fil-fatt jirċievi u jilloggja messaġġi mill-klijent, taħt /var/log, fil-forma hostname/programname.log.

Mexxi kmand ls għal lista twila tad-direttorju tar-reġistri tal-ġenitur u ċċekkja jekk hemmx direttorju msejjaħ ip-172.31.21.58 (jew ikun xi jkun l-isem tal-host tal-magna tal-klijent tiegħek).

 
$ ls -l /var/log/

Jekk id-direttorju jeżisti, iċċekkja l-log files ġewwa fih, billi taħdem.

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

Rsyslog hija sistema ta 'proċessar ta' log ta 'prestazzjoni għolja, iddisinjata f'arkitettura ta' klijent/server. Nittamaw li tkun kapaċi tinstalla u tikkonfigura Rsyslog bħala server ċentrali/tal-illoggjar tan-netwerk u bħala klijent kif muri f'din il-gwida.

Tista 'wkoll trid tirreferi għall-paġni rilevanti tal-manwal rsyslog għal aktar għajnuna. Ħossok liberu li tagħtina kwalunkwe feedback jew jistaqsi mistoqsijiet.