Fehlerbehebung ist einer der Hauptgründe, warum Benutzer Protokolle erstellen. Wenn ein Problem auftritt, möchten Sie es diagnostizieren, um zu verstehen, warum es passiert ist und was die Ursache war. Eine Fehlermeldung oder eine Folge von Ereignissen kann Ihnen Hinweise auf die Ursache geben, angeben, wie das Problem reproduziert werden soll, und Sie zu Lösungen führen. In diesem Abschnitt werden Szenarien vorgestellt, in denen Sie Linux-Protokolle zur Fehlerbehebung verwenden können.,
Fehlschlagen
Anmeldefehler
Aus Sicherheitsgründen möchten Sie möglicherweise wissen, welche Benutzer sich angemeldet haben oder versucht haben, sich bei Ihrem System anzumelden. Sie können Ihre Authentifizierungsprotokolle auf fehlgeschlagene Versuche überprüfen, die auftreten, wenn Benutzer falsche Anmeldeinformationen angeben oder keine Berechtigung zum Anmelden haben. Dies tritt häufig auf, wenn Sie SSH für den Remotezugriff verwenden oder wenn Sie den Befehl su verwenden, um einen Befehl als einen anderen Benutzer auszuführen. Diese Arten von Authentifizierungsereignissen werden vom Pluggable Authentication Module (PAM) protokolliert., Fehlgeschlagene Ereignisse enthalten häufig Zeichenfolgen wie „Fehlgeschlagenes Kennwort“ und „Benutzer unbekannt“, während erfolgreiche Authentifizierungsereignisse häufig Zeichenfolgen wie „Akzeptiertes Kennwort“ und „Sitzung geöffnet“ enthalten.“
Beispiele für Fehlerereignisse sind:
Beispiele für erfolgreiche Anmeldungen sind:
Wenn wir herausfinden möchten, welche Benutzerkonten die meisten fehlgeschlagenen Anmeldungen haben, müssen wir zuerst den Benutzernamen aus dem Authentifizierungsprotokoll extrahieren. Dazu verwenden wir die Befehle grep, cut, sort und uniq., Grep gibt Zeilen mit „ungültiger Benutzer“ zurück, schneidet die Benutzernamen aus, sortiert die Liste der Namen und uniq zählt die Anzahl der eindeutigen Namen:
Andere Anwendungen und Dienste verwenden möglicherweise unterschiedliche Formate, sodass Sie diesen Befehl für jede Anwendung anpassen müssen. Protokollverwaltungssysteme können dies effektiv für Sie tun, indem Felder wie Benutzername automatisch analysiert werden. Auf diese Weise können Sie fehlgeschlagene Anmeldungen mit einem einzigen Klick schnell anzeigen und filtern. In diesem Beispiel wird der Root-Benutzer mehr als 300 Mal versucht, sich anzumelden.,
Benutzernamen, die mit fehlgeschlagenen Anmeldeversuchen verknüpft sind, werden im dynamischen Feldexplorer von Loggly angezeigt.
Mit Protokollverwaltungssystemen können Sie auch Diagramme im Laufe der Zeit anzeigen, um ungewöhnliche Trends zu erkennen. Wenn jemand innerhalb weniger Minuten ein oder zwei fehlgeschlagene Anmeldungen hatte, könnte es sein, dass ein echter Benutzer sein Passwort vergessen hat. Wenn jedoch Hunderte fehlgeschlagener Anmeldungen vorliegen oder es sich alle um unterschiedliche Benutzernamen handelt, ist es wahrscheinlicher, dass jemand versucht, das System anzugreifen. Hier sehen Sie einen plötzlichen Anstieg der versuchten Anmeldungen als Administrator., Dies ist eindeutig keine legitime Nutzung des Systems.
Anstieg der versucht root-Anmeldungen. © 2019 SolarWinds, Inc. Alle Rechte vorbehalten.
Ursache
Ursache für Neustarts
Manchmal kann ein Server aufgrund eines Systemabsturzes oder Neustarts anhalten. Woher weißt du, wann es passiert ist und wer es getan hat?
Befehl Herunterfahren
Wenn jemand den Befehl Herunterfahren manuell ausgeführt hat, können Sie ihn in der Auth-Protokolldatei sehen. Hier können Sie sehen, dass sich jemand remote als Benutzer angemeldet hat ubuntu und dann das System herunterfahren.,
Kernel initialisieren
Wenn Sie sehen möchten, wann der Server unabhängig vom Grund neu gestartet wurde (einschließlich Abstürze), können Sie die Kernel-Protokolldatei durchsuchen (/var/log/kern.log
). Syslog wendet auch die „kern“ – Funktion auf Kernelprotokolle an. Die folgenden Protokolle wurden unmittelbar nach dem Booten generiert. Beachten Sie, dass der Zeitstempel zwischen den Klammern 0 ist: Dies verfolgt die Zeit seit dem Start des Kernels. Sie können Bootprotokolle auch finden, indem Sie nach „BOOT_IMAGE“suchen.,
detect
Speicherprobleme erkennen
Es gibt mehrere Gründe, warum ein Server abstürzen könnte, aber eine häufige Ursache ist Speichermangel.
Wenn RAM und Swap-Speicherplatz vollständig erschöpft sind, beginnt der Kernel damit, Prozesse zu beenden—normalerweise diejenigen, die den meisten Speicher und den kurzlebigsten verwenden. Der Fehler tritt auf, wenn Ihr System den gesamten Speicher verwendet und ein neuer oder vorhandener Prozess versucht, auf zusätzlichen Speicher zuzugreifen. Suchen Sie in Ihren Protokolldateien nach Strings wie „Out of Memory“ oder nach Kernel-Warnungen., Diese Zeichenfolgen zeigen an, dass Ihr System den Prozess oder die Anwendung absichtlich beendet hat, anstatt den Prozess zum Absturz zu bringen.
Beispiele:
Denken Sie daran, dass grep selbst Speicher verwendet, sodass Sie möglicherweise einen Fehler außerhalb des Speichers verursachen, indem Sie grep ausführen. Dies ist ein weiterer Grund, warum es eine fabelhafte Idee ist, Ihre Protokolle zu zentralisieren!
cron
Cron-Jobfehler protokollieren
Der Cron-Daemon ist ein Scheduler, der Befehle zu bestimmten Daten und Zeiten ausführt. Wenn der Prozess nicht ausgeführt oder nicht abgeschlossen werden kann, wird in Ihren Protokolldateien ein CRON-Fehler angezeigt., Sie finden diese Dateien je nach Verteilung in /var/log/cron
, /var/log/messages
und /var/log/syslog
. Es gibt viele Gründe, warum ein Cron-Job fehlschlagen kann. Normalerweise liegen die Probleme eher beim Prozess als beim Cron-Daemon selbst.
Standardmäßig werden CRON-Jobs in syslog ausgegeben und in der Datei /var/log/syslog
angezeigt. Sie können die Ausgabe Ihrer CRON-Befehle auch an ein anderes Ziel umleiten, z. B. Standardausgabe oder eine andere Datei. In diesem Beispiel leiten wir „Hello world“ an den Logger-Befehl weiter., Dadurch werden zwei Protokollereignisse erstellt: eines aus cron und eines aus dem Logger-Befehl. Der Parameter-t setzt den App-Namen auf „helloCron“::
$ crontab -e*/5 * * * * echo 'Hello World' 2>&1 | /usr/bin/logger -t helloCron
Wodurch die Protokolleinträge erstellt werden:
Jeder Cron-Job wird basierend auf dem spezifischen Jobtyp und der Ausgabe von Daten unterschiedlich protokolliert. Hoffentlich gibt es Hinweise auf die Ursache von Problemen in den Protokollen, oder Sie können bei Bedarf zusätzliche Protokollierung hinzufügen. In den meisten Fällen sollten Sie cron einfach die Ausgabe Ihrer Befehle protokollieren lassen.
Sieh es dir an. Analysiere es. Inspiziere es. Lösen Sie es
Sehen Sie, was zählt.
KOSTENLOSE TESTVERSION STARTEN