Anda di halaman 1dari 31

instalando nagios core 3.

2, plugins, nrpe, nscient-Ubuntu


LINUX Y GNU | HACE MS DE 1 AO 1 1

Buenos das Taringa, nuevamente yo aqu compartiendo con ustedes un nuevo material sobre la herramienta Nagios, esta ves ejecutndose sobre Ubuntu, los que me siguen saben que anteriormente cree un tutorial de nagios sobre Debian Squeeze. Pero que lastimosamente no aparecio en la home pero bueno esta dems decir eso, espero disfruten y aprendan de este tutorial, si esta ves no aparece en la home ya no publico nada -.Esta es una pequea gua de instalacin y configuracin de Nagios Core 3.2 en Ubuntu 10.4 Server, junto con los plugins del Nagios. SNMP, los addons NRPE e NSClient++, o FrontEnd Nuvola y el pnp4nagios para la gestin de grficos. Preparando el rea de trabajo Primero prepararemos el ambiente para recibir la instalacin del Nagios, por ende es necesario que este ya con el LAMP (Linux, Apache, MySql e PHP) en pleno funcionamiento. (En otros post mos encontraras estas informaciones) Cambiamos de usuario, para el usuario root: $ sudo -s Actualizamos el sistema y instalamos los siguientes paquetes (instale el SSH solamente si ira a utilizar realmente este para el acceso remoto al servidor, en caso contrario omita este paso):
# # # # apt-get apt-get apt-get apt-get update upgrade install vim install ssh

Instale el compilador GCC y mas algunas librerias necesarias como el OpenSSL para la comunicacin del NRPE:
# apt-get install build-essential # apt-get install libgd2-xpm-dev libsnmp-perl libssl-dev openssl

Cree un directorio para la descarga de los archivos de Nagios (acordandonos de que estamos en el directorio de su respectivo usuario, ej: /home/usuario/):
# mkdir nagios

Realizamos la descarga del Nagios y dos plugins:


# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-

3.2.3.tar.gz # wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagiosplugins-1.4.15.tar.gz # wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz

Instalando el Nagios Agregamos el usuario nagios al sistema, utilizamos la contrasea que mejor nos parezca:
# adduser nagios

Descomprimimos el Nagios Core, compilamos y realizamos la instalacin del mismo:


# # # # # # # # # tar xzf nagios-3.2.3.tar.gz cd nagios-3.2.3 ./configure --with-command-group=nagios make all make install make install-config make install-commandmode make install-init make install-webconf

Agregamos el Nagios al inicio del sistema:


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

Usurio administrador del Nagios En este ejemplo utilizaremos el usuario "ejemplo". Por defecto, el Nagios ya posee un usuario administrador que es el "nagiosadmin", pero para mayor seguridad y adecuacin de este tutorial de monitoreamiento para su red existe la recomendacin de modificar este usuario Cree el archivo de contraseas de nagios y adicione el usuario "ejemplo" a este:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users ejemplo

Modificamos las lineas del archivo cgi.cfg que contengan el usuario "nagiosadmin" para el usuario escogido como administrador del Nagios:
# vim /usr/local/nagios/etc/cgi.cfg

Obs.: Para efectuar la busqueda dentro del archivo, presione ESC y despues escriba "/nagiosadmin" que buscara en el archivo. Agregue el usuario nagios y Apache:
# usermod G nagios nagios # usermod G www-data,nagios www-data # /etc/init.d/apache2 reload

Instalando los plugins Accedemos nuevamente al directorio creado por usted para guardar los archivos del Nagios:
# cd /home/usuario/nagios

Descompacte e instale los archivos del Nagios-Plugins:


# # # # # tar xzf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15 ./configure make make install

Modifique el dueo de los siguientes directorios para el usuario nagios:


# chown nagios:nagios /usr/local/nagios # chown R nagios:nagios /usr/local/nagios/libexec

Verifique si no hay ningn error en las configuraciones del Nagios:


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

Obs.: Guarde este comando, siempre les ser til. Accedemos desde el navegador o direccin del servidor Nagios, y verificamos si todo esta ok: http://ip_del_servidor/nagios

Configurando el monitoreamiento Primero configuraremos los parmetros simples para el monitoreamiento del Nagios, para posteriormente instalar los addons de checks. Adicione las variables al resource.cfg El archivo resource.cfg es el responsable por almacenar las configuraciones referentes a las

variables que sern utilizados para verificar el Nagios, estas variables deben ser definidos para cada funcin especifica pues ellas seran utilizadas en el archivo commands.cfg.
# vim /usr/local/nagios/etc/resource.cfg

Para que podamos efectuar las verificaciones utilizando el SNMP, ser necesario definir en este archivo la comunidad SNMP, utilizada en su red, utilizaremos aqu por defecto la comunidad "public", agregamos el siguiente contenido al final de este archivo:
$USER7$=-C public $USER8$=public

Ahora configuraremos los archivos secundarios, donde estarn las informaciones que utilizaremos posteriormente en los archivos de monitoreamiento de hosts. Para tal accedemos al directorio dentro del directorio Nagios:
# cd /usr/local/nagios/etc/objects/

Ya dentro del directorio objects, hacemos un backup del archivo commands.cfg y creamos un nuevo archivo con el mismo nombre. El archivo commands.cfg es el responsable por almacenar las informaciones de verificacin de servicios, vincula los comandos proporcionados en los archivos de comprobacin de los servidores a los plugins existentes en el servidor Nagios:
# mv commands.cfg commands.cfg.bkp # vim commands.cfg

Ejemplo de configuracin del archivo commands.cfg:


############################################################################## # # Archivo commands.cfg # ############################################################################## ## #Notificacin por email define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****nnNotification Type: $NOTIFICATIONTYPE$nHost: $HOSTNAME$nEstado: $HOSTSTATE$nIP: $HOSTADDRESS$nInf o: $HOSTOUTPUT$nnDate/Time: $LONGDATETIME$n" | /usr/bin/mail s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMA IL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****nnNotification Type: $NOTIFICATIONTYPE$nnService: $SERVICEDESC$nHost: $HOSTALIAS$nAddress: $HOSTAD DRESS$nState: $SERVICESTATE$nnDate/Time: $LONGDATETIME$nnAdditional Info:nn$SE RVICEOUTPUT$" | /usr/bin/mail s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICES TATE$ **" $CONTACTEMAIL$ } ##############################################################################

## # # Comprobaciones simples # ############################################################################## ##

# 'check-host-alive' command definition define command{ command_name check-host-alive command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% c 5000.0,100% -p 5 } ############################################################################## ## # # Comprobando los principales servicios LOCALES # ############################################################################## ## # Local HDD define command{ command_name command_line } # LOAD define command{ command_name command_line } # PROCESS define command{ command_name command_line } # USERS define command{ command_name command_line } # SWAP define command{ command_name command_line }

check_local_disk $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

check_local_load $USER1$/check_load -w $ARG1$ -c $ARG2$

check_local_procs $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

check_local_users $USER1$/check_users -w $ARG1$ -c $ARG2$

check_local_swap $USER1$/check_swap -w $ARG1$ -c $ARG2$

# MRTGTRAF define command{ command_name check_local_mrtgtraf command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ c $ARG4$ -e $ARG5$ }

############################################################################## ## # # Comprobacin de los servicos # ############################################################################## ## # FTP define command{ command_name check_ftp command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ } # HPJD define command{ command_name command_line } # SNMP define command{ command_name command_line } # HTTP define command{ command_name command_line } # SSH define command{ command_name command_line } # DHCP define command{ command_name command_line } # PING define command{ command_name command_line p 5 } # PING GOOGLE define command{ command_name command_line } # POP define command{

check_hpjd $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$

check_snmp $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$

check_http $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

check_ssh $USER1$/check_ssh $ARG1$ $HOSTADDRESS$

check_dhcp $USER1$/check_dhcp $ARG1$

check_ping $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -

check_google $USER1$/check_ping -H www.google.com.br -w 60,70% -c 80,90%

command_name

check_pop

command_line } # IMAP define command{ command_name command_line } # SMTP define command{ command_name command_line } # TCP define command{ command_name command_line } # UDP define command{ command_name command_line } # NT define command{ command_name command_line }

$USER1$/check_pop -H $HOSTADDRESS$ $ARG1$

check_imap $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$

check_smtp $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$

check_tcp $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$

check_udp $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$

check_nt $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$

############################################################################## ## # # PERFORMANCE DATA COMMANDS # ############################################################################## ## # PNP4NAGIOS define command { command_name command_line fdata.pl }

process-service-perfdata /usr/bin/perl /usr/local/pnp4nagios/libexec/process_per

define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_per fdata.pl -d HOSTPERFDATA } ############################################################################## ## # # Comprobacin SNMP #

############################################################################## ## define command{ command_name check_snmp_load_v1 command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ $USER7$ T $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_int_v1 command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ $USER7$ n $ARG1$ $ARG2$ } define command{ command_name check_snmp_mem_v1 command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_storage_v1 command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_hpux_storage_v1 command_line $USER1$/check_snmp_hpux_storage.pl -H $HOSTADDRESS$ $USER7$ m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_hpux_mem_v1 command_line $USER1$/check_snmp_hpux_mem.sh $USER8$ $HOSTADDRESS$ $ARG1$ $A RG2$ $ARG3$ $ARG4$ } define command{ command_name check_snmp_v1 command_line $USER1$/check_snmp -H $HOSTADDRESS$ $USER7$ -o $ARG1$ w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_process_v1 command_line $USER1$/check_snmp_process.pl -H $HOSTADDRESS$ $USER7$ n $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_win command_line $USER1$/check_snmp_win.pl -H $HOSTADDRESS$ $USER7$ n $ARG1$ $ARG2$ } ######################################## FIN SNMP ############################ ##########

############################################################################## ## # # COMANDOS ADICIONALES # ############################################################################## ## # DISCO define command{ command_name command_line } # IMPRESORA HP define command{ command_name command_line H $HOSTADDRESS$ }

check_disk $USER1$/check_disk -w limit -c limit -t 5

check_hp_print $USER1$/check_hp_print $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$

# TERMINAL SERVICE define command{ command_name check_ts command_line $USER$/check_ts -H $HOSTADDRESS$ -p 3389 } # PRINTERS define command{ command_name check_printer command_line $USER1$/check_printer $HOSTADDRESS$ $USER8$ $ARG1$ $ARG2$ $ARG 3$ $ARG4$ } # WIRETEMP define command{ command_name check_1-wiretemp command_line $USER1$/custom/check_1-wiretemp -c $ARG1$ -w $ARG2$ W$ARG3$ -C$ARG4$ -i $ARG5$ -o $ARG6$ } # NRPE define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } # OPENVPN define command{ command_name check_openvpn command_line /usr/lib/nagios/plugins/check_openvpn -t $ARG1$ -p $ARG2$ n $ARG3$ } # SQUID define command{ command_name check_squid command_line $USER1$/check_squid.pl -u http://www.google.com.br p $HOSTADDRESS$ -l 8080 -o usuario -m senha -e 200

} # SAMBA define command{ command_name check_samba command_line $USER1$/check_samba -L $HOSTADDRESS$ } # WINTEMP define command{ command_name check_snmp_wintemp command_line $USER1$/check_snmp_wintemp -L $HOSTADDRESS$ } # 3COM define command{ command_name check_3com command_line $USER1$/check_3com.pl -H $HOSTADDRESS$ -C $ARG1$ -u $ARG2$ } # SWITCH UPTIME define command { command_name check_switch_uptime command_line $USER1$/check_switch_uptime.pl -H $HOSTADDRESS$ -C $ARG1$ w $ARG2$ -c $ARG3$ } # MEMORIA define command { command_name check_mem command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$ } # MRTG define command { command_name check_mrtgtraf command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ c $ARG4$ -e $ARG5$ } # NAGIOSGRAPHER define command{ command_name process-service-perfdata-file command_line mv /usr/local/nagios/var/serviceperfdata /usr/local/nagios/var/service-perfdata.$TIMET$ }

En el directorio objects, haga un backup del archivo timeperiods.cfg y cree un nuevo archivo con el mismo nombre. El archivo timeperiods.cfg es responsable por almacenar las informaciones relativas a los periodos de tiempo utilizado en la verificacin, los periodos de tiempos de aqu sern utilizados en la configuracin de cada servicio en los archivos de verificacin de servidores:
# mv timeperiods.cfg timeperiods.cfg.bkp # vim timeperiods.cfg

Ejemplo de configuracin del archivo timeperiods.cfg:

############################################################################## # # # archivo TIMEPERIODS.cfg # ############################################################################## # # TIEMPO INTEGRAL 24x7 define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } # HORARIO DE TRABAJO TOTAL define timeperiod{ timeperiod_name workhours alias Normal Work Hour monday 09:00-21:00 tuesday 09:00-21:00 wednesday 09:00-21:00 thursday 09:00-21:00 friday 09:00-21:00 } # HORARIO COMERCIAL define timeperiod{ timeperiod_name alias monday tuesday wednesday thursday friday }

comercial Horario Comercial 08:00-17:40 08:00-17:40 08:00-17:40 08:00-17:40 08:00-17:40

# NONE define timeperiod{ timeperiod_name none alias No Time Is A Good Time }

Hacemos un backup tambien del archivo contacts.cfg, y creamos un archivo en blanco con el mismo nombre. Este archivo es responsable por almacenar las informaciones de los grupos de contactos que reciben los e-mail de alertas del Nagios. Con esto es posible que solamente un determinado grupo de usuarios de Nagios reciba por ejemplo notificaciones de que servicios criticos o servidores saliern del area, asi dimensionamos las alertas para cada camada del respectivo departamento o sucursal:
# mv contacts.cfg contacts.cfg.bkp

# vim contacts.cfg

Ejemplo de configuracin del archivo contacts.cfg:


############################################################################## # # # Archivo contacts.cfg # ############################################################################## # # CONTATOS define contact{ contact_name del usuario use generic-contact alias Nagios Admin email soporte@dominio.com.py uario que recibira las notificaciones } # GRUPOS DE CONTACTOS define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagios } nagios # Nombre

# Email del us

Instalando el NRPE El NRPE (Nagios Remote Plugin Execute) ser el responsable por las verificaciones de nuestro sistema Unix, para esto es necesario instalar este en el servidor de monitoreamiento y en el servidor Nagios. Instale el Xinetd:
# apt-get install xinetd

Haga la descarga del source del NRPE:


# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

Descompacte e instale el NRPE:


# # # # # # # # tar xzf nrpe-2.12.tar.gz cd xzf nrpe-2.12 ./configure make all make install make install-daemon make install-daemon-config make install-xinetd

Edite el archivo de configuracin del NRPE, agregando despus de la direccin local del host (127.0.0.1), la direccin de ip del servidor Nagios o el rango de red donde esta el servidor Nagios:

# vim /etc/xinetd.d/nrpe ... only_from = 127.0.0.1 192.168.1.0 ... [code] Agregue el puerto de servicio NRPE al sistema: [code] # vim /etc/services ... nrpe 5666/tcp # NRPE

Reinicie el servicio del Xinetd:


# /etc/init.d/xinetd restart

Probando el funcionamiento del NRPE:


# /usr/local/nagios/libexec/check_nrpe H localhost

El retorno deve ser:


NRPE v2.12

Ahora, instale el plugin del NRPE tambien en el servidor Nagios: Haga la descarga del source del NRPE:
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

Descompacte e instale el NRPE:


# # # # # tar xzf nrpe-2.12.tar.gz cd xzf nrpe-2.12 ./configure make all make install-plugin

Instale el SNMP en el servidor Nagios:


# cd.. # apt-get install snmp # apt-get install snmpd # wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6/net-snmp5.6.tar.gz/download -O net-snmp-5.6.tar.gz # tar xzf net-snmp-5.6.tar.gz # cd net-snmp-5.6 # ./configure # make # make install # tar xzf nagios-snmp-plugins.1.1.1.tgz C /usr/src/ #./configure # make # make install

Pruebe el funcionamiento del plugin en el servidor:


# /usr/local/nagios/libexec/check_nrpe H <ip_do_servidor_Unix> NRPE v2.12

Agregando servidores Linux al Nagios Para mejor organizacin, cree algunos directorios dentro del directorio /usr/local/nagios/etc, donde seran almacenados los archivos de configuraciones de servidores y activos monitoreados en este caso monitorearemos nuestros servidores, switchs y impresoras de red:
# cd /usr/local/nagios/etc/ # mkdir servidores switchs printers [code] Accedemos al directorio servidores que usted habia creado: [code] # cd /usr/local/nagios/etc/servidores

Ahora, creamos un archivo con el nombre del servidor a ser monitoreado, como por ejemplo utilizaremos el servidor "server-linux".:
# vim server-linux.cfg

Voy a describir algunas definiciones que pueden ser utilizadas en el archivo de monitoreamiento de un servidor Linux. La primera configuracin a ser agregada al archivo de monitoreamiento del servidor es la definicin del Host:
### Definiciones del Host ### define host{ use generic-host host_name srv-linux # Nombre del servidor alias Servidor Linux # Nombree que aparecera en la i nterface web del Nagios address 192.168.1.1 # Direccin de ip del se rvidor a ser monitoreado parents 3Com_4200,srvproxy # Switchs o puntos que este servidor estar ligado directamente check_command check-hostalive # Definido en el commands.cfg este prueba el ping del servidor max_check_attempts 2 # Numero de verificaciones necesarias para definir el real estado del servicio check_interval 1 # Verificacin del servi cio media de 5 minutos em condiciones normales notification_interval 1 # Tiempo de renotificacin sobre los problemas de un servicio en minutos notification_period 24x7 # Variable definida en el archivo timeperiods.cfg notification_options d,u,r # d = Down, u = Unreachable e r = Recovered contact_groups admins # Grupo de contactos que r ecibiran notificaciones para este servidor }

Definicin de Grupo En el archivo de configuracin del servidor, debe ser informado a que grupo este pertenecer,

esta configuracin es efectuada en apenas uno o dos archivos de configuracin de servidores petenecientes a este grupo, siendo que esta configuracin sera adicionada todos los nombres de los servidores pertenecientes a este grupo, como ejemplo a seguir:
### Grupo ### define hostgroup{ hostgroup_name linuxservers # Nombre del grupo sin espacios alias Servidores Linux # Nombre visible del grup o que aparecera en la interface web del Nagios members srv-linux,srvlinux_2 # Nombre de los servidores pertencientes a este grupo }

Plugins - Ping Es recomendado efectuar una segunda verificacin de pingo del servidor, la misma es realizada por check-host-alive como vemos (esta ser utilizada para la generacin de graficos por el pnp4nagios):
### PING ### define service{ host_name srvlinux # nombre del activo a ser monitoreado service_description PING # Nombre del servicio que apar ecer en la interface web del Nagios check_command check_ping!5000.0,80%!8000.0,100% # Comando que fue configurado en el archivo commands.cfg max_check_attempts 2 # Numero de verificacin necesaria pa ra definir el estado del servicio normal_check_interval 1 # Tiempo en minutos entre las verific aciones de servicio retry_check_interval 1 # Tiempo de verificacin de servi cio, si este estuviera en WARNING o CRITICAL check_period 24x7 # Este es el periodo de verifi cacin de servicio, este periodo debe de estar definido en el archivotimeperio ds.cfg como una variable notification_interval 30 # Este es el periodo de verifica cin de servicio, este perodo debe estar definido en el archivo timeperiods.c fg como una variable notification_period 24x7 # Este es el periodo de verifi cacion de servicio, este perodo debe estar definido en el archivo timeperiods .cfg como una variable notification_options w,c,r # W = Warning, C = Critical , R = Recovered e u=UNKDOWN contact_groups admins # El grupo de contactos que recibir las notificaciones de este servicio, este es definido en el archivo c ontacts.cfg }

Procesos Verifica la cantidad de procesos que estan ejecutandose en el servidor:


### Servicos ### define service{ host_name service_description check_command max_check_attempts

srv-linux Total de Processos check_nrpe!check_total_procs 2

normal_check_interval retry_check_interval check_period notifications_enabled ail }

1 10 24x7 # Desabilita a notificao do servio por em

Procesador Verifica la cantidad de procesador utilizado por el servidor en %:


### CPU LOAD ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux CPU Load check_nrpe!check_load 2 1 1 24x7 30 24x7 w,c,r admins

Espacio en DISCO (HD) Verifica el espacio total del disco y el espacio disponible del mismo:
### HD ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux HD check_nrpe!check_hda1 2 1 1 24x7 30 24x7 w,c,r admins

Memria RAM Verifica la cantidad de memoria RAM utilizada por el sistema remoto, el tambm verifica el SWAP del sistema:
### Memoria ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period

srv-linux Memoria check_nrpe!check_mem 2 1 1 24x7 30 24x7

notification_options contact_groups }

w,c,r admins

Uptime Verifica el tiempo que el servidor esta funcionando desde su ultimo reinicio:
### UPTime ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux UPTime check_nrpe!check_uptime 2 1 1 24x7 30 24x7 w,c,r admins

SSH Verifica el servicio de SSH que esta ejecutandose en el servidor


### SSH ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux SSH check_ssh! -t 50 2 1 1 24x7 30 24x7 w,c,r admins

Apache (HTTP) Verifica si el servicio http del Apache esta ejecutandose:


### HTTP ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux Apache check_http 2 1 1 24x7 30 24x7 w,c,r admins

BIND Verifica si el servicio de DNS Bind esta ejecutandose en el servidor:


### BIND ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux DNS Bind check_nrpe!check_bind 2 1 1 24x7 30 24x7 w,c,r admins

Samba Verifica si el servicio de Samba esta ejecutandose en el servidor:


### SAMBA ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

srv-linux Samba Service check_samba 2 1 1 24x7 30 24x7 w,c,r admins

Agregando servidores Windows al Nagios Accedemos al directorio servidores del Nagios:


# cd /usr/local/nagios/etc/servidores/

Cree un archivo con el nombre de servidor a ser monitoreado, en este ejemplo utilizaremos el servidor srv-ruindows:
# vim srv-ruindows.cfg

Las informaciones de verificacin son basicamente las mismas del archivo de verificacin Linux, modifique solamente los plugins utilizados para hacer este no utilizar el NRPE para la verificacin y si el NSCLIENT++. Un ejemplo de archivo de verificacin de Windows:
### Definiciones del Host ### define host{ use host_name alias

generic-host srv-ruindows Servidor Ruindows

address parents check_command max_check_attempts check_interval notification_interval notification_period notification_options contact_groups } ### PING ### define service{ host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### Versin del NSCLIENT ### define service{ use host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### UPTIME ### define service { use host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### MEMORIA RAM ###

192.168.1.1 3Com_4200 check-host-alive 2 1 1 24x7 d,u,r admins

srv-ruindows PING check_ping!5000.0,80%!8000.0,100% 2 1 1 24x7 30 24x7 w,c,r admins

generic-service srv-ruindows Version del NSClient check_nt!CLIENTVERSION 2 1 10 24x7 120 24x7 w,c,r admins

generic-service srv-ruindows Uptime check_nt!UPTIME 2 1 10 24x7 120 24x7 w,c,r admins

define service { use host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### DISCO C: ### define service { use host_name service_description check_command c 90 max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### DISCO D: ### define service { use host_name service_description check_command c 90 max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups } ### PROCESADOR ### define service { use host_name service_description check_command c 90 max_check_attempts normal_check_interval retry_check_interval

generic-service srv-ruindows Memoria RAM check_nt!MEMUSE! -w 80 -c 90 2 1 10 24x7 120 24x7 w,c,r admins

generic-service srv-ruindows Disco C: check_nt!USEDDISKSPACE!-l c -w 80 2 1 10 24x7 120 24x7 w,c,r admins

generic-service srv-ruindows Disco D: check_nt!USEDDISKSPACE!-l d -w 80 2 1 10 24x7 120 24x7 w,c,r admins

generic-service srv-ruindows CPU Load check_nt!CPULOAD!-l 5,80,90 -w 80 2 1 10

check_period notification_interval notification_period notification_options contact_groups } ### PROCESO ### define service { use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled }

24x7 120 24x7 w,c,r admins

generic-service pabx Explorer check_nt!PROCSTATE!-l explorer.exe 10 10 2 0

Agregando impresoras de red al Nagios Para el monitoreamiento de impresoras por el Nagios, utilizaremos el plugin check_printer, asi, haga la descarga de este archivo y de permiso de ejecucin para el mismo:
# wget http://www.ciphron.de/gfx/pool/check_printer # mv check_printer /usr/local/nagios/libexec/check_printer # chmod +x /usr/local/nagios/libexec/check_printer

Realizado esto, hacemos los test con la impresora a ser monitoreada para saber que opciones de monitoreamiento esta posibilitar. Accedemos al directorio printers y ejecutamos.:
# ./check_printer

Este comando traer todas las posibilidades de script posible de monitoreamiento, asi verifique cada uno de los comandos en la impresora escojida para descubrir cuales irn a funcionar en esta, la sintaxis basica del comando es:
# ./check_printer <ip_de_impresora> <comunidad_snmp> <comando> <definicion>

Para verificar por ejemplo el controlado de pginas de una impresora, ejecute:


# ./check_printer 192.168.3.100 public counter 1

Realizado las verificaciones, accedemos al directorio printers creado anteriormente y cree un archivo con el nombre de la impresora a ser monitoreada, en este ejemplo utilizaremos la impresora hp_produccion:
# cd /usr/local/nagios/etc/printers # vim hp_produccion.cfg

Con base a verificaciones realizadas anteriormente con el plugin, agregue los monitoreamientos validos a este archivo de acuerdo con cada impresora, como en el ejemplo siguiente:
##############################################################################

# # # Archivo de monitoreamiento de IMPRESORA # ############################################################################## # # DEFINICION DE LA IMPRESORA define host{ use generic-printer host_name hp_produccion alias Impressora HP Produccin address 192.168.3.100 parents 3Com_4200 check_interval 1 retry_check_interval 10 check_period workhours notification_interval 120 notification_period workhours notification_options d,u,r contact_groups admins hostgroups network-printers } # VERIFICACION DE SERVICOS # # PING define service{ use generic-service host_name hp_produccion service_description PING check_command check_ping!3000.0,80%!5000.0,100% normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notification_interval 120 notification_options c,r contact_groups admins notification_period workhours } # HOJAS IMPRESAS define service{ use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled } # Parts Status define service{ use host_name service_description check_command normal_check_interval

generic-service hp_produccion Hojas Impresas check_printer!counter 1 1 10 2 0

generic-service hp_produccion Parts Status check_printer!parts 1 1

retry_check_interval max_check_attempts notifications_enabled } # Port Status define service{ use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled } # Toners Status ## Cyano define service{ use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled }

10 2 0

generic-service hp_produccion Port Status check_printer!parts 2 1 10 2 0

generic-service hp_produccion Toner Cyano check_printer!toner/ink 1!0.5,0.8 1 10 2 0

## Magenta define service{ use generic-service host_name hp_produccion service_description Toner Magenta check_command check_printer!toner/ink 2!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } ## Amarillo define service{ use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled } ## Negro define service{ use host_name service_description

generic-service hp_produccion Toner Amarillo check_printer!toner/ink 3!0.5,0.8 1 10 2 0

generic-service hp_produccion Toner Negro

check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled } # Reservatorio de Residuos define service{ use host_name service_description check_command normal_check_interval retry_check_interval max_check_attempts notifications_enabled }

check_printer!toner/ink 4!0.5,0.8 1 10 2 0

generic-service hp_produccion Reservatorio de Residuos check_printer!toner/ink 5!0.5,0.8 1 10 2 0

Agregando activos de red al Nagios El Nagios tambien posee decenas de plugins (no por defecto) para el monitoreamiento de activos de red, como switchs, roteadores y muchos otros. De estos podemos extraer informacin de puertos, procesamiento, tiempo activo, ips activos, de entre otras informaciones pero esto depender del gerenciamiento que cada activo posibilita. Accedemos al directorio switchs creado anteriormente:
# cd /usr/local/etc/switchs/

Cree en este directorio el archivo correspondiente al activo a ser monitoreado, en el ejmplo utilizaremos la switch 3Com_4200:
# vim 3Com_4200

Agregamos a este archivo las verificaciones necesarias, como en el ejemplo a seguir:


############################################################################## # # # archivo de monitoreamiento de SWITCH # ############################################################################## # # DEFINICIONES DEL SWITCH define host{ use generic-switch host_name 3Com_4200 alias Switch 3Com 4200 50 portas address 192.168.3.200 parents 3Com_4200 max_check_attempts 2 check_interval 10 retry_check_interval 10 check_period workhours

notification_interval notification_period notification_options contact_groups hostgroups switches }

60 workhours d,u,r admins

############################################################################## # # DEFINICIONES DE GRUPO ############################################################################## # # La definicin de grupo de Switchs funciona de la siguiente forma, este grupo es agregado # a uno de los archivos de monitoreamiento, y en los otros archivos es adicion ado la linea # hostgroups en la definicin de host como esta encima, seguido del nombre de grupo definido aqui define hostgroup{ hostgroup_name alias }

switches Network Switches

# VERIFICACION DE SERVICOS # # PING define service{ use generic-service host_name 3Com_4200 service_description PING check_command check_ping!200.0,20%!600.0,60% max_check_attempts 2 normal_check_interval 10 retry_check_interval 10 check_period workhours notification_interval 120 notification_period workhours notification_options w,c,r contact_groups admins } # UPTIME define service { use host_name service_description check_command max_check_attempts normal_check_interval retry_check_interval check_period notification_interval notification_period notification_options contact_groups }

generic-service 3Com_4200 Uptime check_switch_uptime!public!80!90 2 10 10 workhours 120 workhours w,c,r admins

En el ejemplo de arriba utilizamos el plugin check_switch_uptime, haga la descarda del script

y ejecute los mismos pasos del plugin ckeck_printer, copie esta para el directorio libexec y de permiso de ejecucin para el archivo plugin:

# wget https://www.monitoringexchange.org/attachment/download/CheckPlugins/Hardware/Network/Switch-%2526-Router/Uptime-of-router-orswitch/check_uptime.pl # mv check_uptime.pl /usr/local/nagios/libexec/check_switch_uptime.pl # chmod +x /usr/local/nagios/libexec/check_switch_uptime.pl

Activando el monitoreamiento Despus de crear los archivos de monitoreamiento del hosts, agregue este archivo al archivo nagios.cfg para que el Nagios consigua efectuar lectura de estos archivos:
# vim /usr/local/nagios/etc/nagios.cfg

Agregue las siguientes lineas a este archivo, luego de la linea log_file:

#################################################################### # SERVIDORES # #################################################################### # cfg_file=/usr/local/nagios/etc/servidores/srv-linux.cfg cfg_file=/usr/local/nagios/etc/servidores/srv-ruindows.cfg # #################################################################### #SERVIDORES SWITCHS # #################################################################### # cfg_file=/usr/local/nagios/etc/switchs/3Com_4200.cfg # #################################################################### # IMPRESORAS # #################################################################### # cfg_file=/usr/local/nagios/etc/printers/hp_produccion.cfg #

Ahora, agregue los hosts monitoreados al archivo hostextinfo.cfg, este archivo sera responsable por los iconos exhibidos en la interface web del Nagios, asi como las coordenadas definidas en el Status Map y 3D Map:
# vim /usr/local/nagios/etc/hostextinfo.cfg

Agregue los hosts a este archivo:


define hostextinfo{ host_name notes_url t icon_image del activo

srv-linux # Nombre del host http://192.168.1.1:1000 # Direccin Webmin del hos ubuntu.png # Imagen utilizada en las propiedades

icon_image_alt Ubuntu # Texto mostrado al pasar el mouse enc ima del icono del activo vrml_image ubuntu.png & # Imagen utilizada en el statusmap statusmap_image ubuntu.gd2 & # Imagen tambien utilizada en el st atusmap, comprimida para reducir el consumo de CPU del servidor 2d_coords 500,500 # Coordenadas geogrficas para la local izacin de los hosts en el StatusMap 3d_coords 300.0,50.0,75.0 & # Coordenadas 3D para a loca lizacin de los hosts en el 3D Map } define hostextinfo{ host_name srv-ruindows #notes_url http:// # Windows no possui interface web icon_image vista.png icon_image_alt Windows_Server_2008 vrml_image vista.png statusmap_image vista.gd2 2d_coords 100,400 3d_coords 200.0,50.0,75.0 } define hostextinfo{ host_name notes_url icon_image r icon_image_alt vrml_image statusmap_image 2d_coords 3d_coords } define hostextinfo{ host_name notes_url icon_image r icon_image_alt vrml_image statusmap_image 2d_coords 3d_coords }

3Com_4200 http://192.168.3.200 switch.png 3Com_4200 switch.png switch.gd2 400,700 200.0,50.0,75.0

hp_produccion http://192.168.3.100 printer.png HP_Produccion printer.png printer.gd2 300,700 200.0,50.0,75.0

Los iconos utilizados por el hostextinfo quedan almacenados en /usr/local/nag ios/share/images/logos/, para el ejemplo de arriba usted puede utilizar el exc elente pack de icono fnagios, para tal haga la descarga del pack y extraiga es tos archivos para el directorio logos: [code] # wget http://www.intec.***/bin/fnagios/fnagios.tar.gz # tar xvf fnagios.tar.gz # cd fnagios # mv equipaments/* /usr/local/nagios/share/images/logos # mv other/* /usr/local/nagios/share/images/logos # mv vendors/* /usr/local/nagios/share/images/logos

Instalando el Frontend Nuvola

El Nuvola es un tema completo para interface web del Nagios, incluyendo nuevos menus, imagenes, logos, haga la descarga del archivo y copie al directorio de Nagios:
# wget http://exchange.nagios.org/components/com_mtree/attachment.php?link_id= 46&cf_id=29# tar xvf nagios_skyns.tar.gz # mv /usr/local/nagios/share /usr/loc al/nagios/share.bkp # cp R share /usr/local/nagios/

Asi como la interface original de Nagios, el Novula es compuesto basicamente por PHP y JavaScript, siendo asi podemos configurar su interface a nuestro gusto, una configuracin simple que puede ser realizada es la modificacin de su menu lateral, haciendo con que determinado conjunto de menus quede expandido o no luego de la abertura de la pgina de Nagios, para eso accedemos al archivo config.js, el archivo de configuracin del JavaScript de Nuvola:
# vim /usr/local/nagios/share/config.js

var homeMenuTitle var homeMenuOpen var monitMenuTitle var monitMenuOpen var reportMenuTitle var reportMenuOpen var configMenuTitle var configMenuOpen

= "Home"; = false; = "Monitoring"; = true; = "Reporting"; = true; = "Configuration"; = false;

Instalando el PNP4Nagios El PNP4Nagios nos auxiliar y mucho en la (e muito) na generacin de grafico de diversos servicios verificados por el Nagios. Este crear grficos dirios, semanales, mensuales, en fin de acuerdo con la necesidad del administrador y posibilitando la generacin de PDF de este contenido para la presentacin de un relatorio por ejemplo Habilite el modulo mod_rewrite de Apache:

# a2enmod rewrite

Haga la descarga del pnp4nagios, compile e instale este:


# wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios0.6.3.tar.gz?use_mirror=ufpr # tar xvf pnp4nagios-0.6.3.tar.gz # cd pnp4nagios-0.6.3 # ./configure # make all # make fullinstall

Habilite la lectura de datos en el Nagios, accede a la siguiente linea del nagios.cfg y modifique el valor de la misma para "1":
# vim /usr/local/nagios/etc/nagios.cfg

... process_performance_data=1

En el archivo nagios.cfg, agregue las siguientes lineas :


... service_perfdata_command=process-service-perfdata host_perfdata_command=process-host-perfdata

Por defecto, el pnp4nagios generar los grficos de todos los servicios verificados (los que generan datos de performance), por si acaso necesite que un determinado servicio no genere grfico, adicione la siguiente linear al archivo de monitoreamiento del host, en el respectivo servicio que no debe generar grficos:
# vim /usr/local/nagios/etc/servidores/srv-linux.cfg

... define service { ... process_perf_data 0 ... }

Ahora, agregue al command.cfg las definiciones de lectura del pnp4nagios:


define command { command_name command_line fdata.pl }

process-service-perfdata /usr/bin/perl /usr/local/pnp4nagios/libexec/process_per

define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_per fdata.pl -d HOSTPERFDATA }

Verifique el funcionamiento del pnp4nagios accediendo a la siguiente direccin:


http://ip_del_servidor/pnp4nagios [code] Para integrar el pnp4nagios al Nuvola, acceda al archivo del activo monitoread o, y agregue las siguientes lineas [code] # vim /usr/local/nagios/etc/servidores/srv-linux.cfg

Agregue las siguientes lineas a los servicios que tendrn graficos generados por el

pnp4nagios:
define service { ... action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 }

Ahora, reinicie el servicio del Nagios y acceda a su interface Web, observe que despues del nombre del servicio que fue agregado en la linea superior ahora posee el icono de acceso al pnp4nagios. Notificaciones por email Utilizaremos el aplicativo Email para el envio de notificaciones para tal cosa haga la descarga del Email e instale este:
# # # # # # wget http://webftp.seduc.ce.gov.br/Nagios/email-2.5.1.tar.gz tar xvf email-2.5.1.tar.gz cd email-2.5.1 ./configure make make install

Despus de efectuar la instalacin del Email, edite el archivo email.conf modificando el servidor SMTP de este archivo para el servidor de email local de su empresa:
# vim /usr/local/etc/email/email.conf

... SMTP_SERVER = 192.168.2.34 ...

Reinicie el servicio de Nagios, siguiendo las definiciones que fueron atribuidas al archivo contacts.cfg, el email enviar todas las notificaciones del Nagios para el grupo o contacto definido en el contacts.cfg.
# /etc/init.d/nagios restart

Anda mungkin juga menyukai