Skip to main content

Syslogd Linux en Unix Command

LINUX Logger command (Juni- 2026)

LINUX Logger command (Juni- 2026)
Anonim

Sysklogd biedt twee systeemhulpprogramma's die ondersteuning bieden voor systeemregistratie en het onderscheppen van kernelberichten. Ondersteuning van zowel internet- als unix-domeincontactdozen stelt dit hulpprogramma in staat om zowel lokaal als extern loggen te ondersteunen.

Systeemregistratie wordt verzorgd door een versie vansyslogd(8) afgeleid van de standaard BSD-bronnen. Ondersteuning voor kernelregistratie wordt geboden door deklogd(8) hulpprogramma waarmee kernel logging kan worden uitgevoerd op een zelfstandige manier of als een client van syslogd.

Syslogd biedt een soort logboek dat veel moderne programma's gebruiken. Elk gelogd bericht bevat ten minste een tijd- en een hostnaamveld, gewoonlijk ook een programmanaamveld, maar dat is afhankelijk van hoe betrouwbaar het logboekprogramma is.

Terwijl desyslogd bronnen zijn zwaar aangepast, een paar aantekeningen zijn in orde. Allereerst is er een systematische poging geweest om ervoor te zorgen dat syslogd het standaard standaard BSD-gedrag volgt. Het tweede belangrijke concept om op te merken is dat deze versie van syslogd op transparante wijze interactie aangaat met de versie van syslog die te vinden is in de standaardbibliotheken. Als een binair bestand dat is gekoppeld aan de standaard gedeelde bibliotheken niet correct functioneert, willen we graag een voorbeeld van het afwijkende gedrag.

Het hoofdconfiguratiebestand /etc/syslog.conf of een alternatief bestand, gegeven met de-f optie, wordt bij het opstarten gelezen. Regels die beginnen met het hekje (`` # '') en lege regels worden genegeerd. Als er een fout optreedt tijdens het parseren, wordt de hele regel genegeerd.

Korte inhoud

syslogd -een stopcontact -d -f configuratiebestand -h l Vakantiewoningen en -m interval -n -p stopcontact -r -s domainlist -v -X

opties

-een stopcontact

Gebruikend dit argument kunt u extra contactdozen van dat bepalensyslogd moet luisteren. Dit is nodig als je sommige daemon in een chroot () -omgeving laat draaien. U kunt maximaal 19 extra aansluitingen gebruiken. Als uw omgeving nog meer nodig heeft, moet u het symbool verhogenMAXFUNIX in het bronbestand syslogd.c. Een voorbeeld van een chroot () daemon wordt beschreven door de mensen van OpenBSD op http://www.psionic.com/papers/dns.html.

-d

Schakelt de debug-modus in. Met dit zal de daemon niet doorgaan avork(2) om zichzelf op de achtergrond in te stellen, maar tegengesteld aan dat op de voorgrond blijven en veel debug-informatie over de huidige tty schrijven. Zie het DEBUGGING-gedeelte voor meer informatie.

-f configuratiebestand

Geef een alternatief configuratiebestand op in plaats van /etc/syslog.conf , wat de standaard is.

-h

Standaard stuurt syslogd geen berichten door die het ontvangt van externe hosts. Door deze schakeloptie op de opdrachtregel op te geven, zal de logdaemon alle externe berichten doorsturen die hij ontvangt naar doorgestuurde hosts die zijn gedefinieerd.

l Vakantiewoningen en

Geef een hostnaam op die alleen moet worden geregistreerd met de eenvoudige hostnaam en niet met de fqdn. Meerdere hosts kunnen worden opgegeven met behulp van het dubbele punt (``: '') scheidingsteken.

-m interval

Desyslogd logt regelmatig een tijdstempel in. De standaard interval tussen twee - MARK - lijnen is 20 minuten. Dit kan met deze optie worden gewijzigd. Het instellen van interval tot nul schakelt het helemaal uit.

-n

Vermijd auto-achtergronding. Dit is vooral nodig als hetsyslogd wordt gestart en beheerd doorin het(8).

-p stopcontact

U kunt een alternatieve unix-domeinaansluiting opgeven in plaats van / Dev / log .

-r

Met deze optie kan de faciliteit een bericht ontvangen van het netwerk met behulp van een internetdomein-socket met de syslog-service (zie (5)). De standaardinstelling is om geen berichten van het netwerk te ontvangen.

Deze optie is geïntroduceerd in versie 1.3 van het sysklogd-pakket. Houd er rekening mee dat het standaardgedrag het tegenovergestelde is van hoe oudere versies zich gedragen, dus misschien moet u dit aanzetten.

-s domainlist

Geef een domeinnaam op die moet worden verwijderd voordat u gaat loggen. Meerdere domeinen kunnen worden opgegeven met behulp van het dubbele punt (``: '') scheidingsteken. Houd er rekening mee dat er geen subdomeinen mogen worden opgegeven, maar alleen hele domeinen. Bijvoorbeeld als-s north.de wordt gespecificeerd en de host logging wordt omgezet naar satu.infodrom.north.de geen domein wordt gekapt, u ​​zult twee domeinen moeten specificeren zoals:-s north.de:infodrom.north.de.

-v

Print versie en exit.

-X

Schakel opzoeken van namen uit bij het ontvangen van berichten op afstand. Hiermee voorkomt u deadlocks wanneer de nameserver wordt uitgevoerd op dezelfde computer waarop de syslog-daemon wordt uitgevoerd.

signalen

syslogd reageert op een reeks signalen. U kunt eenvoudig een signaal sturen naarsyslogd gebruikmakend van het volgende:

kill -SIGNAAL `cat / var / run / syslogd.pid`

SIGHUP

Dit laatsyslogd voer een herinitialisatie uit. Alle geopende bestanden zijn gesloten, het configuratiebestand (standaard is /etc/syslog.conf ) zal opnieuw worden gelezen en desyslog(3) faciliteit wordt opnieuw gestart.

SIGTERM

Desyslogd zal sterven.

SIGINT, SIGQUIT

Als debugging is ingeschakeld, worden deze genegeerd, anderssyslogd zal sterven.

SIGUSR1

Schakel foutopsporing aan / uit. Deze optie kan alleen worden gebruikt alssyslogd is gestart met de-d debug optie.

SIGCHLD

Wacht op kinderen als er een paar zijn geboren, vanwege berichten aan de wand.

Syntaxisverschillen configuratiebestand

syslogd gebruikt een iets andere syntaxis voor zijn configuratiebestand dan de oorspronkelijke BSD-bronnen. Oorspronkelijk werden alle berichten van een specifieke prioriteit en hoger doorgestuurd naar het logbestand.

De volgende regel veroorzaakte bijvoorbeeld ALLE uitvoer van daemons die de daemonfaciliteiten gebruiken (foutopsporing is de laagste prioriteit, dus elke hogere komt ook overeen) om in te gaan / Usr / adm / daemons :

# Voorbeeld syslog.conf daemon.debug / usr / adm / daemons

Onder het nieuwe schema blijft dit gedrag hetzelfde. Het verschil is de toevoeging van vier nieuwe specifiers, de asterisk (*) wildcard, het vergelijkingsteken (=), het uitroepteken (!) en het minteken (-).

De* geeft aan dat alle berichten voor de opgegeven faciliteit naar de bestemming moeten worden geleid. Merk op dat dit gedrag degenereert met het specificeren van een prioriteitsniveau van foutopsporing. Gebruikers hebben aangegeven dat de asterisk-notatie intuïtiever is.

De= wildcard wordt gebruikt om het loggen te beperken tot de opgegeven prioriteitsklasse. Dit maakt het bijvoorbeeld mogelijk om alleen foutopsporingsmeldingen naar een bepaalde loggingbron te routeren.

Bijvoorbeeld de volgende regel in syslog.conf zou foutopsporingsberichten van alle bronnen naar de / Usr / adm / debug het dossier.

# Voorbeeld syslog.conf *. = Debug / usr / adm / debug

De! wordt gebruikt om logboekregistratie van de opgegeven prioriteiten uit te sluiten. Dit beïnvloedt alle (!) Mogelijkheden om prioriteiten te stellen.

De volgende regels loggen bijvoorbeeld alle berichten van de faciliteitsmail behalve die met de prioriteitsinformatie van de / Usr / adm / mail het dossier. En alle berichten van news.info (inclusief) naar news.crit (exclusief) zouden in het logboek worden vastgelegd / Usr / adm / news het dossier.

# Voorbeeld syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; nieuws.! Crit / usr / adm / nieuws

U kunt het intuïtief gebruiken als een uitzonderingsspecificatie. De bovengenoemde interpretatie is simpelweg omgekeerd. Doen dat je mag gebruiken

mail.none

of

mail.!*

of

mail.! debug

om elk bericht over te slaan dat wordt geleverd met een e-mailvoorziening. Er is veel ruimte om ermee te spelen. :-)

De- mag alleen worden gebruikt om een ​​bestandsnaam als voorvoegsel op te geven als u het synchroniseren van het bestand wilt weglaten na elke schrijfactie.

Dit kan enige acclimatisatie vereisen voor die personen die worden gebruikt voor het zuivere BSD-gedrag, maar testers hebben aangegeven dat deze syntaxis enigszins flexibeler is dan het BSD-gedrag. Merk op dat deze veranderingen geen invloed op de standaard moeten hebbensyslog.conf(5) bestanden. U moet de configuratiebestanden specifiek aanpassen om het verbeterde gedrag te verkrijgen.

Ondersteuning voor Remote Logging

Deze aanpassingen bieden netwerkondersteuning voor de syslogd-faciliteit. Netwerkondersteuning houdt in dat berichten kunnen worden doorgestuurd vanaf één knooppunt waarop syslogd wordt uitgevoerd naar een ander knooppunt waarop syslogd wordt uitgevoerd, waar ze daadwerkelijk worden vastgelegd in een schijfbestand.

Om dit in te schakelen, moet u de-r optie op de opdrachtregel. Het standaardgedrag is datsyslogd luistert niet naar het netwerk.

De strategie is om syslogd te laten luisteren naar een unix-domeinsocket voor lokaal gegenereerde logberichten. Door dit gedrag kan syslogd samenwerken met de syslog die wordt gevonden in de standaard C-bibliotheek. Tegelijkertijd luistert syslogd naar de standaard syslog-poort voor berichten die worden doorgestuurd van andere hosts. Om dit correct te laten werken, deDiensten(5) bestanden (meestal te vinden in /enz ) moet de volgende vermelding hebben:

syslog 514 / udp

Als dit item ontbreektsyslogd geen van beide kan externe berichten ontvangen of verzenden, omdat de UDP-poort niet kan worden geopend. In plaats daarvan, syslogd zal onmiddellijk sterven en een foutmelding uitblazen.

Als u ervoor wilt zorgen dat berichten worden doorgestuurd naar een andere host, vervangt u de normale bestandsregel in de syslog.conf bestand met de naam van de host waarnaar de berichten moeten worden verzonden, voorafgegaan door een @.

Bijvoorbeeld om door te sturenALLEMAAL berichten naar een externe host met behulp van het volgende syslog.conf entry:

# Voorbeeld syslogd configuratiebestand naar # berichten naar een externe host doorsturen alles. *. * @hostnaam

Alles doorsturenpit berichten naar een externe host zou het configuratiebestand als volgt zijn:

# Voorbeeldconfiguratiebestand om alle kernel # -berichten door te sturen naar een externe host. kern. * @hostnaam

Als de externe hostnaam niet kan worden omgezet bij het opstarten, omdat de naamserver mogelijk niet toegankelijk is (deze kan na syslogd worden gestart), hoeft u zich geen zorgen te maken.syslogd zal proberen om de naam tien keer op te lossen en vervolgens een klacht in te dienen. Een andere mogelijkheid om dit te voorkomen is door de hostnaam in te plaatsen / Etc / hosts .

Met normaalsyslogds zou je syslog-loops krijgen als je berichten verstuurt die werden ontvangen van een externe host naar dezelfde host (of gecompliceerder naar een derde host die het terugstuurt naar de eerste host, enzovoort). In mijn domein (Infodrom Oldenburg) hebben we per ongeluk een en onze schijven opgevuld met dezelfde enkele boodschap. :-(

Om dit in latere tijden te voorkomen, worden berichten die werden ontvangen van een externe host niet meer naar een andere (of dezelfde) externe host verzonden. Als er scenario's zijn waar dit niet logisch is, stuur me dan alsjeblieft een berichtje (Joey).

Als de externe host zich in hetzelfde domein als de host bevindt,syslogd wordt uitgevoerd, wordt alleen de eenvoudige hostnaam geregistreerd in plaats van de hele fqdn.

In een lokaal netwerk kunt u een centrale logboekserver instellen om alle belangrijke informatie op één machine bij te houden. Als het netwerk uit verschillende domeinen bestaat, hoeft u niet te klagen over het registreren van volledig gekwalificeerde namen in plaats van eenvoudige hostnamen. Wellicht wilt u de stripdomeinfunctie gebruiken-s van deze server. Je kunt het vertellensyslogd om verschillende domeinen af ​​te stropen anders dan die waarin de server zich bevindt en alleen eenvoudige hostnamen te loggen.

De … gebruikenl optie is er ook een mogelijkheid om enkele hosts te definiëren als lokale machines. Dit resulteert ook in het loggen van alleen hun eenvoudige hostnamen en niet de fqdns.

De UDP-socket die wordt gebruikt om berichten door te sturen naar externe hosts of om berichten van deze hosts te ontvangen, wordt alleen geopend wanneer dat nodig is. In releases vóór 1.3-23 werd het elke keer geopend, maar niet geopend voor respectievelijk lezen of doorsturen.

Uitvoer naar Named Pipes (FIFO's)

Deze versie van syslogd ondersteunt de registratie van uitvoer naar named pipes (fifos). Een fifo of named pipe kan worden gebruikt als bestemming voor logberichten door een pipy-symbool (`` | '') voor te leggen aan de naam van het bestand. Dit is handig voor foutopsporing. Merk op dat de fifo moet worden gemaakt met de opdracht mkfifo voordat syslogd wordt gestart.

Het volgende configuratiebestand stuurt foutopsporingsberichten van de kernel naar een fifo:

# Voorbeeldconfiguratie om ALLEEN kernel-foutopsporing # berichten naar / usr / adm / debug, die een # named pipe is, te routen. kern. = debug | / usr / adm / debug

Installatieproblemen

Er is waarschijnlijk een belangrijke overweging bij het installeren van deze versie van syslogd. Deze versie van syslogd is afhankelijk van de juiste indeling van berichten door de syslog-functie. Het functioneren van de syslog-functie in de gedeelde bibliotheken veranderde ergens in de regio van libc.so.4. 2-4 .n. De specifieke wijziging was het bericht null-beëindigen voordat het werd verzonden naar de / Dev / log socket. De juiste werking van deze versie van syslogd is afhankelijk van de nulbeëindiging van het bericht.

Dit probleem manifesteert zich meestal als oude statisch gekoppelde binaire bestanden op het systeem worden gebruikt. Binaire bestanden die oude versies van de syslog-functie gebruiken, zorgen ervoor dat er lege regels worden vastgelegd, gevolgd door het bericht waarvan het eerste teken in het bericht is verwijderd. Als u deze binaries opnieuw koppelt aan nieuwere versies van de gedeelde bibliotheken, wordt dit probleem verholpen.

Beidesyslogd(8) en deklogd(8) kan worden uitgevoerd vanaf init (8) of worden gestart als onderdeel van de rc. * -Reeks. Als het wordt gestart vanuit de optie init -n moet zijn ingesteld, anders worden er tonnen syslog-daemons gestart. Dit is zo omdatin het(8) hangt af van de proces-ID.

Beveiligingsbedreigingen

Het is mogelijk dat de syslogd-daemon wordt gebruikt als kanaal voor een denial-of-service-aanval. Bedankt aan John Morrison ([email protected]) voor het melden van dit potentieel. Een rogue-programma (mer) kan de syslogd-daemon heel gemakkelijk overspoelen met syslog-berichten, waardoor de logbestanden alle resterende ruimte op het bestandssysteem verbruiken. Het activeren van logboekregistratie via de inet domein-sockets stelt natuurlijk een systeem bloot aan risico's buiten programma's of individuen op de lokale computer.

Er zijn een aantal methoden om een ​​machine te beveiligen:

  1. Implementeer kernel-firewalling om te beperken welke hosts of netwerken toegang hebben tot de 514 / UDP-socket.
  2. Logging kan worden gestuurd naar een geïsoleerd of niet-root bestandssysteem dat, indien gevuld, de machine niet nadelig beïnvloedt.
  3. Het ext2-bestandssysteem kan worden gebruikt, dat kan worden geconfigureerd om een ​​bepaald percentage van een bestandssysteem te beperken tot gebruik door alleen root.NOTITIE dat dit vereist dat syslogd wordt uitgevoerd als een niet-rootproces. OOK OPMERKING dat dit het gebruik van logboekregistratie op afstand zal voorkomen, omdat syslogd niet in staat is om te binden aan de 514 / UDP-socket.
  4. Als u inet-domeincontactdozen uitschakelt, wordt het risico voor de lokale computer beperkt.
  5. Gebruik stap 4 en als het probleem aanhoudt en niet ondergeschikt is aan een bedrieglijk programma / een daemon, haal dan een lengte van ongeveer 1 meter sucker rod * en chat met de gebruiker in kwestie. Sucker hengel def. --- 3/4, 7/8 of 1in. gehard stalen staaf, mannelijk schroefdraad aan elk uiteinde. Primair gebruik in de olie-industrie in West-Noord-Dakota en andere locaties om 'zuigen' olie uit oliebronnen te pompen. Secundaire toepassingen zijn voor de bouw van veevoederpartijen en voor het omgaan met af en toe weerbarstige of oorlogvoerende individuen.

debugging

Wanneer foutopsporing is ingeschakeld met-d optie dansyslogd zal zeer uitgebreid zijn door veel te schrijven over wat het doet op stdout. Wanneer het configuratiebestand opnieuw wordt gelezen en opnieuw wordt geparseerd, ziet u een tabel met de interne gegevensstructuur. Dit tabel bestaat uit vier velden:

aantal

Dit veld bevat een serienummer dat begint met nul. Dit getal vertegenwoordigt de positie in de interne gegevensstructuur (dat wil zeggen de reeks). Als een nummer wordt weggelaten, is er mogelijk een fout in de betreffende regel /etc/syslog.conf .

patroon

Dit veld is lastig en geeft precies de interne structuur weer. Elke kolom staat voor een faciliteit (ziesyslog(3)). Zoals je kunt zien, zijn er nog steeds een aantal faciliteiten vrijgelaten voor vroeger gebruik, alleen de meest linkse worden gebruikt. Elk veld in een kolom vertegenwoordigt de prioriteiten (ziesyslog(3)).

actie

Dit veld beschrijft de specifieke actie die plaatsvindt wanneer een bericht wordt ontvangen dat overeenkomt met het patroon. Verwijs naar desyslog.conf(5) manpage voor alle mogelijke acties.

argumenten

Dit veld toont extra argumenten voor de acties in het laatste veld. Voor bestandsregistratie is dit de bestandsnaam voor het logbestand; voor gebruikersregistratie is dit een lijst met gebruikers; voor remote logging is dit de hostnaam van de machine om in te loggen; voor console-logging is dit de gebruikte console; voor tty-logging is dit de gespecificeerde tty; wall heeft geen extra argumenten.

Zie ook

houthakker(1), syslog(2), (5)

medewerkers

syslogd is afkomstig van BSD bronnen, Greg Wettstein ([email protected]) voerde de poort naar Linux uit, Martin Schulze ([email protected]) repareerde een aantal fouten en voegde een aantal nieuwe functies toe.klogdwerd oorspronkelijk geschreven door Steve Lord ([email protected]), Greg Wettstein maakte belangrijke verbeteringen.

Dr. Greg WettsteinEnjellic Systems Development

Oncology Research Division Computing FacilityRoger Maris Cancer CenterFargo, ND[email protected]

Stephen TweedieAfdeling ComputerwetenschappenUniversiteit van Edinburgh, Schotland[email protected]

Juha Virtanen[email protected]

Shane Alderton[email protected]

Martin SchulzeInfodrom Oldenburg[email protected]

Belangrijk: Gebruik de man commando ( % man ) om te zien hoe een opdracht wordt gebruikt op uw specifieke computer.

gerelateerde artikelen

  • sysklogd - Linux Command - Unix Command
  • rwall - Wat is rwa