GNU/Linux >> Tutoriales Linux >  >> Linux

Monitoreo de actividad y estado de usuario en Linux con GNU acct

Hay muchas aplicaciones de monitoreo para servidores, y han hecho mucho para ayudar a la adopción de Linux con administradores de sistemas que no están acostumbrados a la Terminal o que tienen una necesidad real de representaciones gráficas de datos. Sin embargo, Linux ha sido un sistema multiusuario desde el principio, y UNIX mucho antes, por lo que existen herramientas integradas que se remontan a 40 años para ayudarlo a monitorear quién ha iniciado sesión en su servidor, quién está usando recursos y para qué.

No tienes que ser paranoico o incluso entrometido para justificar el mantener una estrecha vigilancia en un servidor que se ha hecho tu responsabilidad. El paquete psacct contiene varios comandos para recopilar informes detallados sobre el estado y la actividad del usuario.

accton

No todos los comandos en acct Las utilidades requieren que active la contabilidad, pero muchas lo hacen. Si tiene la intención de utilizar acct comandos, debe habilitar la contabilidad con el accton comando.

Para activar:

$ sudo accton on

De forma predeterminada, los registros contables se almacenan en /var/account/pacct . Es factible que este archivo se vuelva bastante grande, así que use logrotate o una herramienta similar para garantizar una gestión de registros adecuada.

Para desactivar la contabilidad:

$ sudo accton off

ac

El ac El comando imprime estadísticas sobre los tiempos de conexión. Si necesita obtener una descripción general de la actividad de los usuarios en un sistema, --individual-totals opción proporciona eso. Genera su reporte en horas basado en inicios y cierres de sesión registrados en el /var/log/wtmp archivo.

El archivo de contabilidad wtmp es mantenido por init(8) y login(1) pero tampoco ac o login en realidad crea el archivo. Si wtmp no existe, entonces no se genera ningún informe, pero puede señalar ac a una ubicación alternativa usando el --file opción. Si un wtmp archivo no existe en su sistema, puede crear un wtmp vacío para habilitar la generación de informes en su sistema.

Para obtener un informe sobre los tiempos de inicio de sesión de usuarios individuales:

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

También puede obtener totales diarios:

$ 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

últimacomunicación

El lastcomm comando muestra los últimos comandos emitido en el sistema para un usuario determinado. Si no se especifica ningún usuario, se genera un informe sobre el usuario actual.

$ 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

Los comandos enumerados por lastcomm no son necesariamente comandos que un usuario lanzó de forma interactiva. Por ejemplo, simplemente al iniciar sesión, un usuario genera casi 40 elementos en la salida de lastcomm , por lo que puede ser abrumador. Junto con grep , sin embargo, es una manera fácil de tener una idea del historial de sesiones de un usuario.

sa

El sa El comando resume la información contable derivada del /var/account/pacct expediente. Si está auditando las actividades de los usuarios, entonces --print-users opción imprime el nombre de usuario antes de cada comando:

$ 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 

Alternativamente, puede obtener solo un resumen para cada usuario:

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

Las columnas mostradas, además de los nombres de usuario, informan sobre la CPU (tiempo real y tiempo de la CPU), operaciones de E/S por comando (promedio y total), etc. Se pueden configurar usando opciones como --sort-tio para t E/S totales , --sort-cpu-avmem para ordenar el tiempo de CPU por uso promedio de memoria, y así sucesivamente. Todos los filtros de clasificación se pueden invertir con --reverse-sort opción.

Perfil de usuario

Combinado con herramientas como who, w y ps, puede tener una idea de cómo los usuarios están gastando los recursos del sistema, qué comandos pueden ser problemáticos y qué actualizaciones del servidor podrían ser útiles en el futuro. Porque la acct suite está basado en terminal, puede ser utilizado por otras herramientas, lo que le permite crear un mecanismo de informes personalizado.

[ ¿Quiere probar Red Hat Enterprise Linux? Descárgalo ahora gratis. ]


Linux
  1. Particionar una unidad en Linux con GNU Parted

  2. Haz matemáticas en el shell de Linux con GNU bc

  3. Aprenda la diferencia entre los comandos "su" y "su -" en Linux

  4. Una introducción a la supervisión de cuentas de usuario de Linux

  5. 8 mejores prácticas con sudo en Linux:qué hacer y qué no hacer con sudo

Personalizando mi terminal Linux con tmux y Git

Gestión de procesos en Linux con kill y killall

Monitoreo de hosts Linux y Windows con Glances

Primeros pasos con GIT en Linux

Supervise la actividad del usuario con la herramienta acct en Ubuntu 20.04

Monitoreo del ancho de banda en Linux con Nethogs