Kuidas keskse logimisserveri seadistamine Rsyslogiga Linuxis


Logid on mis tahes tarkvara või operatsioonisüsteemi kriitiline komponent. Logid salvestavad tavaliselt kasutaja toimingud, süsteemi sündmused, võrgutegevuse ja palju muud, olenevalt sellest, milleks need on mõeldud. Linuxi süsteemide üks levinumaid logimissüsteeme on rsyslog.

Rsyslog on võimas, turvaline ja suure jõudlusega logitöötlussüsteem, mis võtab vastu andmeid erinevat tüüpi allikatest (süsteemid/rakendused) ja väljastab need mitmesse vormingusse.

See on arenenud tavalisest syslog-deemonist täisfunktsionaalseks ettevõtte tasemel logimissüsteemiks. See on loodud kliendi/serveri mudelis, seetõttu saab seda konfigureerida kliendina ja/või teiste serverite, võrguseadmete ja kaugrakenduste keskseks logimisserveriks.

Selles juhendis kasutame järgmisi masinaid:

  • Server: 192.168.241.140
  • klient: 172.31.21.58

Rsyslogi serveri installimine ja konfigureerimine

Enamik Linuxi distributsioone on varustatud eelinstallitud paketiga rsyslog. Kui see pole installitud, saate selle installida oma Linuxi paketihalduri tööriista abil, nagu näidatud.

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

Kui rsyslog on installitud, peate teenuse praegu käivitama, lubama selle käivitamisel automaatselt käivitada ja kontrollida selle olekut käsuga systemctl.

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

Peamine rsyslogi seadistustefail asub aadressil /etc/rsyslog.conf, mis laadib mooduleid, määratleb globaalsed direktiivid, sisaldab reegleid logisõnumite töötlemiseks ja sisaldab kõiki konfiguratsioonifaile /etc/rsyslog.d/ mitmesuguste rakenduste/teenuste jaoks .

$ sudo vim /etc/rsyslog.conf

Vaikimisi kasutab rsyslog imjournal ja imusock mooduleid struktureeritud logisõnumite importimiseks systemd journalist ja syslogisõnumite vastuvõtmiseks kohalikus süsteemis Unixi pistikupesade kaudu töötavatest rakendustest.

Rsyslogi konfigureerimiseks võrgu/keskse logimisserverina peate määrama protokolli (kas UDP, TCP või mõlemad), mida ta kasutab nii kaugsüslogide vastuvõtmiseks kui ka porti, mida ta kuulab.

Kui soovite kasutada kiiremat, kuid ebausaldusväärset UDP-ühendust, otsige ja kommenteerige allolevaid ridu (asendage 514 pordiga, mida soovite kuulata, see peaks vastama pordiaadressile, millele kliendid sõnumeid saadavad, vaatame rsyslogi kliendi seadistamisel).

$ModLoad imudp
$UDPServerRun 514

TCP-ühenduse (mis on aeglasem, kuid usaldusväärsem) kasutamiseks otsige allpool olevaid ridu ja eemaldage kommentaar.

$ModLoad imtcp
$InputTCPServerRun 514

Sellisel juhul soovime kasutada korraga nii UDP- kui ka TCP-ühendusi.

Järgmisena peate määrama kauglogi töötlemise reeglistiku järgmises vormingus.

facility.severity_level	destination (where to store log)

Kus:

  • rajatis: on protsessi/rakendust genereeriva sõnumi tüüp, nende hulka kuuluvad auth, cron, daemon, kernel, local0..local7. * kasutamine tähendab kõiki võimalusi.
  • raskusastme tase: on logisõnumi tüüp: emerg-0, alert-1, crit-2, err-3, hoiatus-4, teade-5, info-6, silumine-7. * kasutamine tähendab kõiki raskusastmeid ja ükski ei tähenda raskusastet
  • sihtkoht: on kas kohalik fail või rsyslogi kaugserver (määratletud kujul IP: port).

Kasutame kaugreeglitest logide kogumiseks malli RemoteLogs abil järgmist reeglistikku. Pange tähele, et need reeglid peavad olema enne kohalike sõnumite töötlemise reegleid, nagu ekraanipildil näidatud.

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

Vaadates ülaltoodud reeglistikku, on esimene reegel\"$template RemoteLogs,"/var/log /% HOSTNAME% /% PROGRAMNAME% .log "".

Direktiiv $template käsib rsyslog deemonil koguda ja kirjutada kõik vastuvõetud kaugsõnumid erinevatesse logidesse/var/logi alusel, lähtudes hostinimest (kliendimasina nimi) ja kaugkliendi võimalusest (programm/rakendus), mis sõnumid genereerisid määratletud kujul mallis RemoteLogs olevate sätete järgi.

Teine rida\"*. *? RemoteLogs" tähendab kõigi seadmete kõigi raskusastmete sõnumite salvestamist, kasutades RemoteLogsi malli konfiguratsiooni.

Viimane rida\"& ~" käsib rsyslogil lõpetada sõnumite töötlemine, kui see on faili kirjutatud. Kui te ei sisesta & ~, kirjutatakse sõnumid selle asemel kohalikesse failidesse.

On palju muid malle, mida saate kasutada. Lisateabe saamiseks vaadake rsyslogi seadistamise käsulehte (man rsyslog.conf) või vaadake Rsyslogi veebidokumentatsiooni.

See on rsyslogi serveri konfigureerimine. Salvestage ja sulgege konfiguratsioonifail. Viimaste muudatuste rakendamiseks taaskäivitage rsyslogi deemon järgmise käsuga.

$ sudo systemctl restart rsyslog

Nüüd kontrollige rsyslogi võrgupesasid. Rsyslogd-ühenduste filtreerimiseks kasutage käsku ss (või grep.

$ sudo ss -tulnp | grep "rsyslog"

Järgmisena käivitage CentOS 7-s, kui teil on lubatud SELinux, käivitage järgmised käsud rsyslogi liikluse lubamiseks võrgupesa tüübi järgi.

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

Kui süsteemil on tulemüür lubatud, peate käivitama pordi 514, et lubada mõlemad UDP/TCP-ühendused rsyslogi serveriga.

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

Kuidas konfigureerida Rsyslogi klient logisid Rsyslog Serverile saatma

Nüüd kontrollige kliendisüsteemis järgmise käsuga, kas rsyslogi teenus töötab või mitte.

$ sudo systemctl status rsyslog

Kui see pole installitud, installige see ja käivitage teenus, nagu varem näidatud.

$ 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

Kui rsyslogi teenus on töökorras, avage peamine konfiguratsioonifail, kus teete muudatusi vaikekonfiguratsioonis.

$ sudo vim /etc/rsyslog.conf

Kui soovite sundida rsyslogi deemoni toimima logikliendina ja edastama kõik kohapeal loodud logisõnumid kaugserverisse, lisage see edastusreegel faili lõppu, nagu on näidatud järgmisel ekraanipildil.

*. *  @@192.168.100.10:514

Ülaltoodud reegel saadab sõnumeid kõigist rajatistest ja kõigil raskusastmetel. Kindlast seadmest, näiteks autentsusest, sõnumite saatmiseks kasutage järgmist reeglit.

auth. *  @@192.168.100.10:514

Salvestage muudatused ja sulgege konfiguratsioonifail. Eespool toodud sätete rakendamiseks taaskäivitage rsyslogi deemon.

$ sudo systemctl restart rsyslog

Kuidas jälgida kaugsisselogimist Rsyslog Serveris

Viimane samm on kontrollida, kas rsyslog võtab vastu ja logib kliendilt sõnumeid/var/logi kujul kujul hostinimi/programminimi.log.

Käivitage käsk ls emalogide kataloogi pika nimekirja lisamiseks ja kontrollige, kas on kataloog nimega ip-172.31.21.58 (või mis iganes teie kliendimasina hosti nimi on).

 
$ ls -l /var/log/

Kui kataloog on olemas, kontrollige selle sees olevaid logifaile, käivitades.

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

Rsyslog on suure jõudlusega logitöötlussüsteem, mis on loodud kliendi/serveri arhitektuuris. Loodame, et saate installida ja konfigureerida Rsyslogi kesksena/võrgus logimise serverina ja kliendina, nagu on näidatud selles juhendis.

Samuti võite abi saamiseks vaadata asjakohaseid rsyslogi kasutusjuhendeid. Andke meile julgelt tagasisidet või küsige küsimusi.