jueves, 29 de octubre de 2009

SUN Vs. MICROSOFT

Increible !! :-)


martes, 6 de octubre de 2009

NAGIOS - PLUGIN DE CHEQUEO NDO2DB

Como han visto en post anteriores, en mi trabajo tuve que realizar un concentrador de 3 nagios diferentes, la cuestión es que por algunas circunstancias el ndo2db se caía y nos enterabamos porque no había control para su chequeo.

tampoco estaba en nagios_exchange

entonces me cree un simple script para su chequeo y es el siguiente:

#/bin/bash

STATUS=`ps aux | grep "ndo2db.cfg" | wc -l`;


if [ $STATUS -lt 2 ]

   then
         echo "ALERTA - NDO2DB CAIDO PROBLEMAS NAGIOS-MON";
         exit 0
   else
         echo "OK - NOD2DB FUNCIONANDO CORRECTAMENTE";
         exit 0
fi

Espero les sirva..

Hernan Mazzeo

sábado, 3 de octubre de 2009

CRONTAB - EJECUTAR TAREAS DESDE ROOT CON OTRO USUARIO

En muchas ocasiones nos es necesario tener que ejecutar desde el corntab de root tareas con otro usuario para que cree los permisos de acceso necesarios para su ejecución.

Un ejemplo claro que ocurrió hace poco es la ejecucion de un script que corria como root y generaba directorios entre otras cosas como ese usuario, luego el apache y otras aplicaciones no le daban acceso.

Para solucionar este problema basta solamente con poner delante de la tarea del crontab el usuario con el que lo queremos ejecutar.

Ej:

 */5 * * * * www-data /usr/bin/php -q /var/www/dvr/servidor/111.php >> /var/log/111.log

Esto ejecutará la tarea del cron con el usuario indicado.

NOTA IMPORTANTE: Para que funcione esto no se debe realizar con el comando crontab -e, sino que deben editar el archivo /etc/crontab.

Basicamente porque cuando ejecutamos crontab -e, estamos entrando al crontab del usuario que estamos.

cuando editamos el archivo /etc/crontab estamos trabajando sobre el crontab del sistema.


Hernan Mazzeo

viernes, 2 de octubre de 2009

NETWORKING - CAMBIAR IP y GW de CONSOLA EN UN LINUX

Muchas veces sucede que las herramientas de configuración de RED no funcionan por diversos motivos.

Siendo la única salida cambiar la IP y el GW por consola.

[root@TWITTER /]$ ifconfig eth0 192.168.1.40 netmask 255.255.255.0
[root@TWITTER /]$ route add default gw 192.168.1.254 eth0



Hernan Mazzeo

jueves, 1 de octubre de 2009

BLACKBERRY - Sincronizar una blackberry en Linux con Evolution. (BARRY)

Este instructivo se hizo en base a Ubuntu.
con barry.

funciona perfectamente.

1º) Instalo dos paquetes necesarios.

[hmazzeo@TWITTER ~]$ apt-get install opensync-plugin-evolution
[hmazzeo@TWITTER ~]$ apt-get install multisync-tools

2º) Descargo los siguientes paquetes (pueden instalar también los que vienen con la nueva version de ubuntu en los repositorios, pero estos estoy seguro que funcionan, los otros no).

Una vez descargados los pueden ejecutar haciendo doble click y con el gestor de paquetes synaptics.

http://downloads.sourceforge.net/barry/libbarry_0.13-1.2_i386.deb?modtime=1217433545&big_mirror=0

http://downloads.sourceforge.net/barry/barrybackup-gui_0.13-1.2_i386.deb?modtime=1217433325&big_mirror=0

http://downloads.sourceforge.net/barry/barry-util_0.13-1.2_i386.deb?modtime=1217433460&big_mirror=0

http://downloads.sourceforge.net/barry/libbarry-dev_0.13-1.2_i386.deb?modtime=1217433629&big_mirror=0

http://downloads.sourceforge.net/barry/libopensync-plugin-barry_0.13-1.2_i386.deb?modtime=1217433710&big_mirror=0

3º) Una vez instalados todos los paquetes ejecutamos los siguientes comandos:

[hmazzeo@TWITTER ~]$ msynctool --addgroup Blackberry
[hmazzeo@TWITTER ~]$ msynctool --addmember Blackberry barry-sync
[hmazzeo@TWITTER ~]$ msynctool --addmember Blackberry evo2-sync
[hmazzeo@TWITTER ~]$ msynctool --showgroup Blackberry

[hmazzeo@TWITTER ~]$ msynctool --configure Blackberry 1

Ahi busco la linea que diga

Device xxxxxxxxx 1 1

y reemplazo el xxxxxxxx por nuestro numero de PIN*.

* Para encontrar el numero de PIN de nuestro dispositivo vamos a herramientas de configuracion -> Estado

Grabamos el archivo.

4º) Conectamos la blackberry por USB y ejecutamos los siguientes comandos:

[hmazzeo@TWITTER ~]$ evolution --force-shutdown
[hmazzeo@TWITTER ~]$ msynctool --sync Blackberry

Estos comandos son los que debemos ejecutar siempre para sincronizar nuestro equipo.

Hernan Mazzeo

miércoles, 30 de septiembre de 2009

NAGIOS 3.x - ARGUMENTOS HABILITADOS PARA NRPE

En muchas ocasiones tendremos que ejecutar un comando creado por nosotros al cual tenemos que agregarle argumentos para chequear:

Ejemplo:

/home/commands/check_nrpe -H 192.168.0.2 -p 5666 -c check_cimage -a 1233 122

Esto nos devolverá error porque no soporta argumentos.

para habilitar los argumentos enviados por NRPE cuando se compile nrpe se debe ejecutar con la siguiente instrucción:

./configure --enable-command-args

básicamente esto lo pongo porque me trajo muchos dolores de cabeza y se que lo voy a volver a necesitar y me voy a volver a olvidar.

Hernan Mazzeo

HOW-TO - CREANDO UN PLUGIN PARA NAGIOS

El nagios ya tiene varios plugins que se pueden descargar desde la página oficial.
No obstante en muchos casos tenemos que realizar chequeos especificos que no se pueden realizar  con los plugins genericos.
Por eso y porque un compañero vino hoy a preguntar como carajo hacía para hacer un chequeo que le habíamos pedido (Pepo, nuestro experimento fue un exito).

Los script pueden realizarse en cualquier lenguaje que pueda ejecutarse desde consola.

La lógica se puede hacer con un script común teniendo en cuenta que lo mas importante es lo que muestra en la salida y el exit que tenga siguiendo las relaciones de :

exit 0 - OK
exit 1 - WARNING
exit 2 - CRITICAL

Un ejemplo en bash para chequear si se están almacenando correctamente las imagenes de un determinado dispositivo:

#/bin/bash

#Le paso como argumento el nombre del monitor

MONITOR=$1
CMINIMA=$2
DIR_TEMP="/home/commands/tmp";

USER="root"
PASS="password"
BD="base"

#Obtengo el ID de la Camara
IDCAM=`echo "SELECT Id FROM tabla1 WHERE Name = '${MONITOR}'" | /usr/bin/mysql -u $USER -p$PASS -D $BD --skip-column-names`


#Con el ID de la camara saco el ultimo evento cerrado y la cantidad de imagenes

UECLOSE=`echo "select Frames from tabla2 where MonitorId='${IDCAM}' and EndTime is not null order by StartTime desc limit 1" | /usr/bin/mysql -u $USER -p$PASS -D $BD --skip-column-names`

UECLOSEDATE=`echo "select StartTime from tabla2 where MonitorId='${IDCAM}' order by StartTime desc limit 1" | /usr/bin/mysql -u $USER -p$PASS -D $BD --skip-column-names`

UE=`echo "select Id from Events where MonitorId='${IDCAM}' order by StartTime desc limit 1" | /usr/bin/mysql -u $USER -p$PASS -D $BD --skip-column-names`
UESTORE=`cat $DIR_TEMP/ULTIMO_VENTO_$IDCAM`;

if [ $UE -eq  $UESTORE ]
then

        UFTAM=`du -sk /var/www/html/events/${IDCAM}/${UE} | awk '{print $1}'`;


        AFTAM=`cat $DIR_TEMP/GRABA_CAM_$IDCAM`;

        echo $UFTAM > $DIR_TEMP/GRABA_CAM_$IDCAM

        if [ $UFTAM -eq  $AFTAM ]
                then
                RESPONDE="7";

     else
                RESPONDE="9";
        fi
else
        UFTAM=`du -sk /var/www/html/events/${IDCAM}/${UE} | awk '{print $1}'`;
        echo $UFTAM > $DIR_TEMP/GRABA_CAM_$IDCAM
        RESPONDE="9";
fi

#echo "---------------------------";
#echo "DEBUG";
#echo "---------------------------";
#echo "ULTIMO EVENTO" $UESTORE
#echo "EVENTO ACTUAL" $UE
#echo "TAMANO ANTERIOR" $UFTAM
#echo "TAMANO ACTUAL" $AFTAM
#echo "ESTADO DE GRABACIONES" $RESPONDE;
#echo "---------------------------";


echo $UE > $DIR_TEMP/ULTIMO_VENTO_$IDCAM

if [ $RESPONDE -eq 9 ]
then

        if [ $UECLOSE -lt $CMINIMA ]
        then
                 echo "ALERTA - ${UECLOSE} IMAGENES EN EL ULTIMO EVENTO CERRADO";
        exit 1

                echo "OK - ${UECLOSE} IMAGENES / ${UECLOSEDATE} FECHA ULTIMO EVENTO";
                exit 0

        else
                echo "OK - ${UECLOSE} IMAGENES / ${UECLOSEDATE} FECHA ULTIMO EVENTO HM";
                exit 0
        fi
else
        RCAM = `/usr/local/bin/zmdc.pl restart zmc -m $IDCAM`;
        echo "ALERTA - UE:${UESTORE} / ${UECLOSEDATE} FECHA ULTIMO EVENTO";
        exit 2
fi


Esto lo ponemos dentro de un archivo que se situará (en instalación default) /usr/local/nagios/libexec/
Se le darán permisos de ejecución correspondientes y se lo asociará al grupo que lo pueda ejecutar sin problemas.

Una vez realizado esto se debe generar el comando:

/usr/local/nagios/objects/commands.cfg

define command{
command_name check_cimage
command_line /home/commands/check_cimage $ARG1$ $ARG2$
}


Con eso se realizará el chequeo que necesitemos sin problemas.


Hernán Mazzeo