Instalar y configurar sar y ksar para la monitorización diaria en Linux y generar informes en PDF

Este tutorial se centra en la instalación y configuración de las potentes utilidades sar y ksar en CentOS, Debian y Ubuntu, y muestra cómo crear automáticamente informes en PDF mediante un sencillo script de shell para facilitar la supervisión diaria del uso de los recursos del servidor.

Parte 1: Instalación del software de monitorización SAR

SAR significa informes de actividad del sistema. SAR es una herramienta ligera de monitorización del sistema en tiempo real. Puede dar el informe de uso de recursos del servidor según nuestras necesidades. Da salida en un terminal por defecto y también almacena la información por días, por lo que será una utilidad muy útil y potente para los administradores de sistemas.

SAR se puede instalar en cualquier versión de Linux, y forma parte de los paquetes sysstat.

Instalar y configurar el SAR

Para Debian/Ubuntu

# sudo apt-get install sysstat

Para RedHat/CentOS

# sudo yum install sysstat

Instala el último sysstat desde el código fuente.

wget http://pagesperso-orange.fr/sebastien.godard/sysstat-12.1.4.tar.bz2
tar -xvf sysstat-12.1.4.tar.bz2
cd sysstat-12.1.4/
./configure --enable-install-cron
make
make install

Si instalas sar desde el código fuente, se instalará sysstat en /usr/local/bin/

Después de la instalación, verifica la versión del SAR

#sysadmin@Sysadmin:~$ sar -V
 sysstat version 11.2.0

Después de eso, asegúrate de verificar que la recogida de datos del SAR está activada.

En Ubuntu

#sudo vi /etc/default/sysstat 
ENABLED="true"

reinicia el servicio sar y habilítalo al iniciar el sistema.

# systemctl start sysstat
# systemctl enable sysstat

Ahora comprueba que sar funciona correctamente en el sistema ejecutando el siguiente comando. Aquí hay un intervalo de tiempo de 2 segundos y una salida de 4 veces.

[system@redhat ~]$ sar 2 4 
Linux 5.0.16-200.fc29.x86_64 (redhat)     05/22/2019     _x86_64_    (4 CPU)

12:18:13 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:18:15 AM     all      1.25      0.00      0.50      0.00      0.00     98.24
12:18:17 AM     all      2.50      0.00      0.38      0.00      0.00     97.12
12:18:19 AM     all      2.12      0.00      0.62      0.12      0.00     97.12
12:18:21 AM     all      1.75      0.00      0.50      0.00      0.00     97.75
 Average:       all      1.91      0.00      0.50      0.03      0.00     97.56

Podemos ejecutar simplemente el comando sar para comprobar el uso de los recursos.

[root@redhat script]# sar
Linux 5.0.16-200.fc29.x86_64 (redhat)     05/24/2019     _x86_64_    (4 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      4.02      0.05      1.45      1.40      0.00     93.09
12:20:01 AM     all      6.27      0.02      1.82      0.56      0.00     91.33
12:30:01 AM     all     10.61      0.03      2.69      0.64      0.00     86.03
12:40:01 AM     all      9.26      0.05      2.45      0.59      0.00     87.65

Por defecto, el intervalo de sar se establece en cada 10 minutos. Podemos modificar este valor editando los siguientes archivos.

vi /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

En el archivo anterior, sa1 es el script de shell para recoger y almacenar datos binarios en el archivo de datos diarios de la actividad del sistema y sa2 es el script de shell que escribe el informe diario en /var/log/sa al final del día (23:53 en el cronjob anterior).

Parte 2: Instalación de KSAR

KSAR genera un gráfico a partir del valor del SAR que es muy fácil de analizar. KSAR se basa en JAVA, por lo que debemos tener instalado el JDK 8 o superior en nuestro sistema. KSAR no forma parte del repositorio del sistema, por lo que tenemos que descargar KSAR manualmente.

Primero, instala java en redhat/centos

sudo yum install java-1.8.0-OpenJDK.x86_64

Ahora descarga e instala KSar en el sistema.

wget https://excellmedia.dl.sourceforge.net/project/ksar/ksar/5.0.6/kSar-5.0.6.zip
unzip kSar-5.0.6.zip
cd kSar-5.0.6/

Ahora recoge las estadísticas del comando sar utilizando el siguiente comando.

LC_ALL=C sar -A -f /var/log/sa/sa21 > ~/Desktop/sar21
sudo chmod u+x run.sh
sh run.sh &

debemos ejecutar el script run.sh como un usuario normal, no ejecutes el script KSAR como usuario root.

ahora KSAR mostrará una interfaz gráfica de usuario sencilla.

Ksar

Ahora haz clic en Datos -> Cargar desde archivo de texto -> selecciona el archivo ~/Desktop/sar21 .

Cargar archivo

Ahora nuestro archivo sar se ha cargado en el KSAR.

Ahora podemos exportar el gráfico en formato pdf, jpg, png, csv, txt. Aquí exportamos el gráfico en pdf y seleccionamos todos los valores durante la exportación del pdf.

Exportación en PDF

Ahora abre ese pdf, mostrará todos los recursos útiles del servidor.

Aquí podemos la carga de la CPU durante un día en el servidor.

Monitorización de la carga de la CPU

Esto es el uso de la memoria durante un día

Gráfico de uso de memoria

De esta manera podemos generar un gráfico de CPU, memoria, procesador, E/S, swap, sockets y muchos otros recursos útiles del sistema muy fácilmente para la tarea de monitorización diaria.

Parte 3: El SCRIPT de monitorización

La interfaz gráfica de KSAR es muy fácil de usar. Pero el script generará el gráfico diario del KSAR de forma más eficaz y ahorrará tiempo.

En esta parte, crearemos dos scripts.

El primer script generará un gráfico diario para un día.

vi sar_script.sh
#!/bin/bash
i=`date --date="1 days ago" +%d`
LC_ALL=C sar -A -f /var/log/sa/sa$i > /home/admin/sar_report/sardaily_report$i
cd /home/soham/Downloads/kSar-5.0.6/
java -jar kSar.jar -input /home/admin/sar_report/sardaily_report$i -outputPDF /home/admin/sar_report/sardaily$(date --date="1 days ago" +%b)$i.pdf
echo "Ksar graph successfully generated"
sudo chmod u+x sar_script.sh

El segundo script generará el informe de recursos del sistema de un día. Podemos configurar este script en cronjob para generar automáticamente el gráfico sar en formato pdf.

crontab -e
* 10 * * * /bin/sh /home/admin/script/sar_script.sh

Este cronjob generará un gráfico pdf diario a partir del valor del sar a las 10 de la mañana.

A continuación, generaremos un informe de estadísticas sar para todo el mes.

#!/bin/bash

function sar_value(){
#This is set for 31 possible days.
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31; do
LC_ALL=C sar -A -f /var/log/sa/sa$i >> /home/admin/sar_report/sarmonthly$(date --date="1 days ago" +%b).txt
done
}

Function for script
sar_value

Ahora tomamos ese archivo de texto como entrada para generar un gráfico en pdf.

java -jar kSar.jar -input /home/admin/sar_report/sarmonthly$(date --date="1 days ago" +%b).txt -outputPDF /home/admin/sar_report/sar_monthly.pdf

Esto generará el informe de todo el mes en un archivo pdf.

Podemos configurar el cron para automatizar la generación del informe como se muestra arriba. Si queremos un informe gráfico kSar directo desde el servidor al PC local, podemos establecer un ssh sin contraseña entre el servidor y el PC local y configurar la automatización añadiendo rsync en el script anterior.

De esta manera podemos utilizar una utilidad sar muy potente y efectiva para la tarea de monitorización diaria del sistema.

También te podría gustar...