Kuinka määrittää Rsyslog-asiakas lähettämään lokit Rsyslog-palvelimelle CentOS 7:ssä


Lokinhallinta on yksi verkkoinfrastruktuurin kriittisimmistä komponenteista. Lukuisat järjestelmäohjelmistot, kuten apuohjelmat, sovellukset, demonit, verkkoon liittyvät palvelut, ydin, fyysiset laitteet ja niin edelleen, luovat jatkuvasti lokiviestejä.

Lokitiedostot osoittautuvat hyödyllisiksi Linux-järjestelmän ongelmien vianmäärityksessä, järjestelmän seurannassa ja järjestelmän suojauksen vahvuuden ja ongelmien tarkastelussa.

Rsyslog on avoimen lähdekoodin lokiohjelma, joka on suosituin kirjausmekanismi useissa Linux-jakeluissa. Se on myös oletuslokipalvelu CentOS 7:ssä tai RHEL 7:ssä.

CentOS:n Rsyslog-daemon voidaan määrittää toimimaan palvelimena lokiviestien keräämiseksi useilta verkkolaitteilta. Nämä laitteet toimivat asiakkaina ja ne on määritetty lähettämään lokinsa rsyslog-palvelimelle.

Rsyslog-palvelu voidaan kuitenkin myös määrittää ja käynnistää asiakastilassa. Tämä asennus käskee rsyslog-daemonia välittämään lokiviestit Rsyslog-etäpalvelimelle TCP- tai UDP-siirtoprotokollia käyttäen. Rsyslog-palvelu voidaan myös määrittää toimimaan samanaikaisesti asiakkaana ja palvelimena.

Tässä opetusohjelmassa kuvataan, kuinka CentOS/RHEL 7 Rsyslog-daemon määritetään lähettämään lokiviestejä Rsyslog-etäpalvelimelle. Tämä asetus varmistaa, että koneen levytilaa voidaan säilyttää muiden tietojen tallentamista varten.

Paikka, johon lähes kaikki lokitiedostot kirjoitetaan oletuksena CentOS:ssä, on /var-järjestelmäpolku. On myös suositeltavaa luoda aina erillinen osio /var-hakemistolle, jota voidaan kasvattaa dynaamisesti, jotta /(root)-osio ei kuluisi loppuun.

Rsyslog-asiakasohjelma lähettää lokiviestit aina pelkkänä tekstinä, ellei toisin mainita. Älä määritä Rsyslog-asiakasta lähettämään lokiviestejä Internetin tai verkkojen kautta, jotka eivät ole täysin hallinnassasi.

Vaatimukset

  1. CentOS 7.3:n asennusmenettely
  2. RHEL 7.3 Asennusmenettely
  3. Määritä Rsyslog-palvelin CentOS/RHEL 7:ssä

Vaihe 1: Tarkista Rsyslog-asennus

1. Oletuksena Rsyslog-daemon on jo asennettu ja käynnissä CentOS 7 -järjestelmässä. Anna seuraavat komennot varmistaaksesi, onko järjestelmässä rsyslog-palvelu.

rpm -q | grep rsyslog
rsyslogd -v

2. Jos Rsyslog-pakettia ei ole asennettu CentOS:ään, asenna palvelu suorittamalla alla oleva komento.

yum install rsyslog

Vaihe 2: Määritä Rsyslog-palvelu asiakkaaksi

3. Jos haluat pakottaa CentOS 7 -järjestelmään asennetun Rsyslog-daemonin toimimaan lokiasiakkaana ja reitittämään kaikki paikallisesti luodut lokiviestit Rsyslog-etäpalvelimeen rsyslog-määritystiedosto seuraavasti:

Avaa ensin pääasetustiedosto muokkausta varten.

vi /etc/rsyslog.conf

Liitä sitten alla oleva rivi tiedoston loppuun alla olevan otteen mukaisesti.

*. *  @192.168.10.254:514

Varmista yllä olevalla rivillä, että vaihdat rsyslog-etäpalvelimen FQDN:n IP-osoitteen vastaavasti. Yllä oleva rivi kehottaa Rsyslog-daemonia lähettämään kaikki lokiviestit toiminnosta tai vakavuusasteesta riippumatta isännälle IP 192.168.10.254 -portin 514/UDP kautta.

4. Jos etälokipalvelin on määritetty kuuntelemaan vain TCP-yhteyksiä tai haluat käyttää luotettavaa siirtoverkkoprotokollaa, kuten TCP:tä, lisää eteen toinen @-merkki. etäisännästä alla olevan esimerkin mukaisesti:

*. *  @@logs.domain.lan:514

Linuxin rsyslogissa on myös joitain erikoismerkkejä, kuten = tai !, jotka voidaan liittää prioriteettitasoihin osoittamaan "vain tämä prioriteetti". " yhtäläisyysmerkki ja "ei tämä prioriteetti tai korkeampi kuin tämä".

Joitakin esimerkkejä Rsyslogin prioriteettitason tarkennuksista CentOS 7:ssä:

  • kern.info=ytimen lokit, joiden tiedon prioriteetti on tai korkeampi.
  • kern.=info=vain ytimen viestit, joilla on tietoprioriteetti.
  • kern.info;kern.!err=vain ytimen viestit, joissa on tiedot, huomautukset ja varoitukset.
  • kern.debug;kern.!=warning=kaikki ytimen prioriteetit paitsi varoitus.
  • kern.*=kaikki ytimen prioriteettiviestit.
  • kern.none=älä kirjaa mitään asiaan liittyviä ytimen toimintoviestejä prioriteetista riippumatta.

Jos esimerkiksi haluat lähettää etälokipalvelimelle vain tietyn palvelun viestit, kuten kaikki asiaan liittyvät sähköpostiviestit prioriteettitasosta riippumatta, lisää alla oleva rivi rsyslog-määritystiedostoon:

mail.* @192.168.10.254:514 

5. Lopuksi, jotta uusi kokoonpano voidaan ottaa käyttöön, Rsyslog-palvelu on käynnistettävä uudelleen, jotta demoni voi havaita muutokset suorittamalla alla oleva komento:

systemctl restart rsyslog.service

6. Jos jostain syystä Rsyslog-daemonia ei ole otettu käyttöön käynnistyksen aikana, anna alla oleva komento ottaaksesi palvelun käyttöön koko järjestelmän:

systemctl enable rsyslog.service

Vaihe 3: Lähetä Apache- ja Nginx-lokit etälokipalvelimeen

7. Apache HTTP-palvelin voidaan määrittää lähettämään lokiviestejä etälogipalvelimelle lisäämällä seuraava rivi sen päämääritystiedostoon alla olevan esimerkin mukaisesti.

vi /etc/httpd/conf/httpd.conf

Lisää alla oleva rivi Apachen pääkonf-tiedostoon.

CustomLog "| /bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-access.log | /usr/bin/logger -thttpd -plocal1.notice'" combined

Rivi pakottaa HTTP-daemonin kirjoittamaan lokiviestit sisäisesti tiedostojärjestelmän lokitiedostoon, mutta myös käsittelemään viestit edelleen pipe to logger -apuohjelman kautta, joka lähettää ne kaukaiselle syslog-palvelimelle merkitsemällä ne tuleviksi paikalliselta1. laitos.

8. Jos haluat myös ohjata Apache-virhelokiviestit etälogipalvelimeen, lisää uusi sääntö kuten yllä olevassa esimerkissä, mutta muista korvata httpd-lokitiedoston nimi ja lokitiedoston vakavuustaso vastaamaan virheen prioriteettia seuraavan esimerkin mukaisesti:

ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/httpd/httpd-error.log | /usr/bin/logger -thttpd -plocal1.err'"

9. Kun olet lisännyt yllä olevat rivit, sinun on käynnistettävä Apache-daemon uudelleen, jotta muutokset voidaan ottaa käyttöön antamalla seuraava komento:

systemctl restart httpd.service                 

10. Versiosta 1.7.1 lähtien Nginx-verkkopalvelimessa on sisäänrakennetut ominaisuudet, joiden avulla se voi kirjata viestinsä suoraan lokipalvelimeen lisäämällä seuraavat rivit koodi nginx-määritystiedostoon.

error_log syslog:server=192.168.1.10:514,facility=local7,tag=nginx,severity=error;
access_log syslog:server=192.168.10.254:514,facility=local7,tag=nginx,severity=info main;

Jos kyseessä on IPv6-palvelin, käytä seuraavaa syntaksimuotoa IPv6-osoitteen liittämiseen.

access_log syslog:server=[7101:dc7::9]:514,facility=local7,tag=nginx,severity=info;

11. Rsyslog-etäpalvelimella sinun on tehtävä seuraava muutos rsyslog-määritystiedostoon, jotta voit vastaanottaa Apache-verkkopalvelimen lähettämät lokit.

local1.* @Apache_IP_address:514

Siinä kaikki! Olet onnistuneesti määrittänyt Rsyslog-daemonin toimimaan asiakastilassa, ja olet myös ohjeistanut Apache HTTP -palvelinta tai Nginxiä välittämään lokiviestinsä. syslog-etäpalvelimeen.

Jos järjestelmä kaatuu, sinun pitäisi pystyä tutkimaan ongelma tarkistamalla lokitiedostojen sisältö, jotka on tallennettu etäsyslog-palvelimelle.