Wenn Sie Probleme mit der Leistung Ihres Servers haben, sollten Sie als Erstes Folgendes tun: Überprüfen Sie Ihre Linux-ProtokolleIm Systemprotokoll finden Sie einige hilfreiche Diagnosemeldungen von verschiedenen Komponenten des Betriebssystems wie dem Kernel oder verschiedenen Diensten, sodass Sie dort höchstwahrscheinlich die Fehlerursache finden.
Jede Meldung im Protokoll wird als Ergebnis bestimmter Ereignisse im Betriebssystem generiert: vom Benutzer, der Autorisierung bis hin zum Herunterfahren eines Dienstes oder einem Anwendungsfehler. Diese Ereignisse haben je nach ihrer Kritikalität unterschiedliche Prioritäten. Unter Linux gibt es folgende Ereignistypen:
emerg- Fehler, höchste Priorität;alert- dringende Warnung;crit- kritisches Ereignis;err- gewöhnlicher Fehler;warn- gewöhnliche Verwarnung;notice- Benachrichtigung;info- Informationsnachricht;debug- Debugging-Informationen;
Die wichtigsten Dienste zur Protokollerstellung in Linux sind derzeit rsyslog mit einem systemd-journal. Sie sind in den meisten modernen Distributionspaketen enthalten und arbeiten unabhängig.
rsyslog
Die Protokolle dieses Dienstes befinden sich in „/ var / log /”-Ordner in Form von normalen Textdateien. Protokollmeldungen werden je nach Ereignistyp in unterschiedlichen Dateien abgelegt. Zum Beispiel: „/var/log/auth.log” enthält Informationen zur Autorisierung der Benutzer im System und „/var/log/kern.log„“ enthält Kernel-Meldungen. Dateinamen können je nach Distributionspaket unterschiedlich sein. Werfen wir also einen Blick auf die Konfigurationsdatei, um zu verstehen, was wo ist./etc/rsyslog.d/50-default.conf".
Diese Regeln zeigen an, welche Datei welche Art von Protokollmeldungen enthält. Der linke Teil zeigt den Meldungstyp in der folgenden Form an:[Quelle].[Priorität]” und der rechte Teil zeigt den Namen der Protokolldatei an. Beim Schreiben der Art der Nachricht „*”-Zeichen hinzugefügt werden kann. Es bedeutet leeren Wert oder „keine”, wodurch es aus der Liste entfernt wird. Schauen wir uns die ersten beiden Regeln genauer an.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Die erste Regel bedeutet, dass alle vom Autorisierungsmechanismus empfangenen Nachrichten in „/var/log/auth.log”-Datei. Alle Autorisierungsversuche (sowohl erfolgreiche als auch erfolglose) werden in dieser Datei registriert. Die zweite Regel besagt, dass alle Nachrichten außer denen im Zusammenhang mit der Autorisierung in der Datei „/ var / log / syslog”-Datei. Diese beiden Dateien sind in der Regel die beliebtesten. Die folgenden Regeln definieren den Pfad zum Speichern der Kernel-Protokolle:kern.*„ und Mail-Dienst-Protokolle „mail.*"
Logdateien können mit jedem Texteditor geöffnet werden, wie zum Beispiel weniger, Katze, Schwanz. Öffnen wir das „/var/log/auth.log" Datei
less /var/log/auth.log
Jede Zeile der Datei stellt eine separate Nachricht dar, die von der Anwendung oder dem Dienst empfangen wurde. Alle Nachrichten haben unabhängig von ihrer Quelle ein einheitliches Format und bestehen aus fünf Teilen. Nehmen wir als Beispiel die hervorgehobene Nachricht im Screenshot.
- Zeitstempel der Nachricht: „12. Feb. 06:18:33“
- Name des Computers, der die Nachricht gesendet hat – „vds“
- Name der Anwendung oder des Dienstes, der die Nachricht gesendet hat – „sshd“
- Prozess-ID - [653]
- Nachrichtentext – „Passwort für Mihail von 188.19.42.165 Port 2849 SSH2 akzeptiert“
Dies war ein Beispiel für eine erfolgreiche Verbindung zu SSH.
Und so sieht ein erfolgloser Anmeldeversuch aus:
Diese Datei zeichnet auch Befehle mit erweiterten Berechtigungen auf
Lassen Sie uns die öffnen / var / log / syslog Datei
Eine hervorgehobene Meldung auf dem Screenshot ist die Meldung zum Herunterfahren der Netzwerkschnittstelle.
Verwenden Sie zum Suchen nach Informationen in langen Textdateien grep Dienstprogramm. Sie finden alle Nachrichten, die Sie von pptpd Dienst im „/ var / log / syslog" Datei.
grep 'pptpd' /var/log/syslog
Während der Diagnose können Sie Schwanz Dienstprogramm, das mehrere letzte Zeilen von Dateien anzeigen kann. Befehl „tail -f / var / log / syslogMit „“ können Sie Protokollaufzeichnungen in Echtzeit ansehen.
Der Service rsyslog ist sehr flexibel und leistungsstark. Es kann sowohl für die Protokollerfassung in lokalen Systemen als auch auf Unternehmensebene eingesetzt werden. Die vollständige Dokumentation finden Sie auf der offiziellen Website https://www.rsyslog.com/
Protokollrotation unter Linux
Die Protokollaufzeichnung erfolgt kontinuierlich, sodass die Dateigröße stetig zunimmt. Der Rotationsmechanismus sorgt für die automatische Archivierung alter Protokolle und die Erstellung neuer Dateien. Je nach Regel kann dies täglich, wöchentlich, monatlich oder nach Größenbeschränkung erfolgen. Wenn neue Protokolle erstellt werden, können alte gelöscht oder per E-Mail versendet werden. Die Protokollrotation erfolgt durch Logrotat Dienstprogramm. Die Hauptkonfiguration finden Sie unter „/etc/logrotate.conf”-Datei. Der Dateiinhalt wird auch in „/etc/logrotate.d/" Mappe
Neue Regeln können in die Hauptkonfigurationsdatei eingetragen werden. Es empfiehlt sich jedoch, eine separate Datei in „/etc/logrotate.d/”. Standardmäßig befinden sich in diesem Verzeichnis einige Dateien
Schauen wir uns die Datei an „/etc/logrotate.d/rsyslog", das Rotationsregeln für Protokolle des rsyslog ist es machbar.
Die Regel sollte zunächst den Pfad zur Protokolldatei enthalten und anschließend alle Angaben in geschweiften Klammern.
- drehen 7 - Anzahl der aufzubewahrenden Dateien - 7
- Unterricht - jeden Tag eine neue Datei erstellen
- komprimieren - alte Dateien komprimieren und archivieren
Auf dem Screenshot sehen Sie, dass im „/ var / log /„Ordner gibt es das Hauptprotokoll“syslog“ und 7 Archive, was den Regeln in der Konfigurationsdatei entspricht.
Eine ausführlichere Beschreibung von logrotate finden Sie im Handbuch. Führen Sie dazu den Befehl „man logrotate”-Befehl
Sammeln von Linux-Protokollen – journald
Rundholzernteservice systemd-journal ist Teil des Initialisierungssystems systemd. Linux-Protokolldateien werden in „/var/log/journal/” in einem speziellen Format und kann mit Hilfe von geöffnet werden journalctl Dienstprogramm. Das Datensatzformat ist genau das gleiche wie in rsyslog.
Befehl journalctl Ohne Attribute werden alle Datensätze angezeigt, es ist aber nicht für größere Protokolle geeignet. Sehen wir uns einige Optionen dieses Dienstprogramms an.
journalctl -b- alle Datensätze seit dem letzten Start anzeigenjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- Aufzeichnung innerhalb eines bestimmten Zeitraums anzeigenjournalctl -u pptpd- Aufzeichnungen eines bestimmten Dienstes anzeigenjournalctl -k- Kernel-Meldungen anzeigenjournalctl -p err- Nachrichten einer bestimmten Priorität anzeigen, in diesem Fall Nachrichten mit höherer Priorität (Krit, Alarm, Notfall)journalctl -f- Nachrichten in Echtzeit anzeigen
Für mehr Flexibilität können Sie diese Optionen kombinieren. Wir zeigen alle Fehler des pptpd
journalctl -u pptpd -p err
Wenn Sie den Pfad zur ausführbaren Datei als Attribut angeben, zeigt das Dienstprogramm alle von dieser Datei gesendeten Nachrichten an. Lassen Sie uns alle von der Datei gesendeten Nachrichten anzeigen./usr/bin/sudo” seit 04:15 Uhr am 18. Februar 2020. Tatsächlich werden alle Befehle angezeigt, die mit höheren Berechtigungen ausgeführt werden.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Um herauszufinden, wie viel Speicherplatz Protokolldateien beanspruchen, führen Sie den folgenden Befehl aus
journalctl --disk-usage
Um die Protokolldatei auf 1 GB zu begrenzen, führen Sie den folgenden Befehl aus
journalctl --vacuum-size=1G
Öffnen von Binärdateien
Schauen wir uns nun einige spezielle Dateien im „/ var / log /”, in dem alle Anmeldeversuche gespeichert werden. Diese Dateien sind binär und können nur mit speziellen Programmen geöffnet werden.
/var/log/wtmp Enthält Informationen zu erfolgreichen Anmeldeversuchen. Verwenden Sie das letzte Dienstprogramm, um es zu öffnen.
/var/log/btmp - Enthält alle fehlgeschlagenen Anmeldeversuche. Es kann mit lastb mit erweiterten Berechtigungen geöffnet werden. Attribut -n definiert die Anzahl der angezeigten Zeilen ab dem Ende der Datei.
/ var / log / lastlog - enthält den Zeitpunkt der letzten Anmeldung für jeden Kontodatensatz. Es kann geöffnet werden mit letztes Protokoll