Es gibt viele Überwachungs-Apps für Server, und sie haben viel getan, um die Einführung von Linux bei Systemadministratoren zu unterstützen, die nicht an das Terminal gewöhnt sind oder einen echten Bedarf an grafischen Darstellungen von Daten haben. Linux war jedoch von Anfang an ein Mehrbenutzersystem und UNIX schon lange davor. Daher gibt es integrierte Tools, die 40 Jahre zurückreichen, um Ihnen zu helfen, zu überwachen, wer sich bei Ihrem Server angemeldet hat, wer Ressourcen verwendet und wofür.
Sie müssen nicht paranoid oder gar neugierig sein, um zu rechtfertigen, dass Sie einen Server, für den Sie verantwortlich sind, genau beobachten. Das psacct-Paket enthält mehrere Befehle zum Sammeln detaillierter Berichte über Benutzerstatus und -aktivität.
Aktion
Nicht alle Befehle im acct
Dienstprogramme erfordern, dass Sie die Buchhaltung aktivieren, aber viele tun dies. Wenn Sie beabsichtigen, acct
zu verwenden Befehle, sollten Sie die Abrechnung mit dem accton
aktivieren Befehl.
Zum Aktivieren:
$ sudo accton on
Standardmäßig werden Abrechnungsdatensätze in /var/account/pacct
gespeichert . Diese Datei könnte ziemlich groß werden, also verwenden Sie logrotate
oder ein ähnliches Tool, um eine ordnungsgemäße Protokollverwaltung sicherzustellen.
So deaktivieren Sie die Abrechnung:
$ sudo accton off
ac
Der ac
Befehl gibt Statistiken über Verbindungszeiten aus. Wenn Sie sich einen Überblick darüber verschaffen möchten, wie aktiv Benutzer auf einem System waren, können Sie die --individual-totals
Option bietet dies. Es generiert seinen Bericht in Stunden basierend auf Anmeldungen und Abmeldungen, die in /var/log/wtmp
aufgezeichnet sind Datei.
Die Abrechnungsdatei wtmp
wird von init(8)
gepflegt und login(1)
aber weder ac
oder login
erstellt die Datei tatsächlich. Wenn wtmp
existiert nicht, dann wird kein Bericht generiert, aber Sie können auf ac
zeigen an einen alternativen Speicherort mithilfe der --file
Möglichkeit. Wenn ein wtmp
Datei auf Ihrem System nicht existiert, können Sie eine leere wtmp
erstellen Datei, um Berichte auf Ihrem System zu aktivieren.
So erhalten Sie einen Bericht über Anmeldezeiten für einzelne Benutzer:
$ ac --individual-totals
seth 20.16
larry 43.60
curly 10.32
moe 35.11
Sie können auch Tagessummen abrufen:
$ ac --daily-totals
Jan 20 total 22.61
Jan 21 total 73.60
Jan 22 total 84.00
Jan 23 total 100.69
Jan 24 total 18.24
Jan 25 total 2.43
Jan 27 total 35.36
Today total 62.13
lastcomm
Die lastcomm
command zeigt die letzten Befehle an auf dem System für einen bestimmten Benutzer ausgegeben. Wenn kein Benutzer angegeben ist, wird ein Bericht über den aktuellen Benutzer generiert.
$ sudo lastcomm --strict-match --user curly --tty pts/2
basename curly pts/2 0.00 secs Tue Jan 28 15:41
ps curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
manpath curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
tclsh curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
sed curly pts/2 0.00 secs Tue Jan 28 15:41
Die von lastcomm
aufgelisteten Befehle sind nicht unbedingt Befehle, die ein Benutzer interaktiv gestartet hat. Wenn sich ein Benutzer beispielsweise einfach anmeldet, erzeugt er fast 40 Elemente in der Ausgabe von lastcomm
, also kann es überwältigend sein. Gekoppelt mit grep
, es ist jedoch eine einfache Möglichkeit, sich einen Eindruck vom Sitzungsverlauf eines Benutzers zu verschaffen.
sa
Die sa
Der Befehl fasst Abrechnungsinformationen zusammen, die aus /var/account/pacct
abgeleitet wurden Datei. Wenn Sie die Aktivitäten von Benutzern prüfen, dann --print-users
Option gibt den Benutzernamen vor jedem Befehl aus:
$ sudo sa --print-users
root 0.00 cpu 579k mem 0 io accton
root 0.03 cpu 64064k mem 0 io sudo
seth 0.00 cpu 56752k mem 0 io bash *
seth 0.00 cpu 54080k mem 0 io sed
seth 0.00 cpu 56752k mem 0 io bash *
larry 0.00 cpu 56752k mem 0 io bash *
curly 0.00 cpu 56752k mem 0 io bash *
moe 0.00 cpu 56752k mem 0 io bash *
seth 0.00 cpu 54080k mem 0 io ls
Alternativ können Sie auch nur eine Zusammenfassung für jeden Benutzer erhalten:
$ sudo sa --user-summary
1065 2169.59re 0.97cp 0avio 49373k
seth 812 1117.11re 0.83cp 0avio 58163k
root 199 1052.42re 0.14cp 0avio 21314k
larry 41 0.00re 0.00cp 0avio 19403k
curly 1 0.06re 0.00cp 0avio 6706k
moe 12 0.00re 0.00cp 0avio 25888k
[...]
Die angezeigten Spalten geben zusätzlich zu den Benutzernamen Auskunft über CPU (Echtzeit und CPU-Zeit), E/A-Operationen pro Befehl (Durchschnitt und Gesamt) und so weiter. Sie können mit Optionen wie --sort-tio
konfiguriert werden für t Gesamt I/O , --sort-cpu-avmem
um die CPU-Zeit nach durchschnittlicher Speicherauslastung zu sortieren und so weiter. Alle Sortierfilter können mit --reverse-sort
umgekehrt werden Option.
Benutzerprofilerstellung
In Kombination mit Tools wie who, w und ps können Sie sich ein Bild davon machen, wie Benutzer Systemressourcen ausgeben, welche Befehle möglicherweise problematisch sind und welche Server-Upgrades in Zukunft nützlich sein könnten. Denn der acct
suite ist terminalbasiert, sie kann skriptgesteuert und von anderen Tools verwendet werden, sodass Sie einen benutzerdefinierten Berichtsmechanismus erstellen können.
[ Möchten Sie Red Hat Enterprise Linux ausprobieren? Laden Sie es jetzt kostenlos herunter. ]