Cómo monitorear un sistema con Sysstat en Centos

Cómo monitorear un sistema con Sysstat en Centos

Una tarea común para los administradores de sistemas es monitorear y cuidar un servidor. Eso es bastante fácil de hacer en cualquier momento, pero ¿Cómo mantener un registro de esta información a lo largo del tiempo? Una forma de monitorear su servidor es usar el paquete Sysstat.

Sysstat es en realidad una colección de utilidades diseñadas para recopilar información sobre el rendimiento de una instalación de Linux y registrarla a lo largo del tiempo.

También es bastante fácil de instalar, ya que se incluye como un paquete en muchas distribuciones.

Instalar Sysstat en CentOS

Para instalar Sysstat en Centos 6 o CentOS 7, simplemente escriba lo siguiente:

yum install sysstat

Uso del monitor del sistema Sysstat

Ahora tenemos los scripts de sysstat instalados en el sistema. Probemos el comando sar.

sar
11:00:02 AM       CPU     %user     %nice   %system   %iowait     %idle
11:10:01 AM       all      0.00      0.00      0.00      0.00     99.99
Average:          all      0.00      0.00      0.00      0.00     99.99

Se informan varios bits de información, como el kernel de Linux, el nombre de host y la fecha.
Más importante aún, se muestran las diversas formas en que se gasta el tiempo de CPU en el sistema.

%user, %nice, %system, %iowait y %idle describen formas en que se puede utilizar la CPU.
%user y %nice se refieren a sus programas de software, como MySQL o Apache.
%system se refiere al funcionamiento interno del núcleo.
%iowait es el tiempo que se pasa esperando Entrada/Salida, como una lectura o escritura de disco. Finalmente, dado que el kernel representa el 100 % del tiempo de ejecución que puede programar, cualquier tiempo no utilizado pasa a % inactivo.

La información anterior se muestra para un intervalo de 1 segundo. ¿Cómo podemos hacer un seguimiento de esa información a lo largo del tiempo?
Si nuestro sistema funcionaba constantemente con mucha carga en %iowait, podríamos suponer que un disco se estaba sobrecargando o fallando.
Al menos, sabríamos investigar.

Entonces, ¿cómo rastreamos la información a lo largo del tiempo? Podemos programar sar para que se ejecute a intervalos regulares, por ejemplo, cada 10 minutos.
Luego lo dirigimos para que envíe la salida a los archivos de registro especiales de sysstat para informes posteriores.
La forma de hacerlo es con el demonio Cron.

Al crear un archivo llamado sysstat en /etc/cron.d, podemos decirle a cron que ejecute sar todos los días.
Afortunadamente, el paquete Systat que instaló yum ya hizo este paso por nosotros.

more /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A

El script sa1 registra la salida de sar en el formato de archivo de registro binario de sysstat y sa2 lo informa en un formato legible por humanos.
El informe se escribe en un archivo en /var/log/sa.

ls /var/log/sa
sa17  sar17

sa17 es el registro de sysstat binario, sar17 es el informe. (La fecha de hoy es el 17)

Hay bastante información contenida en el informe sar, pero hay algunos valores que pueden decirnos qué tan ocupado está el servidor.
Los valores a observar son el uso de intercambio, la espera de E/S de disco y la cola de ejecución.
Estos se pueden obtener ejecutando sar manualmente, que informará sobre esos valores.

sar
11:00:02 AM       CPU     %user     %nice   %system   %iowait     %idle
11:10:01 AM       all      0.00      0.00      0.00      0.00     99.99
11:20:01 AM       all      0.00      0.00      0.00      0.00    100.00
11:30:02 AM       all      0.01      0.26      0.19      1.85     97.68
11:39:20 AM       all      0.00      2.41      2.77      0.53     94.28
11:40:01 AM       all      1.42      0.00      0.18      3.24     95.15
Average:          all      0.03      0.62      0.69      0.64     98.02

Hubo algunos momentos en los que la actividad del disco fue alta en la columna %iowait, pero no permaneció así por mucho tiempo. Un promedio de 0,64 es bastante bueno.

¿Qué hay de mi uso de intercambio, me estoy quedando sin RAM? Ser intercambiado es normal para el kernel de Linux, que cambiará de vez en cuando. El intercambio constante es malo y generalmente significa que necesita más RAM.

sar -W
11:00:02 AM  pswpin/s pswpout/s
11:10:01 AM      0.00      0.00
11:20:01 AM      0.00      0.00
11:30:02 AM      0.00      0.00
11:39:20 AM      0.00      0.00
11:40:01 AM      0.00      0.00
11:50:01 AM      0.00      0.00
Average:         0.00      0.00

No, nos vemos bien. No se ha producido ningún intercambio persistente.

¿Qué hay de la carga del sistema? ¿Mis procesos están esperando demasiado para ejecutarse en la CPU?

sar -q
11:00:02 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
11:10:01 AM         0        47      0.00      0.00      0.00
11:20:01 AM         0        47      0.00      0.00      0.00
11:30:02 AM         0        47      0.28      0.21      0.08
11:39:20 AM         0        45      0.01      0.24      0.17
11:40:01 AM         0        46      0.07      0.22      0.17
11:50:01 AM         0        46      0.00      0.02      0.07
Average:            0        46      0.06      0.12      0.08

No, una carga promedio de .06 es realmente buena. Observe que hay un intervalo de 1, 5 y 15 minutos a la derecha. Tener los tres intervalos de tiempo le da una idea de cuánta carga lleva el sistema. Un 3 o 4 en el promedio de 1 minuto está bien, pero el mismo número en la columna de 15 minutos puede indicar que el trabajo no se está limpiando y que se justifica una mirada más cercana.

Esta fue una breve mirada al paquete Sysstat.

Solo miramos la salida de tres de los atributos de sar, pero hay otros. Ahora, armado con sar en su caja de herramientas, su trabajo de administración del sistema se volvió un poco más fácil.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *