GNU/Linux >> Znalost Linux >  >> Linux

Monitorování stavu a aktivity uživatele v Linuxu s GNU acct

Existuje spousta monitorovacích aplikací pro servery a udělaly hodně pro to, aby pomohly s přijetím Linuxu u systémových administrátorů, kteří nejsou zvyklí na Terminál nebo kteří skutečně potřebují grafické znázornění dat. Linux je však od začátku víceuživatelský systém a UNIX dávno předtím, takže existují vestavěné nástroje staré 40 let, které vám pomohou sledovat, kdo je přihlášen k vašemu serveru, kdo používá prostředky a k čemu.

Nemusíte být paranoidní nebo dokonce zvědaví, abyste ospravedlnili, že budete bedlivě sledovat server, který je vaší zodpovědností. Balíček psacct obsahuje několik příkazů pro shromažďování podrobných zpráv o stavu a aktivitě uživatele.

accton

Ne všechny příkazy v acct utility vyžadují, abyste aktivovali účetnictví, ale mnoho z nich to dělá. Pokud máte v úmyslu použít acct měli byste povolit účtování pomocí accton příkaz.

Aktivace:

$ sudo accton on 

Ve výchozím nastavení jsou účetní záznamy uloženy v /var/account/pacct . Tento soubor by mohl být poměrně velký, takže použijte logrotate nebo podobný nástroj pro zajištění správné správy protokolů.

Deaktivace účtování:

$ sudo accton off 

ac

ac příkaz vytiskne statistiky o časech připojení. Pokud potřebujete získat přehled o tom, jak byli aktivní uživatelé v systému, --individual-totals možnost to poskytuje. Generuje svůj přehled v hodinách na základě přihlášení a odhlášení zaznamenaných v /var/log/wtmp soubor.

Účetní soubor wtmp je spravován init(8) a login(1) ale ani ac nebo login skutečně vytvoří soubor. Pokud wtmp neexistuje, nevygeneruje se žádný přehled, ale můžete ukázat ac do alternativního umístění pomocí --file volba. Pokud je wtmp soubor ve vašem systému neexistuje, můžete vytvořit prázdný wtmp soubor, abyste umožnili hlášení ve vašem systému.

Chcete-li získat přehled o časech přihlášení pro jednotlivé uživatele:

$ ac --individual-totals
seth     20.16
larry    43.60
curly    10.32
moe      35.11 

Můžete také získat denní součty:

$ 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.13celkem 31.1 

lastcomm

lastcomm zobrazí poslední příkazy vydané v systému pro daného uživatele. Pokud není zadán žádný uživatel, vygeneruje se zpráva o aktuálním uživateli.

$ 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 

Příkazy uvedené v lastcomm nejsou nutně příkazy, které uživatel spouští interaktivně. Například pouhým přihlášením uživatel vytvoří téměř 40 položek ve výstupu lastcomm , takže to může být ohromující. Ve spojení s grep , nicméně je to snadný způsob, jak získat představu o historii relací uživatele.

sa

sa příkaz shrnuje účetní informace odvozené z /var/account/pacct soubor. Pokud kontrolujete aktivity uživatelů, pak --print-users volba vypíše uživatelské jméno před každým příkazem:

$ 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  cpu 54080 

Případně můžete získat pouze souhrn pro každého uživatele:

$ 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 [...]

Sloupce zobrazené, kromě uživatelských jmen, hlásí CPU (v reálném čase a CPU), I/O operace na příkaz (průměrné a celkové) a tak dále. Lze je konfigurovat pomocí voleb jako --sort-tio pro t celkové I/O , --sort-cpu-avmem seřadit čas procesoru podle průměrného využití paměti a tak dále. Všechny filtry řazení lze obrátit pomocí --reverse-sort možnost.

Profilování uživatele

V kombinaci s nástroji jako who, w a ps můžete získat představu o tom, jak uživatelé utrácejí systémové prostředky, které příkazy mohou být problematické a jaké upgrady serveru by mohly být užitečné v budoucnu. Protože acct sada je založená na terminálu, lze ji skriptovat a využívat jinými nástroji, což vám umožňuje vytvořit přizpůsobený mechanismus hlášení.

[ Chcete si vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma. ]


Linux
  1. Počítejte v linuxovém shellu s GNU bc

  2. Naučte se rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  3. Úvod do monitorování uživatelských účtů v Linuxu

  1. Jak pracovat s uživateli a skupinami v Linuxu

  2. Nainstalujte WordPress na Linux pomocí Apache

  3. Proměnné uživatelského prostředí S „su“ a „sudo“ v Linuxu

  1. Rozdělte disk na Linuxu pomocí GNU Parted

  2. Jak sledovat aktivitu uživatele v Linuxu

  3. Linux sysadmin základy:Správa uživatelských účtů s UID a GID