Wéi verwalten System Logbicher (Konfiguréieren, Rotéieren an Import an Datebank) an RHEL 7 - Deel 5


Fir Är RHEL 7 Systemer sécher ze halen, musst Dir wësse wéi Dir all d'Aktivitéiten iwwerwaacht, déi op esou Systemer stattfannen, andeems Dir Logdateien ënnersicht. Sou wäert Dir fäeg sinn all ongewéinlech oder potenziell béiswëlleg Aktivitéit z'entdecken a Systemfehlerbehandlung auszeféieren oder eng aner passend Handlung ze huelen.

Am RHEL 7 ass de rsyslogd-Daemon verantwortlech fir de Systemprotokoll a liest seng Konfiguratioun vun /etc/rsyslog.conf (dës Datei spezifizéiert d'Standardplaz fir all Systemprotokoller) a vu Dateien an /etc/rsyslog.d, wann iwwerhaapt.

Rsyslogd Konfiguratioun

Eng séier Inspektioun vum rsyslog.conf wäert hëllefräich sinn fir ze starten. Dës Datei ass an 3 Haaptsektiounen opgedeelt: Moduler (zënter datt rsyslog e modularen Design follegt), Global Direktiven (benotzt fir global Eegeschafte vum rsyslogd Daemon ze setzen), a Regelen. Wéi Dir wahrscheinlech wäert roden, weist dës lescht Sektioun un wat protokolléiert oder gewise gëtt (och bekannt als Selector) a wou, a wäert eise Fokus an dësem Artikel sinn.

Eng typesch Linn an rsyslog.conf ass wéi follegt:

Am Bild hei uewen kënne mir gesinn datt e Selektor aus engem oder méi Puer besteet Facilitéit:Prioritéit getrennt duerch Semikolonen, wou Facilitéit d'Zort vum Message beschreift (kuckt op Sektioun 4.1.1 am RFC 3164 fir déi komplett Lëscht vun Ariichtungen ze gesinn fir rsyslog) a Prioritéit weist seng Gravitéit un, wat ee vun de folgende selbstverständleche Wierder kann sinn:

  1. Debug
  2. Info
  3. Notiz
  4. Warnung
  5. Feeler
  6. krit
  7. alarm
  8. entstanen

Och wann net eng Prioritéit selwer, heescht d'Schlësselwuert keen guer keng Prioritéit vun der gegebener Ariichtung.

Notiz: Datt eng gegebene Prioritéit bedeit datt all Messagen mat esou Prioritéit a méi héich solle protokolléiert ginn. Also instruéiert d'Linn am Beispill hei uewen den rsyslogd Daemon fir all Messagen mat Prioritéitsinformatioun oder méi héich ze protokolléieren (egal vun der Ariichtung) ausser déi, déi zu Mail, Authpriv, a Cron Servicer gehéieren (keng Messagen, déi aus dëser Ariichtung kommen, ginn berücksichtegt ) op /var/log/messages.

Dir kënnt och verschidde Ariichtungen gruppéiere mat dem Colon Zeechen fir déiselwecht Prioritéit fir all ze gëllen. Also d'Linn:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Kéint ëmgeschriwwe ginn als

*.info;mail,authpriv,cron.none                /var/log/messages

An anere Wierder, d'Equipement Mail, authpriv, an cron sinn gruppéiert an d'Schlësselwuert keen ass op déi dräi vun hinnen applizéiert.

Fir all Daemon Messagen op /var/log/tecmint.log ze protokolléieren, musse mir déi folgend Linn entweder an rsyslog.conf oder an enger separater Datei (méi einfach ze verwalten) bannent /etc/rsyslog.d addéieren:

daemon.*    /var/log/tecmint.log

Loosst eis den Daemon nei starten (notéiert datt de Servicenumm net mat engem d endet):

# systemctl restart rsyslog

A kontrolléiert d'Inhalter vun eisem personaliséierte Log ier an no zwee zoufälleg Daemonen nei starten:

Als Self-Studie Übung, Ech géif Iech recommandéieren mat den Ariichtungen a Prioritéite ze spillen an entweder zousätzlech Messagen ze bestehend Log Fichieren aloggen oder nei schafen wéi am virdrun Beispill.

Rotéiert Logbicher mat Logrotate

Fir ze verhënneren datt d'Logdateien endlos wuessen, gëtt de Logrotate Utility benotzt fir Logbicher ze rotéieren, kompriméieren, ewechzehuelen an alternativ ze mailen, sou datt d'Verwaltung vu Systemer erliichtert gëtt déi grouss Zuel vu Logdateien generéieren.

Logrotate leeft all Dag als Cron Job (/etc/cron.daily/logrotate) a liest seng Konfiguratioun vun /etc/logrotate.conf a vu Dateien, déi an /etc/logrotate.d sinn, wann iwwerhaapt.

Wéi am Fall vun rsyslog, och wann Dir Astellunge fir spezifesch Servicer an der Haaptdatei kënnt enthalen, getrennte Konfiguratiounsdateien fir all eenzel ze kreéieren hëlleft Är Astellunge besser ze organiséieren.

Loosst eis en typesche logrotate.conf kucken:

Am Beispill hei uewen wäert logrotate déi folgend Aktiounen fir /var/loh/wtmp ausféieren: probéiert nëmmen eemol am Mount ze rotéieren, awer nëmmen wann d'Datei op d'mannst 1 MB grouss ass, erstellt dann eng fuschneie Logdatei mat Permissiounen gesat bis 0664 a Besëtzer gëtt dem Benotzerroot a Grupp utmp. Als nächst behalen nëmmen een archivéierte Log, wéi spezifizéiert vun der Rotatiounsdirektiv:

Loosst eis elo en anert Beispill betruechten wéi am /etc/logrotate.d/httpd fonnt:

Dir kënnt méi iwwer d'Astellunge fir logrotate a senge Mann Säiten liesen (man logrotate.conf). Béid Dateie ginn zesumme mat dësem Artikel am PDF Format zur Verfügung gestallt fir Är Lieskomfort.

Als Systemingenieur ass et zimlech un Iech fir ze entscheeden wéi laang d'Logbicher gespäichert ginn an a wéi engem Format, ofhängeg ob Dir /var an enger separater Partition/logescher Volumen hutt. Soss wëllt Dir wierklech iwwerleeën al Logbicher ze läschen fir Späicherplatz ze spueren. Op der anerer Säit kënnt Dir gezwongen sinn e puer Logbicher fir zukünfteg Sécherheetsaudit ze halen no der interner Politik vun Ärer Firma oder Client.

Natierlech kann d'Logbicher ënnersichen (och mat Hëllef vun Tools wéi grep a reguläre Ausdréck) eng zimlech tedious Aufgab ginn. Aus deem Grond erlaabt rsyslog eis se an eng Datebank ze exportéieren (OTB ënnerstëtzt RDBMS enthalen MySQL, MariaDB, PostgreSQL, an Oracle.

Dës Sektioun vum Tutorial gëtt ugeholl datt Dir de MariaDB Server a Client schonn an der selwechter RHEL 7 Këscht installéiert hutt wou d'Logbicher geréiert ginn:

# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql
# systemctl enable mariadb && systemctl start mariadb

Benotzt dann den mysql_secure_installation Utility fir d'Passwuert fir de Root Benotzer an aner Sécherheetsbedenken ze setzen:

Notiz: Wann Dir de MariaDB Root Benotzer net benotze wëllt fir Log Messagen an d'Datebank anzeginn, kënnt Dir en anere Benotzerkont konfiguréieren fir dat ze maachen. Erkläre wéi dat ze maachen ass aus dem Ëmfang vun dësem Tutorial awer gëtt am Detail an der MariaDB Wëssensbasis erkläert. An dësem Tutorial benotze mir de Root Account fir Einfachheet.

Als nächst luet de createDB.sql Skript vum GitHub erof an importéiert se an Ärem Datebankserver:

# mysql -u root -p < createDB.sql

Füügt endlech déi folgend Zeilen op /etc/rsyslog.conf derbäi:

$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:localhost,Syslog,root,YourPasswordHere

Restart rsyslog an den Datebankserver:

# systemctl restart rsyslog 
# systemctl restart mariadb

Féiert elo e puer Aufgaben aus, déi d'Logbicher änneren (wéi d'Stoppen an d'Start vun Servicer, zum Beispill), da loggt Iech op Ären DB Server a benotzt Standard SQL Kommandoen fir an de Logbicher ze weisen an ze sichen:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Resumé

An dësem Artikel hu mir erkläert wéi Dir Systemprotokoller opstellt, wéi Dir d'Logbicher rotéiert, a wéi Dir d'Messagen op eng Datebank virugeleet fir méi einfach ze sichen. Mir hoffen datt dës Fäegkeeten hëllefräich sinn wéi Dir Iech op den RHCE Examen virbereet an och an Ären alldeegleche Verantwortung.

Wéi ëmmer ass Äre Feedback méi wéi wëllkomm. Benotzt de Formulaire hei ënnen fir eis z'erreechen.