Archivo de la categoría ‘Linux’

Crear iconos gd2 para usar con Nagios

Bueno, aún no he publicado todo lo que tengo en borradores, pero tengo que ponerme al día.

Esta vez, vamos a crear ficheros .gd2 para poder usarlos con nagios y nos sea más bonito y nuestros hosts sean más reshulones en la vista “map” xD.

Lo primero crear una imagen PNG con el icono que queremos crear con un tamaño de 45x45px.

Instalar:

apt-get install libgd-tools

Ejecutar:

pngtogd2 archivo.png archivo.gd2 0 1

Y, por último:

Subir los dos archivos a share/images/logos.
Ya podemos añadir “icon image archivo.png” y “statusmap_image archivo.gd2” a nuestros hosts.

Nota: Si queréis que check_mk los muestre hay que subir los .PNG donde lo tengamos instalado.
En mi caso:
/usr/share/check_mk/web/htdocs/images/icons/

Avisos Nagios en Telegram – Debian 7

nagiostelegram
Siguiendo el hilo del servidor nagios con avisos telefónicos que montamos en mis ultimas entradas, ahora vamos a implementar avisos por telegram, usando Telegram-cli, así ademas de recibir la llamada, tendremos información detallada de que ocurre sin tener que conectarnos al nagios.

Lo primero es instalar las dependencias necesarias para telegram-cli

apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev python2.7-dev make git

Y clonar el repositorio de telegram-cli, yo lo haré en mi carpeta home

cd home
git clone --recursive https://github.com/vysheng/tg.git && cd tg
./configure

Si no ha dado ningún error podemos compilar.

make

Al terminar comprobaremos que funciona correctamente con:

/home/tg/bin/telegram-cli -k /home/tg/tg-server.pub -W -e "msg <nombretelegram> probando"

La primera vez que lo ejecutemos nos pedirá que introduzcamos un numero de teléfono, importante no olvidar el código de país, para españa +34.
Nos llegara un mensaje con el código que debemos de introducir.
Este paso se tendrá que repetir con todos los usuarios que vayan a usar telegram-cli, lo que quiere decir que si estamos con root, tendremos que cambiar al usuario nagios y ejecutar telegram-cli para que nos pida nuevamente otro código.

Ahora vamos a la parte Nagios.

Tenemos que editar los siguientes archivos: commands.cfg y contacts.cfg

En commands.cfg añadiremos lo siguiente (comprobando que la ruta de telegram-cli y tg-server.pub sean correctas)

#Telegram
define command{
	command_name	notify-host-by-telegramcli
	command_line	/home/tg/bin/telegram-cli -k /home/tg/tg-server.pub -WR -U root -D -e 'msg $_CONTACTTG$ $NOTIFICATIONTYPE$ Host : $HOSTNAME$ is $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ @ $LONGDATETIME$'
	}		
 
define command{
	command_name	notify-service-by-telegramcli
	command_line    /home/tg/bin/telegram-cli -k /home/tg/tg-server.pub -WR -U root -D -e 'msg $_CONTACTTG$ $NOTIFICATIONTYPE$ Host : $HOSTNAME$ Address: $HOSTADDRESS$ - Service : $SERVICEDESC$ is $SERVICESTATE$ Additional Info: $SERVICEOUTPUT$ @ $LONGDATETIME$'
	}

En contacts.cfg añadimos:

define contact{
contact_name telegram-cli
_tg nombredelcontacto ; Nombre de telegram al que irán dirigidos los mensajes, si tiene espacios hay que usar "_"
alias pruebas
service_notification_period 24x7
host_notification_period 24x7
service_notification_options c
host_notification_options d
service_notification_commands notify-service-by-telegramcli
host_notification_commands notify-host-by-telegramcli
}

Y solo nos queda editar algún host o servicio y poner el contacto elegido, en mi caso “telegram-cli” aunque también es posible añadir notify-service-by-telegramcli y notify-host-by-telegramcli a un contacto ya existente, sin olvidar añadir el nombre de telegram con “_tg” y complementar notificaciones.

Por último reiniciamos el servicio y a comprobar que todo funcione.

service nagios restart

Instalar NTOP en Ubuntu server 14.04

Por necesidades del guion en la última semana hemos necesitado hacer uso de este tipo de aplicaciones.
Avisar que NTOP se dejó aparcado para ofrecer NTOPNG pero no es exactamente lo mismo, dejare aquí escrito el cómo por si en el futuro vuelvo a necesitarlo.
Lo vamos a instalar en un servidor dedicado con Ubuntu server 14.04 y de forma que yo lo entiendo, seguramente hay formas más resumidas o más estilizadas pero esto es personal :P

Actualizamos.

apt-get update && apt-get upgrade -uV

Instalamos el software necesario.

apt-get install libtool automake autoconf make build-essential python-dev subversion -y

Seguimos con las librerías necesarias.

apt-get install libpcap-dev libgdbm-dev zlib1g-dev libgeoip-dev libgraphviz-dev graphviz rrdtool librrd-dev -y

Visitando http://sourceforge.net/projects/ntop/files/ntop/Stable/ vemos que la última versión estable antes de pasar a ser ntopng es la 5.0.1 , será la que usaremos.

cd ~
wget http://sourceforge.net/projects/ntop/files/ntop/Stable/ntop-5.0.1.tar.gz

Descomprimimos y entramos dentro de la carpeta.

tar xvfz ntop-5.0.1.tar.gz
cd ntop-5.0.1

Configuramos, compilamos e instalamos.

./autogen.sh
make
make install

Creamos un nuevo usuario en el sistema y cambiamos el propietario de las carpetas.

useradd -r -s /bin/false ntop
chown -R ntop:ntop /usr/local/share/ntop /usr/local/lib/ntop /usr/local/var/ntop

Actualizar los links y la cache de las librerías compartidas.

/sbin/ldconfig

Y lanzamos el comando por fin.

ntop

Nos pedirá la contraseña para el usuario administrador y una vez establecida podremos entrar por http://ipdelservidor:3000

Errores típicos:

Si nos fijamos en la consola veremos:

**ERROR** RRD: Disabled – unable to create base directory (err 13, /usr/local/var/ntop/rrd)

Para solucionarlo:

mkdir /usr/local/var/ntop/rrd
chmod 0777 /usr/local/var/ntop/rrd

En Utils –> RRD Alarms ntop Python Configuration Error

apt-get install python-setuptools
easy_install Mako

ntop

PD: En un primer momento para probar se instaló en una máquina virtual, pero visto como consume recursos, lo hemos dejado en un servidor dedicado.

Instalar Nagios en Debian 7 – Parte II

En esta parte de la guía nos vamos a centrar en configurar nuestro Nagios para que sea capaz de realizar llamadas VoIP.
Esto surge de la necesidad de poder ser avisado de una forma de la que no tengamos que estar revisando el correo constantemente.
Así que si estáis dispuesto a realizar el sacrificio espero que os lo paguen muy bien en el trabajo, por que si no… lo siento por vosotros.

Importante mencionar que necesitamos una cuenta de algún proveedor VoIP, ya que sin ella se hará imposible :P

Vamos a usar PJSIP/PJSUA así que empezamos instalando subversion y nos copiamos localmente el repositorio de pjproject.

apt-get install subversion
svn checkout http://svn.pjsip.org/repos/pjproject/trunk

Instalamos las dependencias necesarias

apt-get install build-essential automake autoconf libtool libasound2-dev libpulse-dev libssl-dev libsamplerate0-dev libcommoncpp2-dev libccrtp-dev libzrtpcpp-dev libdbus-1-dev libdbus-c++-dev libyaml-dev libpcre3-dev libgsm1-dev libspeex-dev libspeexdsp-dev

Nos vamos al directorio donde hemos descargado el repo y configuramos, compilamos e instalamos:

cd trunk
./configure && make dep && make clean && make && make install

Copiamos el ejecutable en /usr/bin/

cp pjsip-apps/bin/pjsua-i686-pc-linux-gnu /usr/bin/pjsua

Configurar pjsua.

Creamos el archivo de configuración llamado pjsuarc en /etc con la siguiente plantilla (los detalles dependerán del proveedor voip):

nano /etc/pjsuarc
--null-audio
--registrar sip:IPSERVIDOR:PUERTO
--realm=*
--id sip:<username>@<IPSERVIDOR>:PUERTO
--username <username>
--password <password>

Ahora podemos probar a realizar una llamada, y si todo funciona bien podemos seguir.

/usr/bin/pjsua --config-file=/etc/pjsuarc sip:<TELEFONOALQUELLAMAR>@<IPSERVIDOR>:PUERTO

Volvemos con Nagios, recordando que los archivos de configuración estan en la carpeta:

/usr/local/nagios/etc/objects

Necesitamos editar commands.cfg y contacts.cfg.

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

Y añadir al final

define command{
        command_name  notify-host-by-sip
        command_line  (sleep 30 && echo q) | /usr/bin/pjsua --config-file=/etc/pjsuarc sip:$CONTACTEMAIL$
}
define command{
        command_name  notify-service-by-sip
        command_line  (sleep 30 && echo q) | /usr/bin/pjsua --config-file=/etc/pjsuarc sip:$CONTACTEMAIL$
}

Ahora añadimos el contacto

nano /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name  user_sip
        alias  useralias
        service_notification_period  24x7
        host_notification_period  24x7
        service_notification_options  c
        host_notification_options  d
        service_notification_commands  notify-service-by-sip
        host_notification_commands  notify-host-by-sip
        email  TELEFONOALQUELLAMAR>@<IPSERVIDOR>:PUERTO
}

Y con esto hemos acabado, solo nos quedaría añadir como contacto en nuestros hosts o servicios el usuario “user_sip” y ya podremos recibir los avisos en el teléfono.
Nota: Se puede complicar un poco más, haciendo que al descolgar nos reproduzca una grabación, en mi caso con solo ver la llamada me basta ya que inmediatamente puedo entrar y ver donde esta el problema.

Instalar Nagios en Debian 7 – Parte I

Buenos días, esta entrada no es más que para recordar como he podido llevar a cabo una instalación limpia de Nagios.
Va a constar de dos partes, una para instalar Nagios 4.0.8 y otra más especial de la que no he encontrado nada que funcione a día de hoy para poder recibir avisos telefónicos.
Nota: Acaba de salir la versión 4.1.1 pero he preferido omitirla, en este tipo de cosas no nos la podemos jugar :)

Necesitamos instalar los siguientes paquetes:

Apache2
PHP 5
El compilador GCC y las librerias de desarrollo
Las librerias GD

Empezamos con el terminal:

apt-get -y update
apt-get -y install apache2 libapache2-mod-php5 build-essential libgd2-xpm-dev

Creamos el usuario nagios y le asignaremos una contraseña:

useradd -m -s /bin/bash nagios
passwd nagios

Añadimos el nuevo usuario en el grupo nagios

usermod -G nagios nagios

Creamos el nuevo grupo nagcmd para alojar los comandos usados por la interfaz web.

groupadd nagcmd

Añadimos el usuario en el grupo nagios

usermod -a -G nagcmd nagios

También en el grupo apache

usermod -a -G nagcmd www-data

Descargar Nagios y sus Plugins

Para mantener un poco el orden si no existe aun, vamos a crear una carpeta.

mkdir downloads 
cd downloads

Descargamos via wget nagios-core y sus plugins:

wget http://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.8/nagios-4.0.8.tar.gz
wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Descomprimimos los paquetes descargados y accedemos al nuevo directorio:

tar xzf nagios-4.0.8.tar.gz
cd nagios-4.0.8

Ejecutamos el script de configuración, pasándolo por el grupo que hemos creado nagcmd

./configure --with-command-group=nagcmd

Compilamos el código fuente:

make all

Instalamos los binarios, los scripts de inicio y los archivos de ejemplo.

make install
make install-init
make install-config
make install-commandmode

Configurar al Interfaz Web

Ejecutaremos el script install-webconf desde el directorio ….downloads/nagios-4.1.1

make install-webconf

Asignaremos el usuario nagiosadmin a la interfaz web de nagios. Nos pedirá una contraseña que sera usada para acceder vía web.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Reiniciamos el servicio Apache

/etc/init.d/apache2 restart

Compilar e Instalar Plugins

Volvemos al directorio donde teníamos el archivo descargado de los plugins, lo descomprimimos y accedemos al directorio.

tar xzf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1

Compilamos e instalamos los plugins

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Ya esta todo listo, así que preparemos el terreno para que en el próximo reinicio arranque todo automáticamente.

Crearemos un enlace simbólico con el comando ln, para que arranque el servicio al encender nuestra máquina.

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Comprobaremos que toda la configuración es correcta.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Si no devuelve ningún error ya podemos arrancar el servicio.

/etc/init.d/nagios start

Seguimos en Instalar Nagios en Debian 7 – Parte II

Mostrar troncales sip en la dashboard de Elastix

Si después de dar de alta a tus extensiones sip y a tus troncales SIP en elastix tu dashboard te indica que todo son extensiones, existe una forma rápida de arreglarlo.
Antes:

pre

Editando el archivo index.php que se encuentra en:

/var/www/html/modules/dashboard/applets/CommunicationActivity/
(No olvidar hacer backup)
Tenémos que buscar lo siguiente:

            if (preg_match("/^\s*(.+)\s+((\d{1,3}(\.\d{1,3}){1,3})|\(null\))\s+\(\D\)\s+\d{1,3}(\.\d{1,3}){1,3}\s+\d+\s+\(?\D?\)?\s+(\D+)/",$line,$arrToken)) {
                $name = explode("/",$arrToken[1]);
                if (stripos($arrToken[6], 'OK') !== FALSE) { // estado OK
                    if (in_array($name[0],$arrTrunks)) // es una troncal?, registrada

y reemplazar por:

if(eregi("^(([[:alnum:]_.-]*)[[:alnum:]_.-/]*)[[:space:]]*([[:alnum:]\.\(\)]+)[[:space:]]*([a-zA-Z]*)[[:space:]]*([a-zA-Z]*)[[:space:]]*([a-zA-Z]*)[[:space:]]*([0-9]+)[[:space:]]*([[:alnum:]\ \(\)]+)$",$line,$arrToken)){
                    if(eregi("OK",$arrToken[8])){ // estado OK
                        if(in_array($arrToken[2],$arrTrunks)) // es una troncal?, registrada

Y este es el resultado que siempre debió de aparecer

post

Ya lo he dicho anteriormente, pero hay que hacer backup por si algo no funciona como es debido.

De todas formas aquí, estan el original y el modificado

Sensor de temperatura SNMP con Raspberry y Cacti

Actualizado 31-8-2015: Por problemas en la sd, he tenido que seguir los pasos, y he de apuntar que he tenido que usar la versión de raspbian “2013-09-25-wheezy-raspbian”, con la ultima disponible tenia que comenzar todo de nuevo, y no apetecía.
También apuntar que las librerias DHT estan ya anticuadas, pero cumple mis necesidades.
Hoy me toca apuntarme como ha sido los pasos hasta llegar a tener lo que realmente necesitaba.
Monitorizar la temperatura y humedad en nuestro Cacti.
Intentare recopilar y traducir todos los pasos que he tenido que dar, de los cuales la mayoría han sido guiados por DJs Attempt y Adafruit

Lo primero, materiales y conexión.
Anteriormente use un DHT11, en esta ocasión he optado por un DHT22, que acababa de recibir.
Para mi proyecto no ha merecido la pena el desembolso extra pero tenia curiosidad.
1xDHT22
1xResistencia 10K
1x Raspberry Pi con raspbian wheezy corriendo y con el ssh habilitado (por comodidad xD)

Lo conectamos tal que así:
dht22wiring
Leer el resto de esta entrada »

Monitor de temperatura y humedad con Raspberry Pi

Buenas, ante todo dar las gracias a Chris Baume, de su blog he seguido los pasos indicados y funciona perfectamente.

No es exactamente lo que yo necesito, pero por algo he de empezar.

Necesitamos:
Sensor de temperatura y humedad, DHT11.
Una resistencia de 10k
Raspberry Pi con raspbian.

Lo conectamos siguiendo el siguiente esquema.

dht11wiring

RPi 3,3 VCC (pin 1) -> DHT11 pin 1
RPi GPIO4 (pin 7) -> DHT11 pin 2
RPi GND (pin 6) -> DHT11 pin 4

Seguir su manual es sencillo, pero me gustaría tenerlo aquí apuntado con mis propias palabras por si algún día ocurre algo:)
Leer el resto de esta entrada »

Poner contraseña a root – Raspberry Pi.

Abrimos un terminal en la raspberry y tecleamos.

sudo su
passwd

Y agregamos la password que queramos.

Útil para personas como yo,que muy de vez en cuando necesito conectar por sftp a editar archivos mas fácilmente.

Y por que no, para no tener que andar poniendo sudo siempre :P.

 

Aps! no solo sirve para raspberrys XD

Ubuntu 11.04 Natty Narwall

Pues esta en la calle y esta descargada…..
En cuanto la queme le dare un vistazo pero ese gran cambio que han echo me cuesta de tragar, me cuestaaaaaa.
Quizas no sea tan malo pero ya editare esto.

Para descargar go to : http://www.ubuntu.com/download/ubuntu/download
Estoy seguro merecera la pena probarlo :)

Edito: Me sigo quedando con Gnome clásico xD, basta con elegirlo al iniciar sesión o en las opciones de pantalla de inicio.

Archivos
Categorías

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR