Kā iestatīt centrālo reģistrēšanas serveri ar Rsyslog Linux


Žurnāli ir jebkuras programmatūras vai operētājsistēmas kritiska sastāvdaļa. Žurnālos parasti tiek ierakstītas lietotāja darbības, sistēmas notikumi, tīkla darbības un daudz kas cits, atkarībā no tā, kam tās ir paredzētas. Viena no visplašāk izmantotajām mežizstrādes sistēmām Linux sistēmās ir rsyslog.

Rsyslog ir spēcīga, droša un augstas veiktspējas žurnālu apstrādes sistēma, kas pieņem datus no dažādiem avotu veidiem (sistēmām/lietojumprogrammām) un izvada tos vairākos formātos.

Tas ir attīstījies no regulāra syslog dēmona par pilnībā aprīkotu uzņēmuma līmeņa reģistrēšanas sistēmu. Tas ir veidots klienta/servera modelī, tāpēc to var konfigurēt kā klientu un/vai kā centrālo reģistrēšanas serveri citiem serveriem, tīkla ierīcēm un attālajām lietojumprogrammām.

Šajā ceļvedī mēs izmantosim šādus resursdatorus:

  • Serveris: 192.168.241.140
  • klients: 172.31.21.58

Kā instalēt un konfigurēt Rsyslog serveri

Lielākajai daļai Linux izplatījumu ir iepriekš instalēta pakete rsyslog. Ja tas nav instalēts, varat to instalēt, izmantojot Linux pakotņu pārvaldnieka rīku, kā parādīts.

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

Kad rsyslog ir instalēts, jums pagaidām jāsāk pakalpojums, jāļauj tam automātiski startēt sāknēšanas laikā un jāpārbauda tā statuss ar komandu systemctl.

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

Galvenais rsyslog konfigurācijas fails atrodas vietnē /etc/rsyslog.conf, kas ielādē moduļus, definē globālās direktīvas, satur noteikumus žurnāla ziņojumu apstrādei, kā arī visus konfigurācijas failus mapē /etc/rsyslog.d/ dažādām lietojumprogrammām/pakalpojumiem .

$ sudo vim /etc/rsyslog.conf

Pēc noklusējuma rsyslog izmanto imjournal un imusock moduļus, lai importētu strukturētus žurnālziņojumus no systemd žurnāla un pieņemtu syslog ziņojumus no lietojumprogrammām, kas darbojas vietējā sistēmā, izmantojot Unix ligzdas.

Lai konfigurētu rsyslog kā tīkla/centrālo reģistrēšanas serveri, jums jāiestata protokols (vai nu UDP, vai TCP, vai abi), ko tas izmantos attālajā syslog saņemšanā, kā arī ports, kuru tas klausās.

Ja vēlaties izmantot ātrāku, bet neuzticamu UDP savienojumu, meklējiet un atceliet zemāk redzamās rindas (aizstājiet 514 ar portu, kuru vēlaties klausīties, tam jāatbilst ostas adresei, uz kuru klienti sūta ziņojumus, mēs to izskatīsim konfigurējot rsyslog klientu).

$ModLoad imudp
$UDPServerRun 514

Lai izmantotu TCP savienojumu (kas ir lēnāks, bet uzticamāks), meklējiet zemāk esošās līnijas un noņemiet tās komentārus.

$ModLoad imtcp
$InputTCPServerRun 514

Šajā gadījumā mēs vēlamies vienlaikus izmantot gan UDP, gan TCP savienojumus.

Tālāk jums jānosaka noteikumu kopa attālo žurnālu apstrādei šādā formātā.

facility.severity_level	destination (where to store log)

Kur:

  • mehānisms: ir procesa/lietojumprogrammas ģenerēšanas ziņojuma veids, tajā ietilpst auth, cron, dēmons, kodols, local0..local7. Izmantojot * , tiek izmantotas visas iespējas.
  • smaguma_līmenis: ir žurnāla ziņojuma veids: emerg-0, alert-1, crit-2, err-3, brīdināt-4, paziņojums-5, informācija-6, atkļūdošana-7. Izmantojot * , tiek izmantoti visi smaguma līmeņi, un neviens nenozīmē, ka nav smaguma pakāpes.
  • galamērķis: ir vai nu vietējais fails, vai attālais rsyslog serveris (definēts formā IP: ports).

Lai apkopotu žurnālus no attālajiem resursdatoriem, izmantojot veidni RemoteLogs, mēs izmantosim šādu kārtulu kopu. Ņemiet vērā, ka šiem noteikumiem ir jābūt pirms visiem vietējo ziņojumu apstrādes noteikumiem, kā parādīts ekrānuzņēmumā.

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

Aplūkojot iepriekš minēto kārtulu kopu, pirmais noteikums ir “$template RemoteLogs”/var/log /% HOSTNAME% /% PROGRAMNAME% .log ””.

Direktīva $template liek rsyslog dēmonam apkopot un rakstīt visus saņemtos attālinātos ziņojumus atsevišķos žurnālos zem/var/log, pamatojoties uz resursdatora nosaukumu (klienta mašīnas nosaukums) un attālo klienta iespēju (programma/programma), kas ģenerēja ziņojumus, kā noteikts pēc iestatījumiem, kas atrodas veidnē RemoteLogs.

Otrā rinda “*. *? RemoteLogs” nozīmē ziņojumu ierakstīšanu no visām iekārtām visos smaguma pakāpēs, izmantojot RemoteLogs veidņu konfigurāciju.

Pēdējā rindiņa “& ~” norāda rsyslog pārtraukt ziņojumu apstrādi, tiklīdz tie ir ierakstīti failā. Ja neiekļausit “& ~”, tā vietā ziņojumi tiks rakstīti vietējos failos.

Ir daudzas citas veidnes, kuras varat izmantot, lai iegūtu papildinformāciju, skatiet rsyslog konfigurācijas rokasgrāmatu (man rsyslog.conf) vai skatiet Rsyslog tiešsaistes dokumentāciju.

Tas ir ar rsyslog servera konfigurēšanu. Saglabājiet un aizveriet konfigurācijas failu. Lai lietotu pēdējās izmaiņas, restartējiet rsyslog dēmonu ar šādu komandu.

$ sudo systemctl restart rsyslog

Tagad pārbaudiet rsyslog tīkla kontaktligzdas. Izmantojiet komandu ss (vai grep, lai filtrētu rsyslogd savienojumus.

$ sudo ss -tulnp | grep "rsyslog"

Pēc tam CentOS 7, ja jums ir iespējots SELinux, palaidiet šīs komandas, lai atļautu rsyslog trafiku, pamatojoties uz tīkla kontaktligzdas tipu.

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

Ja sistēmā ir iespējots ugunsmūris, atverot 514 portu, palaižot abus UDP/TCP savienojumus ar rsyslog serveri.

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

Kā konfigurēt Rsyslog klientu žurnālu sūtīšanai uz Rsyslog serveri

Tagad klienta sistēmā pārbaudiet, vai rsyslog pakalpojums darbojas, vai nē, izmantojot šādu komandu.

$ sudo systemctl status rsyslog

Ja tas nav instalēts, instalējiet to un sāciet pakalpojumu, kā parādīts iepriekš.

$ 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

Kad rsyslog pakalpojums ir izveidots un darbojas, atveriet galveno konfigurācijas failu, kurā veiksit noklusējuma konfigurācijas izmaiņas.

$ sudo vim /etc/rsyslog.conf

Lai piespiestu rsyslog dēmonu darboties kā žurnāla klientam un pārsūtīt visus lokāli ģenerētos žurnāla ziņojumus uz attālo rsyslog serveri, pievienojiet šo pārsūtīšanas kārtulu faila beigās, kā parādīts nākamajā ekrānuzņēmumā.

*. *  @@192.168.100.10:514

Iepriekš minētais noteikums nosūtīs ziņojumus no visām iekārtām un visos smaguma pakāpēs. Lai nosūtītu ziņojumus no noteiktas iespējas, piemēram, auth, izmantojiet šo kārtulu.

auth. *  @@192.168.100.10:514

Saglabājiet izmaiņas un aizveriet konfigurācijas failu. Lai lietotu iepriekš minētos iestatījumus, restartējiet rsyslog dēmonu.

$ sudo systemctl restart rsyslog

Kā uzraudzīt attālo reģistrēšanu Rsyslog serverī

Pēdējais solis ir pārbaudīt, vai rsyslog faktiski saņem un reģistrē ziņojumus no klienta sadaļā/var/log formā resursdatora nosaukums/programmas nosaukums.log.

Palaidiet komandu ls vecāku žurnālu direktorija garam sarakstam un pārbaudiet, vai ir direktorijs ar nosaukumu ip-172.31.21.58 (vai kāds ir jūsu klienta mašīnas resursdatora nosaukums).

 
$ ls -l /var/log/

Ja direktorija pastāv, pārbaudiet tajā esošos žurnālfailus, palaižot.

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

Rsyslog ir augstas veiktspējas žurnālu apstrādes sistēma, kas izstrādāta klienta/servera arhitektūrā. Mēs ceram, ka jūs varat instalēt un konfigurēt Rsyslog kā centrālo/tīkla reģistrēšanas serveri un kā klientu, kā parādīts šajā rokasgrāmatā.

Lai iegūtu papildu palīdzību, varat arī atsaukties uz attiecīgajām rsyslog rokasgrāmatas lapām. Sūtiet mums nekādas atsauksmes vai uzdodiet jautājumus.