Central Logging Serverin asennus Rsyslogilla Linuxissa
Lokit ovat minkä tahansa ohjelmiston tai käyttöjärjestelmän kriittinen osa. Lokit tallentavat yleensä käyttäjän toimet, järjestelmätapahtumat, verkkotoiminnan ja paljon muuta sen mukaan, mihin ne on tarkoitettu. Yksi Linux-järjestelmien yleisimmin käytetyistä kirjausjärjestelmistä on rsyslog.
Rsyslog on tehokas, turvallinen ja suorituskykyinen lokinkäsittelyjärjestelmä, joka hyväksyy tietoja erityyppisistä lähteistä (järjestelmistä/sovelluksista) ja tuottaa ne useisiin muotoihin.
Se on kehittynyt tavallisesta syslog-demonista täysin varustelluksi, yritystason kirjausjärjestelmäksi. Se on suunniteltu asiakas-/palvelinmalliksi, joten se voidaan määrittää asiakkaaksi ja/tai keskuspalvelimeksi muille palvelimille, verkkolaitteille ja etäsovelluksille.
Tässä oppaassa käytämme seuraavia isäntiä:
- Palvelin: 192.168.241.140
- Asiakas: 172.31.21.58
Kuinka asentaa ja määrittää Rsyslog Server
Useimpien Linux-jakelujen mukana on esiasennettu rsyslog-paketti. Jos sitä ei ole asennettu, voit asentaa sen Linux-paketinhallintatyökalulla kuvan osoittamalla tavalla.
$ sudo yum update && yum install rsyslog #CentOS 7 $ sudo apt update && apt install rsyslog #Ubuntu 16.04, 18.04
Kun rsyslog on asennettu, sinun on käynnistettävä palvelu toistaiseksi, sallittava se käynnistymään automaattisesti käynnistyksen yhteydessä ja tarkistaa sen tila systemctl-komennolla.
$ sudo systemctl start rsyslog $ sudo systemctl enable rsyslog $ sudo systemctl status rsyslog
Rsyslog-pääasetustiedosto sijaitsee osoitteessa /etc/rsyslog.conf, joka lataa moduulit, määrittelee globaalit ohjeet, sisältää säännöt lokiviestien käsittelystä ja sisältää myös kaikki asetustiedostot /etc/rsyslog.d/ eri sovelluksille/palveluille .
$ sudo vim /etc/rsyslog.conf
Oletuksena rsyslog käyttää imjournal- ja imusock-moduuleja jäsenneltyjen lokiviestien tuomiseen systemd-päiväkirjasta ja syslog-viestien vastaanottamiseen paikallisessa järjestelmässä toimivista sovelluksista Unix-pistorasioiden kautta.
Jos haluat määrittää rsyslogin verkoksi/keskitetyksi lokipalvelimeksi, sinun on määritettävä protokolla (joko UDP tai TCP tai molemmat), jota se käyttää syslogin etävastaanottoon, sekä portti, jota se kuuntelee.
Jos haluat käyttää UDP-yhteyttä, joka on nopeampi mutta epäluotettava, etsi ja poista kommentit alla olevista riveistä (korvaa 514 portilla, jota haluat sen kuuntelevan, tämän tulisi vastata porttiosoitetta, johon asiakkaat lähettävät viestejä. tässä enemmän määritettäessä rsyslog-asiakasta).
$ModLoad imudp $UDPServerRun 514
Jos haluat käyttää TCP-yhteyttä (joka on hitaampaa, mutta luotettavampaa), etsi ja poista kommentit alla olevista riveistä.
$ModLoad imtcp $InputTCPServerRun 514
Tässä tapauksessa haluamme käyttää sekä UDP- että TCP-yhteyksiä samanaikaisesti.
Seuraavaksi sinun on määritettävä sääntöryhmä etälokien käsittelemiseksi seuraavassa muodossa.
facility.severity_level destination (where to store log)
Missä:
- laitos: on prosessia/sovellusta tuottavan viestin tyyppi, ne sisältävät auth, cron, daemon, kernel, local0..local7.
*
-toiminnon käyttäminen tarkoittaa kaikkia toimintoja. - vakavuustaso: on lokiviestin tyyppi: emerg-0, hälytys-1, crit-2, virhe-3, varoitus-4, huomautus-5, info-6, virheenkorjaus-7.
*
-toiminnon käyttäminen tarkoittaa kaikkia vakavuustasoja eikä mikään merkitse vakavuusastetta. - kohde: on joko paikallinen tiedosto tai etäinen rsyslog-palvelin (määritetty muodossa IP: portti).
Käytämme seuraavaa sääntöjoukkoa lokien keräämiseksi etäisänteistä RemoteLogs-mallin avulla. Huomaa, että näiden sääntöjen on oltava ennen kaikkia paikallisten viestien käsittelyä koskevia sääntöjä, kuten kuvakaappauksessa esitetään.
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?RemoteLogs & ~
Edellä olevaa sääntöjoukkoa tarkasteltaessa ensimmäinen sääntö on\"$template RemoteLogs",/var/log /% HOSTNAME% /% PROGRAMNAME% .log "".
Käsky $template käskee rsyslog-daemonia keräämään ja kirjoittamaan kaikki vastaanotetut etäviestit erillisiin lokeihin/var/log -tietokoneen nimen (asiakaskoneen nimi) ja etäasiakassovelluksen (ohjelma/sovellus) perusteella, jotka luovat viestit määritelmän mukaisesti. RemoteLogs-mallipohjassa olevilla asetuksilla.
Toinen rivi\"*. *? RemoteLogs" tarkoittaa kaikkien tilojen viestien tallentamista kaikilla vakavuustasoilla RemoteLogs-mallin kokoonpanolla.
Viimeinen rivi\"& ~" kehottaa rsyslogia lopettamaan viestien käsittelyn, kun se on kirjoitettu tiedostoon. Jos et lisää & ~ -merkkiä, viestit kirjoitetaan sen sijaan paikallisiin tiedostoihin.
On monia muita malleja, joita voit käyttää, katso lisätietoja rsyslog-määritysten man -sivulta (man rsyslog.conf) tai tutustu Rsyslogin online-ohjeisiin.
Siinä se on, kun määrität rsyslog-palvelimen. Tallenna ja sulje määritystiedosto. Jos haluat ottaa käyttöön viimeisimmät muutokset, käynnistä rsyslog-demoni uudelleen seuraavalla komennolla.
$ sudo systemctl restart rsyslog
Tarkista nyt rsyslog-verkon pistorasiat. Käytä ss-komentoa (tai grep suodattaa rsyslogd-yhteydet.
$ sudo ss -tulnp | grep "rsyslog"
Seuraavaksi CentOS 7: ssä, jos SELinux on käytössä, suorita seuraavat komennot salliaksesi rsyslog-liikenteen verkkopistoketyypin perusteella.
$ sudo semanage -a -t syslogd_port_t -p udp 514 $ sudo semanage -a -t syslogd_port_t -p tcp 514
Jos järjestelmässä on palomuuri käytössä, joudut avaamaan portin 514, jotta molemmat UDP/TCP-yhteydet sallitaan rsyslog-palvelimelle.
------------- 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
Kuinka määritetään Rsyslog Client lähettämään lokeja Rsyslog Serverille
Tarkista nyt asiakasjärjestelmässä, toimiiko rsyslog-palvelu seuraavalla komennolla.
$ sudo systemctl status rsyslog
Jos sitä ei ole asennettu, asenna se ja käynnistä palvelu aiemmin esitetyn mukaisesti.
$ 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
Kun rsyslog-palvelu on käynnissä, avaa pääasetustiedosto, jossa teet muutoksia oletusasetuksiin.
$ sudo vim /etc/rsyslog.conf
Jos haluat pakottaa rsyslog-daemon toimimaan lokiasiakkaana ja välittämään kaikki paikallisesti luodut lokiviestit etä-rsyslog-palvelimelle, lisää tämä edelleenlähetyssääntö tiedoston loppuun, kuten seuraavassa kuvakaappauksessa näytetään.
*. * @@192.168.100.10:514
Yllä oleva sääntö lähettää viestejä kaikista tiloista ja kaikilla vakavuustasoilla. Jos haluat lähettää viestejä tietystä laitoksesta, esimerkiksi todennuksesta, käytä seuraavaa sääntöä.
auth. * @@192.168.100.10:514
Tallenna muutokset ja sulje määritystiedosto. Jos haluat käyttää yllä olevia asetuksia, käynnistä rsyslog-demoni uudelleen.
$ sudo systemctl restart rsyslog
Kuinka seurata etälokia Rsyslog-palvelimella
Viimeinen vaihe on tarkistaa, onko rsyslog todella vastaanottanut ja kirjautumassa viestejä asiakkaalta, kohdassa/var/log, muodossa isäntänimi/ohjelmanimi.log.
Suorita ls-komento vanhempien lokihakemistojen pitkään luetteloon ja tarkista, onko hakemistoa nimeltä ip-172.31.21.58 (tai mikä tahansa asiakkaan koneen isäntänimi on).
$ ls -l /var/log/
Jos hakemisto on olemassa, tarkista sen sisällä olevat lokitiedostot suorittamalla.
$ sudo ls -l /var/log/ip-172-31-21-58/
Rsyslog on korkean suorituskyvyn lokinkäsittelyjärjestelmä, joka on suunniteltu asiakas/palvelinarkkitehtuuriin. Toivomme, että pystyt asentamaan ja konfiguroimaan Rsyslogin keskus-/verkon kirjauspalvelimeksi ja asiakkaaksi, kuten tässä oppaassa on esitetty.
Saatat myös haluta katsoa lisätietoja asiaankuuluvista rsyslog-käyttöoppaista. Anna meille palautetta tai kysy kysymyksiä.