Händelseloggning med Syslogd och Klogd på Linux

Administrationsuppgif.webpterna i Linux är komplexa i många situationer på grund av mängden processer, tjänster och roller som körs varannan sekund och till detta måste vi lägga till inloggningar, installation av applikationer och inte glömma alla händelser som varje applikation registrerar i distributionskontrollen . Lyckligtvis för administratörer och kontroll- eller revisionspersonal har vi olika kommandon utvecklade för att underlätta hantering och kontroll av systemhändelser och därför kommer Solvetic att fokusera på två av de viktigaste kommandona för detta ändamål. Syslog och Klogd.

Loggen är som en logg, där händelser, fel, ändringar och processer som genereras av applikationer eller operativsystem registreras för att senare kunna läsa denna post och avgöra vilka händelser som inträffat, särskilt vid fel eller sårbarheter. Loggfilerna på ett linux -system finns i / var / log -katalogen. Linux -loggsystemet hanteras av två daemoner:

SYSLOGDGenererar systemloggarna. Syslogd körs automatiskt när du startar ett Linux -system, och det är ansvarigt för att lagra rapporter om datorns drift. Den tar emot meddelanden från de olika delarna av systemet, kärnan och applikationer, lagrar dem på olika platser, både lokala och fjärranslutna, efter ett kriterium som definieras i /etc/syslog.conf konfigurationsfilen.

KLOGDGenerera kärnloggarna. klogd dirigerar kärnloggmeddelanden till systemloggen. Användaren kan styra hanteringen av kärnmeddelanden genom att redigera syslogd -konfigurationsfilen. Dessa klogd -applikationer är särskilt användbara för kärnutvecklare.

1. Vad är och hur man använder Syslogd i Linux -loggar


Låt oss se vad det är och hur du använder Syslogd

Vad är SyslogdSyslogd (Linux system logging utilities), är ett kommando som ger oss en typ av logg som används av många moderna program, tack vare Syslogd, innehåller varje loggat meddelande minst en gång och ett fält med värdnamn, vilket gör övervakningsuppgif.webpter mycket enklare och lättare att analysera.

Syslogd -kommandot har ett standard BSD -beteende och de nya versionerna av Syslogd interagerar transparent med den version av syslog som finns i standardbiblioteken, så om en binär länkad till standarddelade bibliotek inte fungerar korrekt, kommer Syslogd att visa beteendet för detta binär.

Steg 1
Huvudkonfigurationsfilen är /etc/syslog.conf, och loggen anges vanligtvis med regelposter. Väljaren (facility.priority) och åtgärden anges i varje rad. Något att tänka på är att moderna Linux-distributioner, Syslogd-kommandot har ersatts av nya Syslog-implementeringar som rsyslog eller syslog-ng, så om vi vill använda Syslogd kan vi installera det med följande kommando:

 apt installera inetutils-syslogd 

FÖRSTORA

Steg 2
Där måste vi ange bokstaven S för att bekräfta nedladdning och installation av Syslogd. Efter installationen kan vi gå till dess konfigurationsfil som finns i följande sökväg /etc/syslog.conf:

 nano /etc/syslog.conf 

FÖRSTORA

Steg 3
Där hittar vi alla rutter som Syslogd kommer att använda för att fånga informationen. Syntaxen för allmänna ändamål för Syslogd är följande:

 syslogd [-a socket] [-d] [-f konfigurationsfil] [-h] [-l värdlista] [-m intervall] [-n] [-p socket] [-r] [-s list domän] [-S] [-v] [-x] 
Steg 4
Bland de tillgängliga alternativen har vi:

Ange extra uttagDetta argument tillåter oss att specificera de ytterligare socklar som Syslogd ska lyssna på, det används om någon daemon körs i en chroot () -miljö. Det kommer att vara möjligt att använda upp till 19 extra uttag.

 -ett uttag 

Aktivera felsökningslägedetta argument aktiverar felsökningsläge som kommer att hålla Syslog i förgrunden och därmed skriva mycket felsökningsinformation till den aktuella tty.

 -d

KonfigurationsfilDetta argument anger en alternativ konfigurationsfil istället för standard /etc/syslog.conf -filen.

 -f konfigurationsfil 

Blockera fjärrmeddelande vidarebefordranDenna parameter hindrar Syslogd från att vidarebefordra meddelanden som den tar emot från fjärrvärdar.

 -h

Definiera nätverksnamnTack vare denna parameter kan ett värdnamn anges som endast måste registreras med sitt enkla värdnamn och inte med FQDN.

 -l värdlista (lista över värdar) 

Definiera tidsintervallGenom att använda denna parameter kan vi ange tidsintervallet som ska användas, som standard är värdet 20 minuter.

 -m intervall 

Undvik att köra SyslodgDenna parameter förhindrar att Syslogd körs i bakgrunden.

 -n

Ställ in domänuttagDet tillåter oss att ange ett alternativt Unix -domänuttag istället för / dev / log

 -p -uttag

Tillåt nätverksmeddelandenMed det här alternativet kan installationen ta emot meddelanden från nätverket med ett Internet -domänuttag med Syslog -tjänsten.

 -r

Definiera domännamnDenna parameter anger ett domännamn som måste tas bort innan du loggar in.

 -s domänlista 

Aktivera registreringAktivera omfattande loggning,

 -S

Aktivera aktuell versionVisa den aktuella versionen av Syslogd.

 -v 

FÖRSTORA

Steg 5
När vi kör något av de tillgängliga alternativen kan vi se alla uppgif.webpter som utförs internt:

FÖRSTORA

2. Signaler i Syslogd Linux -loggar

Steg 1
Syslogd kan reagera på en uppsättning signaler, ett alternativ för att skicka en signal till Syslogd är genom att köra:

 döda -SIGNAL 'cat /var/run/syslogd.pid' 
Steg 2
När denna signal körs kan olika komponenter som t.ex. Således är Syslogd en praktisk lösning för att analysera Linux -händelser.

SIGHUPMed det här alternativet kan Syslogd utföra en omstartsprocess där alla öppna filer stängs, konfigurationsfilen kommer att läsas igen och Syslog -installationen startar om.

SIGTERMTjänsten upphör att gälla.

SIGINT, SIGQUITOm felsökning är aktiverat ignoreras dessa, annars upphör Syslogd.

SIGUSR1Aktivera eller inaktivera felsökning.

SIGCHLDVänta på de nya meddelandena.

3. Konfigurera Linux syslogd -filen


Syslogd använder en något annorlunda syntax i sin konfigurationsfil än den traditionella original BSD -källfilen. Syslogd -konfigurationen görs via filen /etc/syslogd.conf. Genom denna fil anges det var de olika meddelandena ska dirigeras. Du kan lämna rader tomma eller kommentera hela rader med tecknet "#"

För att syslog ska acceptera fjärranslutningar måste vi lägga till parametern -r

 SYSLOGD_OPTIONS = " - r -m 0" 
Normalt upptar syslogd port 514 vi måste kontrollera att brandväggen inte blockerar den för att testa i vilken port den körs, från terminalen skriver vi följande kod
 grep syslog / etc / services 
I serviceloggarna på den här raden kan vi se att "mail, cron, info" -loggarna går till meddelandekatalogen
 * .info; mail.none; authpriv.none; cron.none / var / log / meddelanden 
Vi ska försöka skicka ett meddelande till alla loggar med följande kommando
 grep "Testmeddelande" / var / log / * 
I det här fallet kan vi se att flera loggar är med behörigheter nekade därför kan de inte skrivas.

Det skulle vara nödvändigt att avgöra om det är nödvändigt att ändra tillstånden eller inte enligt våra behov. Loggarna har flera prioritetsnivåer för meddelandena (från lägsta till högsta prioritet:

Fel, fel och varningsloggar

 felsökning, info, meddelande, varning, varning, fel, fel, kritik, varning, framväxt och panik 

MeddelandetyperOlika meddelanden skriver loggar

 auth, authpriv, cron, daemon, kern, lpr, mail, mark, nyheter, säkerhet, syslog, användare, uucp 
De viktigaste är
  • var / log / meddelanden: här hittar vi de loggar som kommer med prioritetsinformation (information), meddelande (avisering) eller varning (varning).
  • /var/log/kern.log: kärnloggarna, genererade av klogd, lagras här.
  • /var/log/auth.log: denna logg registrerar inloggningar i systemet, de gånger vi gör su, etc. Misslyckade försök registreras i rader med information av ogiltig nyckeltyp eller ogiltig inloggning.
  • / var / log / dmesg: informationen som genereras av kärnan under systemstart lagras i den här filen.

Dessa loggfiler samlar in information hela tiden så att de vid någon tidpunkt kan ta mycket plats, för att lösa detta problem kan vi komprimera det eller säkerhetskopiera om de verkligen är nödvändiga. Några förändringar att tänka på är:

Användning av jokerteckenDet används som jokertecken för alla ovanstående prioriteringar och tjänster, beroende på dess användning (oavsett om det är före eller efter avgränsningstecknet `. ').

 "*" (Asterisk) = 

Markera inte prioritetAnger att det inte finns någon definierad prioritet för tjänsten för den valda linjen.

 "": (Tomt, mellanslag, null) 

Välj olika tjänsterLåter dig ange flera tjänster med samma prioritetsnivå på samma rad.

 "," (äta) 

Styr olika meddelandenLåter dig rikta meddelanden från olika tjänster och prioriteringar till samma mottagare.

 ";" (semikolon) 

Välj meddelandeprioritetDet ger oss möjlighet att bara lagra meddelanden med exakt specificerad prioritet.

 "=" (Lika) 

4. Vad är och hur man använder Klogd i Linux -loggar

Vad är KlogdKlogd (Kernel Log Daemon), är en systemdemon som har utvecklats för att fånga upp och logga meddelanden från Linux -kärnan. Funktionen för Klogd -kommandot är inriktat på att fånga flera kärninstanser som källa, prioritering och upplösning av kärnadresser.

I Linux -miljöer har vi två huvudkällor för kärnregisterinformation, till exempel:

  • Filsystemet / proc
  • Syscall -gränssnittet (sys_syslog)
Kommandot Klogd har utformats för att välja den mest bekväma informationskällan för visning av informationen, för att uppnå detta, först och främst verifierar det närvaron av ett / proc -filsystem som är monterat, om det finns, / proc file / kmsg används som en källa för kärnlogginformation, om proc -filsystemet inte är monterat kommer Klogd att använda ett systemanrop för att få kärnmeddelanden. Om kärnmeddelandena omdirigeras genom syslogd -demonen kan Klogd -demonen, sedan dess version 1.1, prioritera kärnmeddelanden, denna prioritet ligger inom ett område där meddelandets prioritet från kärnan kodas som en enda numerisk siffra inom.

När ett meddelande tas emot från kärnan kommer Klogd -demonen att läsa den tilldelade prioritetsnivån och ge den prioritetsnivån baserat på syslog -meddelandet. När du använder Klogd är det också möjligt att ändra visningen av kärnmeddelanden i systemkonsolen, i en gemensam kärna är standardkonsolens loggnivå inställd på 7, så alla meddelanden med en lägre prioritetsnivå till 7 (högsta prioritet ) visas på konsolen. Meddelanden från prioritetsnivå 7 betraktas som "felsökning" -meddelanden och kommer därför inte att visas på konsolen för att inte överväldiga de andra kärnhändelserna med information.

Klogd har en funktion som kallas Kernel Address Resolution varvid, om kärnan upptäcker ett internt feltillstånd, ett generellt skyddsfelprotokoll automatiskt aktiveras. Detta är en del av GPF -hanteringsproceduren, där kärnan skriver ut en statusrapport som anger status för processorn när felet genereras, inom detta resultat kommer vi att se detaljer som innehållet i mikroprocessorregistren, innehållet i kärnstapeln och en övervakning av de funktioner som kördes före felet.

Processen att lösa de numeriska adresserna från skyddsfelresultaten kan göras manuellt eller genom ksymoops -programmet som ingår i kärnkällorna. Kommandot Klogd stöder problemet med att diagnostisera skyddsfel i nuvarande moduler som kan laddas av kärnor.

Steg 1
Liksom Syslogd har Klog ersatts i nuvarande distributioner med mer dynamiska kommandon, så för installationen kommer vi att utföra följande. Där anger vi bokstaven S för att bekräfta nedladdningen och installationen.

 apt installera busybox-syslogd 

FÖRSTORA

Steg 2
Klogd -syntaxen är följande:

 klogd [-cn] [-d] [-f fname] [-iI] [-n] [-o] [-p] [-s] [-k fname] [-v] [-x] [-2 ] 
Steg 3
Dessa alternativ är:

Definiera loggnivåDenna parameter definierar standardloggningsnivån för konsolmeddelanden till n.

 -c n 

Felsökningslägedet här alternativet möjliggör felsökningsläge.

 -d 

Logga meddelandenfilen loggar meddelanden till det angivna filnamnet istället för syslog -installationen.

 -F 

Identifiera demoner som körsidentifierar den aktuella klogd -demonen. Båda omkopplarna styr laddning / omladdning av symbolinformation.

 -i -Jag 

Stoppa klogd i bakgrundenFörhindra att Klogd körs i bakgrunden.

 -n 

Fullständig läsning på meddelandebuffertarMed det här alternativet kan Klogd läsa och spela in alla meddelanden som finns i kärnmeddelandebuffertarna.

 -eller 

Tvinga systemanropTvingar kommandot Klogd att använda systemsamtalets gränssnitt för att kärnmeddelandebuffertar.

 -s 

Se Klogd versionSkriv ut Klogd -versionen.

 -v 

FÖRSTORA

Steg 4
Om vi ​​vill läsa alla händelser efter inloggningen kommer vi att utföra följande:

 klogd -o -f ./krnl.msg 
Steg 5
Efter detta kommer det att vara möjligt att komma åt innehållet i filen:

FÖRSTORA

5. Klogd -signaler på Linux


Kommandot Klogd kan svara på åtta (8) signaler som är: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 och SIGCONT. Signalerna SIGINT, SIGKILL, SIGTERM och SIGHUP tillåter demonen att stänga av kärnloggskällorna och avsluta processen korrekt medan SIGTSTP- och SIGCONT -signalerna används för att starta och stoppa kärnloggen.

Steg 1
Om vi ​​till exempel vill avmontera filsystemet / proc måste vi utföra följande kommandon:

 # kill -TSTP pid # umount / proc # kill -CONT pid
Steg 2
Några filer att använda med Klogd är:

  • / proc / kmsg: är källfilen för klogd -kärnmeddelanden
  • /var/run/klogd.pid: är filen som innehåller process -id för klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map - Det här är standardplatserna för kärnsystemkartor.

Som vi kan se har vi dessa två användbara och viktiga kommandon för en korrekt och fullständig hantering av kärnhändelser i Linux.

wave wave wave wave wave