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
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 |
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:
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
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í:
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.
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.
Debe estar conectado para enviar un comentario.