Ver actualizaciones Ubuntu + CentOS + OpenSuSE
updateCentOS.pl
Para este script necesitamos instalar un agregado de yum, ejecutar como root: "yum -y install yum-security" .
#!/usr/bin/perl
$STATUS_WARNING=1;
$STATUS_CRITICAL=2;
$STATUS_UNKNOWN=3;
$SALIDA="#!/bin/bash\n";
$EXIT=$STATUS_UNKNOWN;
$FILE="/usr/lib/nagios/plugins/check_actualizaciones.sh";
@PATCHS=`yum -q --security check-update 2>/dev/null`;
$A[0]=0;
$A[1]=0;
foreach $i (@PATCHS)
{
$A[0]=$A[0]+1;
}
@PATCHS=`yum -q check-update 2>/dev/null`;
foreach $i (@PATCHS)
{
$A[1]=$A[1]+1;
}
if($A[0] eq "0" and $A[1] eq "0")
{
open(F,">$FILE");
print F "$SALIDA"."echo \"Existen ".$A[0]." actualizaciones.\"\n";
print F "exit $STATUS_OK";
close(F);
chmod (0777,$FILE);
exit;
}
if($A[0] > 0)
{
$SALIDA = $SALIDA . "echo \"ERROR - Existen ".$A[0]." actualizaciones se seguridad y ".$A[1]." extras\"\n";
$EXIT = $STATUS_CRITICAL;
}
else
{
$SALIDA = $SALIDA . "echo \"WARNING - Existen ".$A[1]." actualizaciones extras.\"\n";
$EXIT = $STATUS_WARNING;
}
open(F,">$FILE");
print F $SALIDA;
print F "exit $EXIT";
close(F);
chmod (0777,$FILE);
Este script mantiene el mismo concepto, salvo que en lugar de ejecutar un solo programa ejecuta dos, el primero obtiene las actualizaciones de seguridad disponibles y el segundo las extras.
También debemos agregar la linea en el archivo de configuración de nrpe como se explicó antes, así como también la línea en crontab para la ejecución. Reiniciar nrpe y ejecutarlo manualmente la primera vez.
updateOpenSuSE.pl
#!/usr/bin/perl
$STATUS_OK=0;
$STATUS_WARNING=1;
$STATUS_CRITICAL=2;
$STATUS_UNKNOWN=3;
@PATCHS=`zypper -q lp 2>/dev/null | grep -i needed`;
$FLAG=0;
$c=0;
$SALIDA="#!/bin/bash\n";
$EXIT=$STATUS_UNKNOWN;
$FILE="/usr/lib/nagios/plugins/check_actualizaciones.sh";
foreach $i (@PATCHS)
{
$c=$c+1;
@aux=split('\|',$i);
#solo uso los campos 1, 2 y 3
if($i =~ /security/)
{
push(@SEGURIDAD,$aux[1]);
}
else
{
push(@OTROS,$aux[1]);
}
$FLAG=1;
}
if(@SEGURIDAD == 0 and @OTROS == 0)
{
open(F,">$FILE");
print F "$SALIDA"."echo \"Existen ".@SEGURIDAD." actualizaciones.\"\n";
print F "exit $STATUS_OK";
close(F);
chmod (0777,$FILE);
exit;
}
if(@SEGURIDAD > 0)
{
$SALIDA = $SALIDA . "echo \"ERROR - Existen ".@SEGURIDAD." actualizaciones de seguridad y ".@OTROS." extras\"\n";
$EXIT = $STATUS_CRITICAL;
}
else
{
$SALIDA = $SALIDA . "echo \"WARNING - Existen ".@OTROS." actualizaciones extras.\"\n";
$EXIT = $STATUS_WARNING;
}
open(F,">$FILE");
print F $SALIDA;
print F "exit $EXIT";
close(F);
chmod (0777,$FILE);
Nuevamente pero esta vez para openSuSE, también se deben aplicar los puntos de los otros dos casos.
No voy a incluir la configuración de nagios (por tiempo, ya me dio sueño :P, si alguien la precisa la tengo), pero básicamente consiste en definir un servicio y utilizar nrpe para ejecutar remotamente "check_actualizaciones.sh", de esta forma nagios nos estaría avisando cuántas actualizaciones pendientes tenemos y de qué tipo son.
Cabe aclarar que si actualizamos un servidor, las alertas no se irán hasta que no se vuelva a hacer la recolección, pero como esto pasa una vez al día estaríamos viendo alertas el resto del día. Por lo tanto recomiendo que una vez actualizado el servidor se ejecute manualmente el archivo de recolección para que las alarmas se vayan :D.
Concejos, dudas y demás serán bien recibidos!



Comentarios (0)