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 causar 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 ‘df’ Command Examples to Check Linux Disk Space Usage
  2. 10 ‘du’ Command Examples to Find Disk Usage of Files/Directories

Otra utilidad que no puede faltar en su conjunto de herramientas es vmstat. Le permitirá ver información de un vistazo rápido 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 los archivos se modifican en el disco, la cantidad de memoria activa aumenta y también lo hace el número de bloques escritos en el disco (bo) y el tiempo de CPU que se dedica 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 (collect, report, or save system activity information).
  2. sadf (display data collected by sar in multiple formats).
  3. mpstat (report processors related statistics).
  4. iostat (report CPU statistics and I/O statistics for devices and partitions).
  5. pidstat (report statistics for Linux tasks).
  6. nfsiostat (report input/output statistics for NFS).
  7. cifsiostat (report CIFS statistics) and
  8. sa1 (collect and store binary data in the system activity daily data file.
  9. sa2 (write a daily report in the /var/log/sa directory) tools.

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 sysstat está instalado, 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 pueda 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.

Por último, veamos qué ofrece dstat. Tenga en cuenta que si se ejecuta sin argumentos, dstat asume -cdngy de forma predeterminada (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 dstat junto con 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, explicamos cómo utilizar tanto las herramientas nativas de Linux como las utilidades específicas proporcionadas con RHEL 7 para generar 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 otras sugerencias/preguntas/comentarios que pueda tener, utilizando el formulario a continuación.

Esperamos con interés escuchar de usted.