Monitorizacion + SMS

Improvisa :: Informatica :: Monitorizacion   SMSEste manual te enseñara a crear paso a paso un servidor de monitorizacion de otra maquinas a traves del software para debian llamado mon.

El servidor tiene ademas la ventaja de enviar un mensaje al movil que configuremos con el texto tambien configurable a traves de la pasarela Alamin.Improvisa :: Informatica :: Monitorizacion   SMS

Lo unico que necesitaremos para crear este servidor sera un movil y empezar a teclear…

Si la monitorizacion de tu servidor en tiempo real es imprescindible, este articulo te vendra de perlas.

SERVIDOR DE MONITORIZACION CON SMS INTEGRADO

Bueno el capitulo lo indica todo, el servidor que he montado esta vez es una maquina que se encarga de monitorizar recursos en otras maquinas y si localiza algun error me manda un mensaje a mi movil.

Hardware utilizado:

Para la monitorizacion de los recursos he utilizado una maquina de lo mas simple que he encontrado. Un Pentium II a 300 Ghz con 64 mb de memoria y 3 gb de disco duro. Le sobran recursos. NECESARIO QUE TENGA PUERTO COM.

El telefono movil que estoy utilizando es un Nokia 7110, se que funciona a la perfeccion con Nokia 6210

Funciona tambien, aunque no lo he probado, con modem GSM o GPRS Siemens o un modem GSM Nokia 32 o un modem GSM Nokia Premicell o un modem GSM Wavecom (Probados por Andres Seco).

El cable que he utilizado para conectar el movil al puerto COM del ordenador es el original de Nokia RS 232 DLR-3P valido para telefonos 6210, 6250, 6310 y 7110. Lo he comprado en www.optize.es <http://www.optize.es/>.

Todos los telefonos que vayais probando y consigais que funcionen decidmelo por mail a la cuenta juanmi@planalfa.es <mailto:juanmi@planalfa.es>

y lo ire añadiendo a este manual.

La plataforma de nuevo ha sido Debian Woody. La version con la que he hecho el servidor ha sido la estable en este momento, la 3.0 r4.

Instalacion de Debian Woody.

La instalacion de Debian, como todas, esta vez he utilizado lo mas estable, Kernel por defecto y ningun paquete de BackPorts.

La instalacion completamente basica, no instalo nada durante el proceso de instalacion. Solamente el sistema base.

Instalacion del Telefono en el Ordenador

Bueno aqui esta el primer paso que debemos realizar, debemos bajarnos una aplicacioncita muy parecida a HyperTerminal de Windows, la necesitaremos para ir comprobando que las comunicaciones entre el telefono y ordenador van bien.

Todas la pruebas del manual estan realizadas con el telefono movil Nokia 6210. Cada uno de vosotros teneis que hacer esto ya que cambia con el telefono. Si vais a usar este podeis copiarlo sin hacer ninguna prueba.

El programa que tenemos que instalar es minicom, pues adelante:

sms:/# apt-get install minicom

No recuerdo si tiene alguna dependecia.

Una vez instalado comenzemos las configuraciones.

sms:/# minicom -s

┌─────[configuration]──────┐

Filenames and paths

File transfer protocols

Serial port setup

Modem and dialing

Screen and keyboard

Save setup as dfl

Save setup as..

Exit

Exit from Minicom

└──────────────────────────┘

Pinchremos la opcion Serial Port setup y nos saldra esta pantallita:

┌───────────────────────────────────────────────────────────────────────┐

A – Serial Device : /dev/ttyS0

B – Lockfile Location : /var/lock

C – Callin Program :

D – Callout Program :

E – Bps/Par/Bits : 19200 8N1

F – Hardware Flow Control : Yes

G – Software Flow Control : No

Change which setting?

└───────────────────────────────────────────────────────────────────────┘

Iremos seleccionando las variables que necesitamos.

La parte A indica en que puerto COM o ttyS al que tenemos conectado el cable que va al telefono. Yo en mi caso lo tengo al COM 0 (Acordaos que el primer numer es un 0, vamos que si teneis en vuestro ordenador 2 puerto com se llamaran COM 0 y COM 1 o ttyS0 y ttyS1).

De la parte B, C y D, no tocaremos nada. Es decir que si lo teneis cambiado poned lo que pone aqui.

La parte E, es la importante junto con la A claro. Aqui seleccionaremos la velocidad con la que nos comunicaremos con el movil, la paridad, el bit de stop y el numero de bits.

En la parte F pondremos YES

y en la G NO.

Para cambiar los datos basta con decirle, por ejemplo A y poner lo que necesitamos, y luego pulsar enter, si pulsamos ESC volveremos al estado anterior.

Una vez que tengamos todo cambiado bastara con pulsar ENTER para volver a la pantalla anterior.

┌─────[configuration]──────┐

Filenames and paths

File transfer protocols

Serial port setup

Modem and dialing

Screen and keyboard

Save setup as dfl

Save setup as..

Exit

Exit from Minicom

└──────────────────────────┘

Pulsaremos la opcion “Save setup as dfl” nos grabara las opciones como opciones por defecto.

Muy bien si pulsamos exit intentara la conexion con el movil:

┌───────────────────────┐

Initializing Modem

└───────────────────────┘

Despues de inicializado el modem nos saldra una pantalla donde podemos escribir, pongo los comandos utilizados, en negrita, para ver que el movil responde:

Welcome to minicom 1.83.1

OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n

Compiled o­n Nov 21 2001, 00:35:58.

Press CTRL-A Z for help o­n special keys

at

OK

ati

Nokia Mobile Phones

OK

ati2

SW05.01

OK

Perfecto, el ordenador se comunica con el movil a la perfeccion.

Os preguntareis para que necesitamos hacer todo esto, pues para sacar una linea que necesita alamin para comunicarse con el movil.

Aqui tengo que deciros que esto SOLO me ha funcionado con el movil 6210, NO funciona bien con el 7110, me refiero a la comunicacion de minicom con el telefono, pero con las mismas configuraciones que he dejado arriba, alamin lo hace funcionar a la perfeccion.

Bien saquemos la linea que necesita alamin.

Despues de quedarnos en la pantalla de arriba Pulsaremos CTRL A y luego la tecla Z y nos saldra un menu.

┌───────────────────────────────────────────────────────────────────┐

Minicom Command Summary

Commands can be called by CTRL-A <key>

Main Functions Other Functions

Dialing directory..D run script (Go)….G | Clear Screen…….C

Send files………S Receive files……R | cOnfigure Minicom..O

comm Parameters….P Add linefeed…….A | Suspend minicom….J

Capture o­n/off…..L Hangup………….H | eXit and reset…..X

send break………F initialize Modem…M | Quit with no reset.Q

Terminal settings..T run Kermit………K | Cursor key mode….I

lineWrap o­n/off….W local Echo o­n/off..E | Help screen……..Z

| scroll Back……..B

Select function or press Enter for none.

Written by Miquel van Smoorenburg 1991-1995

Some additions by Jukka Lahtinen 1997-1999

i18n by Arnaldo Carvalho de Melo 1998

└───────────────────────────────────────────────────────────────────┘

Bien pulsaremos la opcion “Quit with no reset.Q” y nos preguntara si queremos dejarlo sin resetearlo. SI.

Estaremos de nuevo en la linea de comandos de debian y ahi pulsaremos el siguiente comando:

sms:~# stty -g </dev/ttyS0

1:0:800008be:0:3:1c:7f:15:4:5:1:0:11:13:0:0:12:f:17:16:0:0:2f:0:0:0:0

:0:0:0:0:0:0:0:0:0

Esa es la linea que necesitamos. La copiaremos en algunarchivo para su posterior utilizacion. (Cuidado con el salto de linea)

Esta linea funciona a la perfeccion con los moviles 7110 y 6210 de Nokia, conectado al ttyS0. Si teneis uno de estos moviles os podeis saltar todos los pasos anteriores y usar la linea qu he dejado mas arriba.

Instalacion de ALAMIN.

Sigamos adelante instalando ALAMIN.

sms:~# apt-get install alamin-server alamin-client

Vale, perfecto ya tenemos instalado ALAMIN. Empezaremos a configurar la parte cliente.

sms:~# vi /etc/alamin/gsgc.conf

Lo unico que debemos cambiar obligatoriamente es la linea:

host gsm

y la cambiaremos por

host localhost

De todo lo demas no he tocado nada las configuraciones que deja por defecto en la parte cliente de ALAMIN.

Configuremos ahora la parte Servidor de ALAMIN.

sms:~# vi /etc/alamin/gsgd.conf

En este archivo debemos cambiar la linea:

gsmdevice at text /dev/gsm

por

gsmdevice at text /dev/ttyS0

o el puerto com que tengamos

Ademas debemos cambiar la linea que pone

sttystring

por

sttystring 1:0:800008be:0:3:1c:7f:15:4:5:1:0:11:13:0:0:12:f:17:16:0:0:2f:0:0:0:0

:0:0:0:0:0:0:0:0:0

Aqui pondremos la linea que nos dio el minicom, para esto lo necesitabamos.

NO tenemos que hacer mas cambios, probaremos directamente a mandarnos un mensaje al movil:

sms:~# gsgc –send 666424356 “Mensaje de prueba con SERVIDOR SMS”

¿Nos ha llegado?

Podemos ver los archivos de log:

sms:~# vi /var/log/alamin/gsgd-accounting.log

OUT,OK,queue,localhost 127.0.0.1,666424356,default,Thu Apr 21 13:45:20 2005,XX Mensaje de prueba con SERVIDOR SMS XX

OUT,OK,at,localhost 127.0.0.1,666424356,default,Thu Apr 21 13:45:34 2005,XX Mensaje de prueba con SERVIDOR SMS XX

Si os dais cuenta la primera linea es la que recoje la entrada del mensaje en el servidor y la segunda que ha conseguido enviarlo bien.

Instalacion de MON (Monitorizador de Red)

Bueno instalaremos mon de la siguiente forma:

sms:~# apt-get install mon fping

Muy bien ya lo tenemos instalado, ahora solo tenemos que configurar el archivo mon.cf:

sms:~# vi /etc/mon/mon.cf

En este archivo debemos configurar los recursos que queramos monitorizar, os dejo el siguiente manual para que podais hacerlo:

Mike Thompson Artworks

Para que mon utilize el movil para mandarnos el mensaje en caso de fallo debemos hacer lo siguiente:

Nos crearemos un archivo llamado alamin.alert y lo meteremos en la carpeta que tiene mon todas las alertas y meteremos el codigo de Andres Seco que dejo ahi abajo.

sms:~# vi /usr/lib/mon/alert.d/alamin.alert

#!/usr/bin/perl

#

# alamin.alert – GSM SMS alert for mon using Alamin GSM SMS Gateway

# v1.3 20010123

#

# Copyright (C) 2001, Andres Seco, AndresSH@alamin.org

#

# This program is free software; you can redistribute it and/or modify

# it under the terms of the GNU General Public License as published by

# the Free Software Foundation; either version 2 of the License, or

# (at your option) any later version.

#

# This program is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

# GNU General Public License for more details.

#

# You should have received a copy of the GNU General Public License

# along with this program; if not, write to the Free Software

# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

#

=head1 NAME

alamin.alert – GSM SMS alert for mon using Alamin GSM SMS Gateway

=head1 SYNOPSIS

B<alamin.alert> I<-p port> I<-m host> I<-i priority> I<-s service> I<-g group> I<-t time> I<-u>

=head1 DESCRIPTION

B<alamin.alert> calls gsgc (the Alamin GSM SMS Gateway client) to send

messages using selected priority.

More information o­n Alamin GSM SMS Gateway at http://alamin.sourceforge.net

=head1 PARAMETERS

-p port SMS gateway port (mapped to –port option of gsgc)

-m host SMS gateway host (mapped to –host option of gsgc)

-i priority priority (mapped to –priority option of gsgc)

=head1 EXAMPLE

line to be used inside mon.cf

alert alamin.alert -p 11201 -m gsm.domain.com -i 1 666111222 666111333

=head1 AUTHOR

The script was written by Andres Seco <AndresSH@alamin.org> based from a

template for an alert from Jim Trocki, trokij@transmeta.com

=cut

use Getopt::Std;

getopts (“p:m:i:s:g:h:t:l:u”);

$summary=<STDIN>;

chomp $summary;

$t = localtime($opt_t);

($wday,$mon,$day,$tm) = split (/\s /, $t);

my $destinations = join (',', @ARGV);

$ALERT = $opt_u ? “UPALERT” : “ALERT”;

my $texttobesent = “MON – “.$ALERT.”\nGroup: $opt_g\nService: $opt_s\nDate: $wday $mon $day $tm\nSummary: $summary”;

my @gsgcpars = ();

push @gsgcpars, “gsgc”;

if ($opt_p) {

push @gsgcpars, “–port”;

push @gsgcpars, $opt_p;

}

if ($opt_m) {

push @gsgcpars, “–host”;

push @gsgcpars, $opt_m;

}

if ($opt_i) {

push @gsgcpars, “–priority”;

push @gsgcpars, $opt_i;

}

push @gsgcpars, “–send”;

push @gsgcpars, $destinations;

push @gsgcpars, $texttobesent;

system @gsgcpars;

La forma de utilizar alamin en mon es la siguiente, os dejo mi archivo mon.cf para que veais como lo hace:

#

# Opciones globales

#

cfbasedir = /etc/mon

alertdir = /usr/lib/mon/alert.d

mondir = /usr/lib/mon/mon.d

maxprocs = 20

histlength = 100

randstart = 60s

#

# Privilegios de cada usuario

#

list: all

reset: root,admin

loadstate: root

savestate: root

#

# DEJAR LINEAS EN BLANCO ENTRE LAS LINEAS. Parte HOSTGROUPS Los grupos de

# hosts nos serviran para agrupar maquinas que requieran de un servicio

# de monitorizacion similar, agruparlas bajo un seudonimo, y utilizarlo

# para simplificar la definicion de monitores posteriormente.

hostgroup mailhost 85.35.23.90

hostgroup workstations 10.19.4.23 10.19.4.103

hostgroup wwwservers www.google.es www.yahoo.com

hostgroup ftpservers 85.123.144.23

hostgroup dnsservers 10.19.4.3

hostgroup mon 10.19.4.22

#

# Zona WATCH. Una linea watch con el nombre del hostgroup sobre el que se hara l

a

# monitorizacion. Dentro de esta, tantas secciones service como servicios

# queramos monitorizar, con sus parametros propios.

# Dentro de cada servicio tantos periodos como deseemos que definiran

# las acciones a tomar en caso de alarma.

#

# Servidores WEB

watch wwwservers

service http

description Ver si el servicio http funciona en webservers.

interval 1m

monitor http.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

# Estaciones de trabajo

watch workstations

service ping

description Ping contra estaciones de trabajo.

interval 1m

monitor ping.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

# Servidor de correo

watch mailhost

service smtp

description Ver si el servicio SMTP esta funcionando contra Servidores de Corr

eo.

interval 1m

monitor smtp.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

service pop3

description Ver si el servicio POP3 esta funcionando contra Servidores de Corr

eo.

interval 1m

monitor pop3.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

# Servidores FTP

watch ftpservers

service ftp

description Prueba conexiones ftp.

interval 1m

monitor ftp.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

# Servidores DNS

watch dnsservers

service dns

description Prueba conexiones DNS

interval 1m

monitor dns.monitor -zone arco2000.es -master 10.19.4.3

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

# Servidores MON

watch mon

service mon

description Prueba el servidor MON

interval 1m

monitor mon.monitor

allow_empty_group

period wd {Mon-Sun} hr {0am-24pm}

alert file.alert /var/log/mon.log

upalert file.alert /var/log/mon.log

alert alamin.alert -p 11201 -m localhost -i 1 662654765

upalert alamin.alert -p 11201 -m localhost -i 1 662654765

alertevery 45m

A mi mon me dio unos errores al intentar monitorizar, eran problemas de permisos, observad cada archivo que os vaya fallando y dadle unos permisos aceptables.

Sobre los tipos de monitores leeros el manual que os he dejado mas arriba. A mi me falta un monitorizador, el Terminal Services de Windows que no he conseguido por ningun sitio, si lo conseguis o podeis programarlo, poneos en contacto conmigo en juanmi@planalfa.es

Solo falta dar la gracias, sin ellos me hubiese sido imposible realizar el servidor y el manual:

Andres Seco (Programador del paquete ALAMIN) mil gracias Andres, sigue asi.

Alfonso de Microalcarria, me puso en contacto con Andres.

Daniel Espilez amigo y comercial de Vodafone, me ayudo a encontrar moviles viejos.

Agustin Calvo Flores, siempres estas ahi.

A vosotros que juntos mejoraremos este documento.

Muchas gracias a todos y que lo disfruteis.

Saludos.

Juanmi.

Print Friendly, PDF & Email