Cómo producir y entregar informes de actividad del sistema utilizando conjuntos de herramientas de Linux - Parte 3


Como ingeniero de sistemas, a menudo necesitará producir informes que muestren la utilización de los recursos de su sistema para asegurarse de que: 1) se estén utilizando de manera óptima, 2) evitar cuellos de botella y 3) garantizar la escalabilidad, entre otras razones.

Además de las conocidas herramientas nativas de Linux que se utilizan para verificar el uso del disco, la memoria y la CPU, por nombrar algunos ejemplos, Red Hat Enterprise Linux 7 proporciona dos conjuntos de herramientas adicionales para mejorar los datos que puede recopilar para sus informes: sysstat y dstat .

En este artículo describiremos ambos, pero comencemos primero revisando el uso de las herramientas clásicas.

Herramientas nativas de Linux

Con df, podrá informar el espacio en disco y el uso de inodo por parte del sistema de archivos. Debe monitorear ambos porque la falta de espacio le impedirá guardar más archivos (e incluso puede hacer que el sistema se bloquee), al igual que quedarse sin inodos significa que no puede vincular más archivos con sus datos correspondientes estructuras, produciendo así el mismo efecto: no podrá guardar esos archivos en el disco.

# df -h 		[Display output in human-readable form]
# df -h --total         [Produce a grand total]
# df -i 		[Show inode count by filesystem]
# df -i --total 	[Produce a grand total]

Con du, puede estimar el uso del espacio de archivos por archivo, directorio o sistema de archivos.

Por ejemplo, veamos cuánto espacio utiliza el directorio/home, que incluye todos los archivos personales del usuario. El primer comando devolverá el espacio total utilizado actualmente por todo el directorio/home, mientras que el segundo también mostrará una lista desagregada por subdirectorio:

# du -sch /home
# du -sch /home/*

No te pierdas:

  1. 12 ejemplos de comandos "df" para verificar el uso del espacio en disco de Linux
  2. 10 ejemplos de comandos "du" para encontrar el uso de archivos/directorios en el disco

Otra utilidad que no puede faltar en su conjunto de herramientas es vmstat. Le permitirá ver de un vistazo información sobre procesos, uso de CPU y memoria, actividad del disco y más.

Si se ejecuta sin argumentos, vmstat devolverá promedios desde el último reinicio. Si bien puede usar esta forma del comando de vez en cuando, será más útil tomar una cierta cantidad de muestras de utilización del sistema, una tras otra, con una separación de tiempo definida entre las muestras.

Por ejemplo,

# vmstat 5 10

devolverá 10 muestras tomadas cada 5 segundos:

Como puede ver en la imagen de arriba, la salida de vmstat se divide en columnas: procs (procesos), memoria, intercambio, io, sistema y cpu. El significado de cada campo se puede encontrar en las secciones DESCRIPCIÓN DEL CAMPO en la página de manual de vmstat.

¿Dónde puede resultar útil vmstat? Examinemos el comportamiento del sistema antes y durante una actualización de yum:

# vmstat -a 1 5

Tenga en cuenta que a medida que se modifican los archivos en el disco, aumenta la cantidad de memoria activa y también aumenta el número de bloques escritos en el disco (bo) y el tiempo de CPU dedicado a los procesos del usuario (nosotros).

O durante el proceso de guardado de un archivo grande directamente en el disco (causado por dsync):

# vmstat -a 1 5
# dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

En este caso, podemos ver un número aún mayor de bloques que se escriben en el disco (bo), lo que era de esperar, pero también un aumento de la cantidad de tiempo de CPU que tiene que esperar para que se completen las operaciones de E/S antes tareas de procesamiento (wa).

No se pierda: Vmstat: supervisión del rendimiento de Linux

Otras herramientas de Linux

Como se mencionó en la introducción de este capítulo, existen otras herramientas que puede usar para verificar el estado y la utilización del sistema (no solo son provistas por Red Hat sino también por otras distribuciones importantes de sus repositorios oficialmente soportados).

El paquete sysstat contiene las siguientes utilidades:

  1. sar (recopilar, informar o guardar información sobre la actividad del sistema).
  2. sadf (muestra los datos recopilados por sar en varios formatos).
  3. mpstat (estadísticas relacionadas con los procesadores de informes).
  4. iostat (informe de estadísticas de CPU y estadísticas de E/S para dispositivos y particiones).
  5. pidstat (informe de estadísticas para tareas de Linux).
  6. nfsiostat (informe de estadísticas de entrada/salida para NFS).
  7. cifsiostat (informe de estadísticas CIFS) y
  8. sa1 (recopila y almacena datos binarios en el archivo de datos diarios de actividad del sistema.
  9. herramientas sa2 (escriba un informe diario en el directorio/var/log/sa).

mientras que dstat agrega algunas características adicionales a la funcionalidad proporcionada por esas herramientas, junto con más contadores y flexibilidad. Puede encontrar una descripción general de cada herramienta ejecutando yum info sysstat o yum info dstat, respectivamente, o revisando las páginas de manual individuales después de la instalación.

Para instalar ambos paquetes:

# yum update && yum install sysstat dstat

El archivo de configuración principal de sysstat es/etc/sysconfig/sysstat. Encontrará los siguientes parámetros en ese archivo:

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"

Cuando se instala sysstat, se agregan y habilitan dos trabajos cron en /etc/cron.d/sysstat. El primer trabajo ejecuta la herramienta de contabilidad de actividad del sistema cada 10 minutos y almacena los informes en/var/log/sa/saXX, donde XX es el día del mes.

Por lo tanto,/var/log/sa/sa05 contendrá todos los informes de actividad del sistema a partir del día 5 del mes. Esto supone que estamos usando el valor predeterminado en la variable HISTORIA en el archivo de configuración anterior:

*/10 * * * * root /usr/lib64/sa/sa1 1 1

El segundo trabajo genera un resumen diario de la contabilidad del proceso a las 11:53 pm todos los días y lo almacena en archivos/var/log/sa/sarXX, donde XX tiene el mismo significado que en el ejemplo anterior:

53 23 * * * root /usr/lib64/sa/sa2 -A

Por ejemplo, es posible que desee generar estadísticas del sistema desde las 9:30 a. M. Hasta las 5:30 p. M. Del día seis del mes en un archivo .csv que se puede ver fácilmente con LibreOffice Calc o Microsoft Excel (este enfoque también le permitirá crear tablas o gráficos):

# sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Alternativamente, podría usar la marca -j en lugar de -d en el comando sadf anterior para generar las estadísticas del sistema en formato JSON, lo que podría ser útil si necesita consumir los datos en una aplicación web, por ejemplo.

Finalmente, veamos lo que dstat tiene para ofrecer. Tenga en cuenta que si se ejecuta sin argumentos, dstat asume -cdngy por defecto (abreviatura de CPU, disco, red, páginas de memoria y estadísticas del sistema, respectivamente), y agrega una línea cada segundo (la ejecución se puede interrumpir en cualquier momento con Ctrl + C) :

# dstat

Para generar las estadísticas en un archivo .csv, use la marca –output seguida de un nombre de archivo. Veamos cómo se ve esto en LibreOffice Calc:

Le recomiendo encarecidamente que consulte la página de manual de sysstat en formato PDF para su comodidad de lectura. Encontrará otras opciones que le ayudarán a crear informes de actividad del sistema detallados y personalizados.

No se pierda: Sysstat: herramienta de supervisión de la actividad de uso de Linux

Resumen

En esta guía, hemos explicado cómo utilizar tanto las herramientas nativas de Linux como las utilidades específicas proporcionadas con RHEL 7 para producir informes sobre la utilización del sistema. En un momento u otro, llegará a confiar en estos informes como mejores amigos.

Probablemente habrá utilizado otras herramientas que no hemos cubierto en este tutorial. Si es así, no dude en compartirlos con el resto de la comunidad junto con cualquier otra sugerencia/pregunta/comentario que pueda tener, utilizando el formulario a continuación.

Esperamos con interés escuchar de usted.