Ins Nagios

31
instalando nagios core 3.2, plugins, nrpe, nscient-Ubuntu LINUX Y GNU | HACE MÁS DE 1 AÑO 1 1 Buenos días Taringa, nuevamente yo aquí compartiendo con ustedes un nuevo material sobre la herramienta Nagios, esta ves ejecutándose 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 demás decir eso, espero disfruten y aprendan de este tutorial, si esta ves no aparece en la home ya no publico nada -.- Esta es una pequeña guía de instalación y configuración 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 gestión de gráficos. Preparando el área de trabajo Primero prepararemos el ambiente para recibir la instalación del Nagios, por ende es necesario que este ya con el LAMP (Linux, Apache, MySql e PHP) en pleno funcionamiento. (En otros post míos 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 update # apt-get upgrade # apt-get install vim # apt-get install ssh Instale el compilador GCC y mas algunas librerias necesarias como el OpenSSL para la comunicación 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-

Transcript of Ins Nagios

  • 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 update # apt-get upgrade # apt-get install vim # apt-get 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/nagios-plugins-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$nInfo: $HOSTOUTPUT$nnDate/Time: $LONGDATETIME$n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****nnNotification Type: $NOTIFICATIONTYPE$nnService: $SERVICEDESC$nHost: $HOSTALIAS$nAddress: $HOSTADDRESS$nState: $SERVICESTATE$nnDate/Time: $LONGDATETIME$nnAdditional Info:nn$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $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 check_local_disk command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ } # LOAD define command{ command_name check_local_load command_line $USER1$/check_load -w $ARG1$ -c $ARG2$ } # PROCESS define command{ command_name check_local_procs command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ } # USERS define command{ command_name check_local_users command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ } # SWAP define command{ command_name check_local_swap command_line $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 check_hpjd command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$ } # SNMP define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ } # HTTP define command{ command_name check_http command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ } # SSH define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ } # DHCP define command{ command_name check_dhcp command_line $USER1$/check_dhcp $ARG1$ } # PING define command{ command_name check_ping command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 } # PING GOOGLE define command{ command_name check_google command_line $USER1$/check_ping -H www.google.com.br -w 60,70% -c 80,90% } # POP define command{ command_name check_pop

  • command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$ } # IMAP define command{ command_name check_imap command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$ } # SMTP define command{ command_name check_smtp command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$ } # TCP define command{ command_name check_tcp command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ } # UDP define command{ command_name check_udp command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ } # NT define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ } ################################################################################ # # PERFORMANCE DATA COMMANDS # ################################################################################ # PNP4NAGIOS define command { command_name process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.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$ $ARG2$ $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 check_disk command_line $USER1$/check_disk -w limit -c limit -t 5 } # IMPRESORA HP define command{ command_name check_hp_print command_line $USER1$/check_hp_print -H $HOSTADDRESS$ $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$ $ARG3$ $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/service-perfdata /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 comercial alias Horario Comercial monday 08:00-17:40 tuesday 08:00-17:40 wednesday 08:00-17:40 thursday 08:00-17:40 friday 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 nagios # Nombre del usuario use generic-contact alias Nagios Admin email [email protected] # Email del usuario que recibira las notificaciones } # GRUPOS DE CONTACTOS define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagios } 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-snmp-5.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 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 interface web del Nagios address 192.168.1.1 # Direccin de ip del servidor a ser monitoreado parents 3Com_4200,srv-proxy # Switchs o puntos que este servidor estar ligado directamente check_command check-host-alive # 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 servicio media de 5 minutos em condiciones normales notification_interval 1 # Tiempo de re-notificacin 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 recibiran 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 linux-servers # Nombre del grupo sin espacios alias Servidores Linux # Nombre visible del grupo que aparecera en la interface web del Nagios members srv-linux,srv-linux_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 srv-linux # nombre del activo a ser monitoreado service_description PING # Nombre del servicio que aparecer 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 para definir el estado del servicio normal_check_interval 1 # Tiempo en minutos entre las verificaciones de servicio retry_check_interval 1 # Tiempo de verificacin de servicio, si este estuviera en WARNING o CRITICAL check_period 24x7 # Este es el periodo de verificacin de servicio, este periodo debe de estar definido en el archivotimeperiods.cfg como una variable notification_interval 30 # Este es el periodo de verificacin de servicio, este perodo debe estar definido en el archivo timeperiods.cfg como una variable notification_period 24x7 # Este es el periodo de verificacion 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 contacts.cfg } Procesos Verifica la cantidad de procesos que estan ejecutandose en el servidor: ### Servicos ### define service{ host_name srv-linux service_description Total de Processos check_command check_nrpe!check_total_procs max_check_attempts 2

  • normal_check_interval 1 retry_check_interval 10 check_period 24x7 notifications_enabled 0 # Desabilita a notificao do servio por email } Procesador Verifica la cantidad de procesador utilizado por el servidor en %: ### CPU LOAD ### define service{ host_name srv-linux service_description CPU Load check_command check_nrpe!check_load max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } Espacio en DISCO (HD) Verifica el espacio total del disco y el espacio disponible del mismo: ### HD ### define service{ host_name srv-linux service_description HD check_command check_nrpe!check_hda1 max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups 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 srv-linux service_description Memoria check_command check_nrpe!check_mem max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7

  • notification_options w,c,r contact_groups admins } Uptime Verifica el tiempo que el servidor esta funcionando desde su ultimo reinicio: ### UPTime ### define service{ host_name srv-linux service_description UPTime check_command check_nrpe!check_uptime max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } SSH Verifica el servicio de SSH que esta ejecutandose en el servidor ### SSH ### define service{ host_name srv-linux service_description SSH check_command check_ssh! -t 50 max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } Apache (HTTP) Verifica si el servicio http del Apache esta ejecutandose: ### HTTP ### define service{ host_name srv-linux service_description Apache check_command check_http max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }

  • BIND Verifica si el servicio de DNS Bind esta ejecutandose en el servidor: ### BIND ### define service{ host_name srv-linux service_description DNS Bind check_command check_nrpe!check_bind max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } Samba Verifica si el servicio de Samba esta ejecutandose en el servidor: ### SAMBA ### define service{ host_name srv-linux service_description Samba Service check_command check_samba max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups 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 generic-host host_name srv-ruindows alias Servidor Ruindows

  • address 192.168.1.1 parents 3Com_4200 check_command check-host-alive max_check_attempts 2 check_interval 1 notification_interval 1 notification_period 24x7 notification_options d,u,r contact_groups admins } ### PING ### define service{ host_name srv-ruindows service_description PING check_command check_ping!5000.0,80%!8000.0,100% max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } ### Versin del NSCLIENT ### define service{ use generic-service host_name srv-ruindows service_description Version del NSClient check_command check_nt!CLIENTVERSION max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### UPTIME ### define service { use generic-service host_name srv-ruindows service_description Uptime check_command check_nt!UPTIME max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### MEMORIA RAM ###

  • define service { use generic-service host_name srv-ruindows service_description Memoria RAM check_command check_nt!MEMUSE! -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### DISCO C: ### define service { use generic-service host_name srv-ruindows service_description Disco C: check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### DISCO D: ### define service { use generic-service host_name srv-ruindows service_description Disco D: check_command check_nt!USEDDISKSPACE!-l d -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### PROCESADOR ### define service { use generic-service host_name srv-ruindows service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10

  • check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### PROCESO ### define service { use generic-service host_name pabx service_description Explorer check_command check_nt!PROCSTATE!-l explorer.exe normal_check_interval 10 retry_check_interval 10 max_check_attempts 2 notifications_enabled 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 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 generic-service host_name hp_produccion service_description Hojas Impresas check_command check_printer!counter 1 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Parts Status define service{ use generic-service host_name hp_produccion service_description Parts Status check_command check_printer!parts 1 normal_check_interval 1

  • retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Port Status define service{ use generic-service host_name hp_produccion service_description Port Status check_command check_printer!parts 2 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Toners Status ## Cyano define service{ use generic-service host_name hp_produccion service_description Toner Cyano check_command check_printer!toner/ink 1!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 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 generic-service host_name hp_produccion service_description Toner Amarillo check_command check_printer!toner/ink 3!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } ## Negro define service{ use generic-service host_name hp_produccion service_description Toner Negro

  • check_command check_printer!toner/ink 4!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Reservatorio de Residuos define service{ use generic-service host_name hp_produccion service_description Reservatorio de Residuos check_command check_printer!toner/ink 5!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 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 60 notification_period workhours notification_options d,u,r contact_groups admins hostgroups switches } ############################################################################### # 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 adicionado la linea # hostgroups en la definicin de host como esta encima, seguido del nombre de grupo definido aqui define hostgroup{ hostgroup_name switches alias 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 generic-service host_name 3Com_4200 service_description Uptime check_command check_switch_uptime!public!80!90 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 } 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/Check-Plugins/Hardware/Network/Switch-%2526-Router/Uptime-of-router-or-switch/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 srv-linux # Nombre del host notes_url http://192.168.1.1:1000 # Direccin Webmin del host icon_image ubuntu.png # Imagen utilizada en las propiedades del activo

  • icon_image_alt Ubuntu # Texto mostrado al pasar el mouse encima del icono del activo vrml_image ubuntu.png & # Imagen utilizada en el statusmap statusmap_image ubuntu.gd2 & # Imagen tambien utilizada en el statusmap, comprimida para reducir el consumo de CPU del servidor 2d_coords 500,500 # Coordenadas geogrficas para la localizacin de los hosts en el StatusMap 3d_coords 300.0,50.0,75.0 & # Coordenadas 3D para a localizacin 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 3Com_4200 notes_url http://192.168.3.200 icon_image r switch.png icon_image_alt 3Com_4200 vrml_image switch.png statusmap_image switch.gd2 2d_coords 400,700 3d_coords 200.0,50.0,75.0 } define hostextinfo{ host_name hp_produccion notes_url http://192.168.3.100 icon_image r printer.png icon_image_alt HP_Produccion vrml_image printer.png statusmap_image printer.gd2 2d_coords 300,700 3d_coords 200.0,50.0,75.0 } Los iconos utilizados por el hostextinfo quedan almacenados en /usr/local/nagios/share/images/logos/, para el ejemplo de arriba usted puede utilizar el excelente pack de icono fnagios, para tal haga la descarga del pack y extraiga estos 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/local/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 = "Home"; var homeMenuOpen = false; var monitMenuTitle = "Monitoring"; var monitMenuOpen = true; var reportMenuTitle = "Reporting"; var reportMenuOpen = true; var configMenuTitle = "Configuration"; var configMenuOpen = 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/pnp4nagios-0.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 process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.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 monitoreado, 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