martes, 24 de enero de 2012

Nagios..... sistema de monitoreo


Nagios
En esta ocasión traigo bajo la mano a Nagios un sistema que me ha ayudado a monitorear servicios y equipos de manera remota, podemos ver si un servicio se cae, su disco duro está a reventar o simplemente echarle un ojo, esto es muy útil para cuando tenemos a cargo más de un servicio, no vamos a estar haciendo ping manualmente a cada uno de ellos.

Nagios es un sistema de monitoreo y lo vamos a instalar en debian e hijos (ubuntu).

Paquetes necesarios

Es importante que tengamos estos paquetes instalados antes de instalar nagios.

Servidor Apache
PHP
Compilador GCC y sus respectivas librerías
librerías de desarrollo GD 

Pero como suponemos que nuestro debian está en blanco , procedemos con la instalación de paquetes (saltarse este paso si ya los tienen)

sudo apt-get install apache2

sudo apt-get install libapache2-mod-php5

sudo apt-get install build-essential

sudo apt-get install libgd2-xpm-dev

Para este momento ya tenemos todas las piezas, sólo falta crear el usuario, grupo que va a trabajar en nagios, para esto tenemos que hacernos root ya sea:

su -   "o"  sudo -s 

creamos la cuenta de nagios y su contraseña respectiva.

/usr/sbin/useradd -m -s /bin/bash nagios

passwd nagios


Creamos el  grupo nuevo nagcmd esto nos va a permitir trabajar nagios en la interfaz web, los dos usuarios nagios y apche los debemos agregar a este grupo.

/usr/sbin/groupadd nagcmd 
/usr/sbin/usermod -a -G nagcmd nagios 
/usr/sbin/usermod -a -G nagcmd www-data


Ahora necesitamos bajar a Nagios y a sus plugins, son dos archivos diferentes, yo aconsejo crear una carpeta llamada nagiosdw para descargar estos dos elementos.

mkdir nagiosdw
e ingresar a ella 

cd nagiosdw  o crearla desde modo gráfico con click derecho "create folder" e ingresar a ella.

ya dentro de esta carpeta procedemos a descargar los dos archivos:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz

o ir de modo web a el sitio de descargas: http://www.nagios.org/download

Descomprimimos nagios.

tar xzf nagios-3.2.3.tar.gz cd nagios-3.2.3

Dentro de esta carpeta viene un script que debemos correr para la instalación, el cual debemos agregar el grupo que previamente creamos.

 ./configure --with-command-group=nagcmd si hubiese algún problema debemos de darle permisos chmod +x configure

Ahora compilamos.
make all

Instalamos los binarios, configuraciones, arranque y la interfaz web.

make install

make install-init

make install-config

make install-commandmode

make install-webconf


Necesitamos crear una la cuenta de usuario con la cual vamos a entrar a administrar nuestros sistemas por medio de la interfaz web

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

Es necesario reiniciar apache para que surtan efectos estos cambios.

/etc/init.d/apache2 reload


Ahora es turno de los plugins, después de bajar el archivo, lo descomprimimos.

tar xzf nagios-plugins-1.4.11.tar.gz

Entramos a la carpeta decomprimida cd nagios-plugins-1.4.11

Procedemos con la compilación del script.
./configure --with-nagios-user=nagios --with-nagios-group=nagios 

make 

make install

Creamos el enlace simbólico para que reconozca de donde arrancar.
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verificamos que no exista ningún error en lo que hicimos de la siguiente manera.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Si no hay errores entonces procedemos a darle vida al engendro.
/etc/init.d/nagios start
Ahora viene lo bueno ingresamos por medio de explorador web a :
http://localhost/nagios/
y aquí es donde usamos nuestro usuario "nagiosadmin" y la contraseña que decidimos en ese momento.

Tendremos trabajando a Nagios y podremos observar a nuestros dispositivos o servicios.

Ahora que ya tenemos corriendo a Nagios, viene lo importante:

1.-¿Como ingreso servicios?
2.-¿Como puedo enterarme si se cae uno de ellos sin estar cada 5 minutos pegado a la pantalla?

Para ingresar un cliente, mejor explicación que un ejemplo, este se hace un archivo en un editpad, con vi, gedit o cualquier editor de texto de tu agrado, la terminación debe de ser "cfg" y este debe de estar alojado en una carpeta que ya debimos haber creado en la siguiente ruta:  /usr/local/nagios/etc/objects/carpeta_nueva

#####DEFINICION DEL HOSTGROUP
define hostgroup{
hostgroup_name         google
alias                  Cliente_Google
}
###### DEFINIR EL HOST
define host{
          use              generic-switch
          host_name        google
          alias            Cliente_Google
          address          74.125.113.99
          icon_image       google.png
          statusmap_image  google.png
          hostgroups       google
          notifications_enabled 1
}

########DEFINIR EL SERVICIO DE PING (PARA ESTE EJEMPLO)(PUEDE SER HHTP,HTTPS ETC)

define service{
         use                   generic-service
       host_name             google
         service_description   PING
         check_command         check_ping!200.0,20%!600.0,60%
         normal_check_interval  5
         retry_check_interval   1
}

########DEFINIR OTRO HOST O UNA RAMIFICACION (EN ESTE EJEMPLO ES UNA CAMARA IP)
define host{
         use                    generic-switch
         parents                google
         host_name              cam1_google
         alias                  cam1_google
         address                74.125.113.99
         icon_image             dcs2121.png
         statusmap_image        dcs2121.png
         hostgroups             google
         notifications_enabled  1
     }
######DEFINIR EL SERVICIO DEL HOST ANTERIOR
define service{
         use                   generic-service
         host_name             cam1_google
         service_description    HTTP
         check_command          check_http! -p 80
         notifications_enabled   1
#############fin del archivo solo un host y su cámara
        
Lo que pasó es que creamos primero un hostgroup, después el host y el switch, estos deben de seguir jerárquicamente un orden, si después creas otro archivo no es necesario crear la línea de hostgroup, claro si es otro diferente si tendrás que crearlo.

Creamos el nombre de host que en este ejemplo es "san google" con su ip, le pusimos un servicio de ping, cuyos valores se pueden cambiar, así como el intervalo de revisión y el número máximo de checkeos, es más pueden ponerse más cosas, pero esto es lo básico.

Para que estos nuevos servicios aparezcan en nagios tienes que modificar el archivo localizado en  /usr/local/nagios/etc/ llamado nagios.cfg y ya sea que agregando de forma individual como aparece aqui:
# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.
# You can split your object definitions across several config files
# if you wish (as shown below), or keep them all in a single config file.

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/carpeta_nueva/archivo_nuevo.cfg

o toda la carpeta
# directive as shown below:

#cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
#cfg_dir=/usr/local/nagios/etc/objects/carpeta_nueva

Después de todo esto es necesario reiniciar el servicio.

/etc/init.d/nagios restart

Las notificaciones son juy importantes para que no estemos revisando nuestro monitor cada 5 minutos, nos llegará por correo si un servicio se cae o le pasa algo "malo", tenemos que entrar a editar con vi o nano el archivo contacts.cfg, se hace de la siguiente manera:

vi /usr/local/nagios/etc/objects/contacts.cfg

Y en lugar de nagios@localhost colocamos la dirección de correo que hayamos establecido como    monitor, de esta manera Nagios nos informará por este medio como van las cosas.

Espero les haya sido útil la in formación.

saludos.......

martes, 13 de diciembre de 2011

Instalador de un servidor Web y phpMyAdmin

Algunas aplicaciones requieren el servicio web para poder desplegarse, y como no siempre tenemos un hosting para alojarlas ahi, a veces tenemos la necesidad de instalar un servidor web para poder hacer pruebas o dejarlas ahi definitivamente, que mejor que ahorrarnos unos billetes y tener el control de nuestro servidor.

Empecemos por los requisitos y dependencias vitales para la instalación de este software.

 1.-Servidor apache .

2.-PHP.

3.-Base de datos Mysql.

Teniendo una distribución familia de debian empezamos la instalación de paquetes y dependencias de la siguiente manera:

sudo apt-get install apache2 php5 libapache2-mod-php5 mysqlserver mysqlclient  php5-mysql




Instala el servidor apache, php, cliente mysql y servidor de base de datos, así como dependencias entre estos.

Aparecerá al instalar el servicio de mysql dos rubros muy importantes, el primero es seleccionar que servidor web utilizar, y en este caso es apache y la otra es la contraseña de la base de datos de mysql como root, esto nos va a servir para administrar mysql en un futuro y poder ingresar bases de datos o modificarlas.

 Una vez instalado, tenemos que hacer la prueba de que si está funcionando, abriendo un navegador web y colocando en la barra de direcciones del explorador la dirección; http://localhost o 127.0.0.1, si esto esta bien entonces nos aparecerá una pantalla con la leyenda: 

It works!

This is the default web page for this server.
The web server software is running but no content has been added, yet.

Hasta aquí ya tenemos nuestro servidor web funcionando. 

Ahora la prueba para mysql, abrimos una terminal tecleamos mysql -p y aquí es donde nos pide el password que previamente ingresamos en la instalación.

Entonces nos debe de aparecer el prompt como mysql> y de ahi tecleamos
show databases; (crtl+enter) nos desplegará las bases de datos de default, ya que vemos eso le damos exit para continuar con lo demás.

La prueba del php solo haz un archivito en gedit o vi según tus preferencias, no olvides guardarlo con la terminación php, como este de ejemplo.
 <html>
<body>
<?php
$myvar = "Hola comparte tu conocimiento y forma un mejor mundo";
echo $myvar;
?>
</body>
</html>  
Lo ingresas en la barra de direcciones la ruta de tu archivo y debe de mostrarlo, ahi terminamos la prueba de php.

Ahora instalamos phpMyAdmin, el cual nos va a servir para interactuar de manera gráfica y más "cómoda" con nuestras bases de datos.
con el comando: sudo apt-get install phpmyadmin



Cuestión de gustos.


 Ya sea gráfico o desde consolita

Hasta aquí tenemos nuestro servidor web con phpMyAdmin corriendo para poder instalar las aplicaciones que así lo requieran.

Iniciar/detener/reiniciar servicios.
Los comandos respectivos para esta tarea son:
/etc/init.d/httpd  "comando"
 /etc/init.d/mysql "comando"

Donde el comando en este ejemplo puede ser stop, start o restart .

Puede haber cambios como en lugar de httpd sea apache 2 o en mysql mysqld por ejemplo, tienen que revisar en caso de no funcionar.


Las diferencias con las distribuciones del sombrerudo rojo.

Abres una consolita y como root trabajas, primero instalando el servidor web, tecleando:
yum groupinstall "Web Server" Siguiendo el orden de la instalación, ahora instalamos el servidor mysql tecleando:yum groupinstall "MySQL Database"

La forma de iniciar klos servicios se marca de esta manera tecleando en la consola lo siguiente:
para apache    service httpd start
para mysql                                                                                           service mysqld start
Instalamos phpMyAdmin teclenado en la consola: yum install phpMyAdmin y volvemos a reiniciar los servicios:
service httpd restart
service mysqld restart
hacemos la prueba directamente colocando en la barra de direcciones del explorador: http://localhost/phpmyadmin.

¿Qué pasa si se apaga la máquina?  Tengo que iniciar apache cada vez que la enciendo.

Bueno podemos configurar para que inicie en modo automatico tecleando desde la consola:
chkconfig --level 345 httpd on, también con mysql  chkconfig --level 345 mysqld on.


Listo, espero les sirva.

miércoles, 7 de diciembre de 2011

Configurar tarjetas de red en Red Hat

Para todos los que estamos acostumbrados a utilizar la ruta de /etc/network/interfaces y de repente nos encontramos con una distribución del sombrerudo rojo e hijos y no se conecta a internet, no demos de saltos, solo reconfiguremos los parámetros de red de la siguiente manera.



1.- Con la forma de gui gráfica y facilita, tecleamos en consola:



system-config-network-tui

seleccionamos la tarjeta eth0 colocamos parámetros de nuestra red. Por lo general son: ip 192.168.1.x la ip de tu máquina si es estática la opción si es DHCP cuida que el modem tenga habilitado el servicio DHCP.

netmask 255.255.255.0

gateway 192.168.1.254

dns 192.168.1.254

dns2 8.8.8.8

Esto puede cambiar dependiendo los valores de la red en donde estes.

Ahora si te gusta la consola solo dirigete a:

/etc/sysconfig/network-scripts y editamos con vi de esta manera:

vi ifcfg-eth0

colocando valores como los mostrados a continuación.

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.1.x (tu ip)

NETMASK=255.255.255.0

GATEWAY=192.168.1.254


También si es posible asignar nombre al host ingresando a /etc/sysconfig/network habilitando:

NETWORKING=yes

HOSTNAME=nombre.dominio (nombre)

Deben coincidir con lo que editemos en /etc/hosts

127.0.0.1 localhost.localdomain localhost

192.168.1.x nombre.dominio nombre (tu ip y nombre)

Ya sea de cualquier forma debes de reiniciar la red para que los cambios surtan efecto, de una de las siguientes maneras.

service network restart o /etc/init.d/network restart

Comprobamos mediante un ping.

1.- Al gateway ping 192.168.1.254

2.- Si pasa entonces para afuera por ejemplo ping google.com

Ahora tu sombrerudo sistema ya esta conectado a internet.

Espero les sirva. saludos.