viernes, 10 de mayo de 2013

Script Instalación Nagios, NagiosQL y Pnp4nagios Ubuntu 12.04

Llevo ya un mes con el tema de Nagios, intentando perfeccionarlo, añadiéndole mas cosas, y a día de hoy entre prueba y prueba he pensado: ¿Por que no hacer un script que automatice un poco más las cosas?

Así que aquí tenéis un script en bash que hace una instalación de Nagios y Nagiosql para aquellos que tienen que perder mucho tiempo con pruebas o bien para aquellos que no entienden bien ciertos pasos, o simplemente por gandulería :P.

El script esta en tamaño pequeño para evitar un megapost y que ocupe lo mínimo posible.

root@Nagios:~# vim instalacion.sh

Copia dentro todo el código

----------------------------------------------------------------------------------------------------------------------------------


#!/bin/bash

###########
#VARIABLES#
###########

ip=$(ifconfig | awk '/1/ { print $2 }'| awk -F: '{ print $2 }' | awk 'NR == 1')


#####################
#MENÚ DE INSTALACIÓN#
#####################

clear
echo "################################################################################"
echo "################################################################################"
echo "##                                                                            ##"
echo "##        NNN     NN       AAA       GGGGGGGG  IIIIIIIIII OOOOOOOOOO SSSSSSSS ##"
echo "##       NNNN    NN      AA AA      GG            II     OO      OO SS    SS  ##"
echo "##      NN NN   NN     AA   AA     GG            II     OO      OO SS         ##"
echo "##     NN  NN  NN    AAAAAAAAA    GG   GGGG     II     OO      OO SSSSSSSSS   ##"
echo "##    NN   NN NN   AA       AA   GG     GG     II     OO      OO        SS    ##"
echo "##   NN    NNNN  AA         AA  GG     GG     II     OO      OO  SS    SS     ##"
echo "##  NN     NNN AA           AA GGGGGGGGG IIIIIIIIII OOOOOOOOOO  SSSSSSSS      ##"
echo "##                                                                            ##"
echo "################################################################################"
echo "################################################################################"
echo ""

while [ "$opcion" != "0" ]
do
    echo "¿Que desea hacer?"
    echo "-----------------"
    echo "    1. Instalar Nagios."
    echo "    2. Desinstalar Nagios."
    echo "    3. Instalar NagiosQL."
    echo "    4. Desinstalar NagiosQL."
    echo "    5. Instalar Pnp4nagios."
    echo "    6. Desinstalar Pnp4nagios."
    echo "    0. Salir."
    echo
    echo -n "     Elige una opción: "
    read opcion

    case $opcion in

#################
#INSTALAR NAGIOS#
#################

1 )      
echo ""
echo ""
echo "Se te va a solicitar 3 contraseñas: para mysql, para el usuario y el acceso a web (en este orden), en las 3 establece la contraseña a ser posible la misma, así evitaremos errores."
echo ""
read -p "Gracias."
    

#########################
#INSTALACIÓN DE PAQUETES#
#########################

apt-get update -y
apt-get upgrade -y
apt-get install -y apache2 libapache2-mod-php5 build-essential mysql-server mysql-client php-pear rrdtool librrds-perl php5-gd php5-mysql libssh2-1-dev libssh2-php libgd-graph-perl libgd2-xpm-dev


####################################################################
#CREACIÓN DEL USUARIO NAGIOS Y ASOCIACIONES CON EL USUARIO WWW-DATA#
####################################################################

useradd -m -s /bin/bash nagios
passwd nagios 
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data 


####################################
#DESCARGA DE NAGIOS Y DESCOMPRESIÓN#
####################################

cd /root
wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.5.0/nagios-3.5.0.tar.gz
tar -xzf nagios-3.5.0.tar.gz 


##################################
#INSTALACIÓN DE NAGIOS Y PERMISOS#
##################################

cd nagios/
./configure --prefix=/usr/local/nagios --with-command-user=nagios --with-command-group=nagcmd --with-nagios-user=nagios --with-nagios-group=nagcmd
sed -i 's:for file in includes/rss/\*;:for file in includes/rss/\*.\*;:g' ./html/Makefile
sed -i 's:for file in includes/rss/extlib/\*;:for file in includes/rss/extlib/\*.\*;:g' ./html/Makefile
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
make install-exfoliation
chmod 660 /usr/local/nagios/etc/htpasswd.users
chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users 


########################
#INSTALACIÓN DE PLUGINS#
########################

wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
tar -xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16/
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make
make install 


##########################################################
#CONFIGURACION INICIO DE NAGIOS Y COMPROBACIÓN DE ERRORES#
##########################################################

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
echo ""
echo "-----------------------------------------------"
echo "COMPRUEBA QUE NO HAYAN ERRORES Y PRESIONA ENTER"
read -p "-----------------------------------------------"


###################################################################
#AÑADIR SCRIPT AL INICIO DEL SISTEMA Y REINICIO DE NAGIOS Y APACHE#
###################################################################

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
/etc/init.d/nagios start
/etc/init.d/apache2 restart


 ###########################################
#ELIMINAR FICHEROS Y CARPETAS INNECESARIOS"
###########################################

rm /root/nagios-3.5.0.tar.gz
rm -rf /root/nagios
clear

#######
#DATOS#
#######

echo "#######"
echo "#DATOS#"
echo "#######"
echo ""
echo "Usuario mysql: root" echo "Contraseña: Primera_contraseña" echo "" echo "Usuario: nagios" echo "Contraseña: Segunda_contraseña" echo "" echo "Usuario navegador web: nagiosadmin" echo "Contraseña navegador web: Tercera_contraseña"
echo ""
echo "Ruta de la instalación de nagios: /usr/local/nagios"
echo ""
read -p "Ingresa en un navegador web la dirección: "$ip/nagios", usuario: nagiosadmin, contraseña: nagios, y a funcionar."
clear
;;


####################
#DESINSTALAR NAGIOS#
####################

2 )
        echo ""


####################
# ELIMINAR PAQUETES#
####################

apt-get remove -y apache2 libapache2-mod-php5 build-essential mysql-server mysql-client php-pear rrdtool librrds-perl php5-gd php5-mysql libssh2-1-dev libssh2-php libgd-graph-perl libgd2-xpm-dev


 ##########################
 #ELIMINAR USUARIO Y GRUPO#
 ##########################

        deluser nagios
        delgroup nagcmd


###########################
#ELIMINAR SCRIPT DE INICIO#
###########################

rm /etc/rcS.d/S99nagios


###########################
#ELIMINAR PAQUETES SUELTOS#
###########################

apt-get autoremove -y


###################
#ELIMINAR CARPETAS#
###################

rm -rf /usr/local/nagios/
rm -rf /home/nagios/


##############################
 #ELIMINAR ARCHIVOS RESIDUALES#
 ##############################

        dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P

echo
read -p "Desinstalado correctamente"
        echo
        clear
;;


###################
#INSTALAR NAGIOSQL#
###################

3 ) 
echo ""


######################################
#DESCARGA DE NAGIOSQL Y DESCOMPRESION#
######################################

cd /root
wget http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.2.0/nagiosql_320.tar.gz
tar -xzf nagiosql_320.tar.gz


#################################################
#INSTALACIÓN DE NAGIOSQL, DIRECTORIOS Y PERMISOS#
#################################################

mv nagiosql32 /usr/local/nagios/nagiosql
ln -s /usr/local/nagios/nagiosql /var/www/nagiosql
pear install HTML_Template_IT
mkdir /usr/local/nagios/etc/objects/hosts
mkdir /usr/local/nagios/etc/objects/services
mkdir /usr/local/nagios/etc/objects/backup
mkdir /usr/local/nagios/etc/objects/backup/hosts
mkdir /usr/local/nagios/etc/objects/backup/services
chown -R nagios:nagcmd /usr/local/nagios
chmod 770 /usr/local/nagios/nagiosql/config
chmod g+w /usr/local/nagios/nagiosql/
chmod g+w /usr/local/nagios/etc/objects/hosts/ /usr/local/nagios/etc/objects/services/ /usr/local/nagios/etc/objects/backup /usr/local/nagios/etc/objects/backup/hosts /usr/local/nagios/etc/objects/backup/services


############################################
#ESTABLECER EL TIMEZONE PARA LA INSTALACIÓN#  El metodo de sustitución es un poquito
############################################  cutre pero no doy con la tela del comando sed.

sed "s/;date.timezone =/date.timezone ='Spain'/gi" /etc/php5/apache2/php.ini >> /etc/php5/apache2/php.ini2
rm -rf /etc/php5/apache2/php.ini
mv /etc/php5/apache2/php.ini2 /etc/php5/apache2/php.ini


#####################
#REINICIAR SERVICIOS#
#####################

service nagios restart 
service apache2 restart


################################
#INSTALACIÓN DESDE EL NAVEGADOR#
################################

clear
echo "Ahora tienes que abrir un navegador web y acceder a la dirección: $ip/nagiosql"
echo "Pero NO cierres esta ventana ya que despues volveremos a aquí"
echo ""
echo "En el navegador encontraras 4 pasos muy sencillos"
echo ""
echo "1. Selecciona en el navegador arriba a la derecha el idioma de la instalación y presionamos INICIAR INSTALACIÓN."
echo "2. Comprobará todos los requisitos, todos estarán en verde menos uno que está en amarillo, es normal."
echo "3. En la configuración cambia solo las contraseñas de: "
echo " - Clave BD NagiosQL"
echo " - Administrative Database Password"
echo " - Clave Inicial NagiosQL"
echo " - Por favor repita la clave"
echo "4. ¿Acabas de llegar a la pantalla de Finalizando configuración en la que dice en rojo --Por favor borre el directorio install antes de continuar--? Si es así ya podemos continuar desde aquí"
echo ""
read -p "Presiona ENTER aquí."


#######################################
#BORRADO DEL DIRECTORIO DE INSTALACIÓN#
#######################################

rm -rf /usr/local/nagios/nagiosql/install/


############################################
#BORRADO DE LINEAS Y ADDICIÓN DE LAS NUEVAS#
############################################

cd /usr/local/nagios/etc
sed '23,59d' nagios.cfg >> nagios.cfg2
rm -rf nagios.cfg
mv nagios.cfg2 nagios.cfg
chown www-data:www-data nagios.cfg
chmod 775 nagios.cfg

echo "# OBJECT CONFIGURATION FILE(S)" >> /usr/local/nagios/etc/nagios.cfg
echo "# These are the object configuration files in which you define hosts," >> /usr/local/nagios/etc/nagios.cfg
echo "# host groups, contacts, contact groups, services, etc." >> /usr/local/nagios/etc/nagios.cfg
echo "# You can split your object definitions across several config files" >> /usr/local/nagios/etc/nagios.cfg
echo "# if you wish (as shown below), or keep them all in a single config file." >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# You can specify individual object config files as shown below:" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/commands.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/templates.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# Definitions for monitoring the local (Linux) host" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# Definitions for monitoring a Windows machine" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/windows.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# Definitions for monitoring a router/switch" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/switch.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# Definitions for monitoring a network printer" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_file=/usr/local/nagios/etc/objects/printer.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "# You can also tell Nagios to process all config files (with a .cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "# extension) in a particular directory by using the cfg_dir" >> /usr/local/nagios/etc/nagios.cfg
echo "# directive as shown below:" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_dir=/usr/local/nagios/etc/servers" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_dir=/usr/local/nagios/etc/printers" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_dir=/usr/local/nagios/etc/switches" >> /usr/local/nagios/etc/nagios.cfg
echo "#cfg_dir=/usr/local/nagios/etc/routers" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "##############" >> /usr/local/nagios/etc/nagios.cfg
echo "#RUTAS NUEVAS#" >> /usr/local/nagios/etc/nagios.cfg
echo "##############" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/contacttemplates.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/contactgroups.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/contacts.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/timeperiods.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/commands.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/hostgroups.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/servicegroups.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_dir=/usr/local/nagios/etc/objects/hosts" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_dir=/usr/local/nagios/etc/objects/services" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/hosttemplates.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/servicetemplates.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/servicedependencies.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/serviceescalations.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/hostdependencies.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/hostescalations.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/hostextinfo.cfg" >> /usr/local/nagios/etc/nagios.cfg
echo "cfg_file=/usr/local/nagios/nagiosql/serviceextinfo.cfg" >> /usr/local/nagios/etc/nagios.cfg


#######################
#ESTABLECIENDO TARGETS#
#######################

clear
read -p "Estamos terminando, ya solo quedan un par de pasos, Pulsa FINALIZAR en el navegador e ingresa usuario: admin y contraseña que pusiste. Pulsa ENTER."
clear
echo "Ahora nos vamos al apartado 'Administración' --> 'Config targets'"
echo "Pulsamos sobre el icono 'Modificar' en la fila localhost."
echo "Establecemos las siguientes rutas de configuración:"
echo ""
echo "Directorio base*: /usr/local/nagios/nagiosql/"
echo "Directorio de equipos*: /usr/local/nagios/etc/objects/hosts/"
echo "Directorio de servicios*: /usr/local/nagios/etc/objects/services/"
echo "Directorio de Backup*: /usr/local/nagios/etc/objects/backup/"
echo "Directorio de respaldo de equipos*: /usr/local/nagios/etc/objects/backup/hosts/"
echo "Directorio de backup de servicios*: /usr/local/nagios/etc/objects/backup/services/"
echo "Directorio de base de Nagios*: /usr/local/nagios/etc"
echo "Directorio de importación: /etc/nagios/import/"
echo ""
echo "Fichero de comandos de Nagios: /usr/local/nagios/var/rw/nagios.cmd"
echo "Fichero binario de Nagios: /usr/local/nagios/bin/nagios"
echo "Fichero de proceso de Nagios: /usr/local/nagios/var/nagios.lock"
echo "Fichero de configuración de Nagios*: /usr/local/nagios/etc/nagios.cfg"
echo ""
read -p "Guarda la configuración y vamos al ultimo paso"
clear
echo "Vamos a 'Herramientas' --> 'Control Nagios' y realizamos los 4 pasos"
echo ""
echo "1. Escribir los datos de monitorización."
echo "2. Escribir datos adicionales."
echo "3. Comprobar los ficheros de configuración."
read -p "4. Reiniciar Nagios."


#################################################
#ELIMINACION DE ARCHIVOS Y CARPETAS INNECESARIOS#
#################################################

rm -rf /root/nagiosql_320.tar.gz
echo ""
echo ""
read -p "Instalado correctamente"
        echo
        clear
        ;;


######################
#DESINSTALAR NAGIOSQL#
######################

4 )
echo ""

###############################
#ELIMINAR DIRECTORIOS Y ENLACE#
###############################

rm -rf /usr/local/nagios/nagiosql
rm -rf /var/www/nagiosql


##############################
#ELIMINACIÓN DE DATE.TIMEZONE#
##############################

sed "s/date.timezone ='Spain'/;date.timezone =/gi" /etc/php5/apache2/php.ini >> /etc/php5/apache2/php.ini2
        rm -rf /etc/php5/apache2/php.ini
        mv /etc/php5/apache2/php.ini2 /etc/php5/apache2/php.ini


###########################################################
#RESTAURACIÓN DE CONFIGURACIÓN INICIAL PRINCIPAL DE NAGIOS#
###########################################################

cd /usr/local/nagios/etc
        sed '1314,1374d' nagios.cfg >> nagios.cfg2
        rm -rf nagios.cfg
        mv nagios.cfg2 nagios.cfg
        chown www-data:www-data nagios.cfg
        chmod 775 nagios.cfg

echo "# OBJECT CONFIGURATION FILE(S)" >> /usr/local/nagios/etc/nagios.cfg
        echo "# These are the object configuration files in which you define hosts," >> /usr/local/nagios/etc/nagios.cfg
        echo "# host groups, contacts, contact groups, services, etc." >> /usr/local/nagios/etc/nagios.cfg
        echo "# You can split your object definitions across several config files" >> /usr/local/nagios/etc/nagios.cfg
        echo "# if you wish (as shown below), or keep them all in a single config file." >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# You can specify individual object config files as shown below:" >> /usr/local/nagios/etc/nagios.cfg
        echo "cfg_file=/usr/local/nagios/etc/objects/commands.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "cfg_file=/usr/local/nagios/etc/objects/contacts.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "cfg_file=/usr/local/nagios/etc/objects/templates.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# Definitions for monitoring the local (Linux) host" >> /usr/local/nagios/etc/nagios.cfg
        echo "cfg_file=/usr/local/nagios/etc/objects/localhost.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# Definitions for monitoring a Windows machine" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_file=/usr/local/nagios/etc/objects/windows.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# Definitions for monitoring a router/switch" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_file=/usr/local/nagios/etc/objects/switch.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# Definitions for monitoring a network printer" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_file=/usr/local/nagios/etc/objects/printer.cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "# You can also tell Nagios to process all config files (with a .cfg" >> /usr/local/nagios/etc/nagios.cfg
        echo "# extension) in a particular directory by using the cfg_dir" >> /usr/local/nagios/etc/nagios.cfg
        echo "# directive as shown below:" >> /usr/local/nagios/etc/nagios.cfg
        echo "" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_dir=/usr/local/nagios/etc/servers" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_dir=/usr/local/nagios/etc/printers" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_dir=/usr/local/nagios/etc/switches" >> /usr/local/nagios/etc/nagios.cfg
        echo "#cfg_dir=/usr/local/nagios/etc/routers" >> /usr/local/nagios/etc/nagios.cfg


#############################
#REINICIO DE NAGIOS Y APACHE#
#############################

service nagios restart
service apache2 restart
echo ""
        echo ""
        read -p "Desinstalado correctamente"
        echo
        clear
        ;;



#####################
#INSTALAR PNP4NAGIOS#
#####################

        5 )
        echo ""

########################################
#DESCARGA DE PNP4NAGIOS Y DESCOMPRESION#
########################################

wget sourceforge.net/projects/pnp4nagios/files/latest/pnp4nagios
tar -xzf pnp4nagios


#################################################
 #INSTALACIÓN DE NAGIOSQL, DIRECTORIOS Y PERMISOS#
 #################################################

cd pnp4nagios-0.6.21/
./configure --prefix=/usr/local/nagios/pnp4nagios
make all
make fullinstall
mv contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
chown -R nagios:nagcmd /usr/local/nagios/share/ssi/
chown -R nagios:nagcmd /usr/local/nagios/pnp4nagios/
/etc/init.d/apache2 restart


#######################################################
 #BORRADO DE LINEAS Y ADDICIÓN DE LAS NUEVAS NAGIOS.CFG#
 #######################################################

cd /usr/local/nagios/etc/
        sed '784,866d' nagios.cfg >> nagios.cfg2
        rm -rf nagios.cfg
        mv nagios.cfg2 nagios.cfg
        chown www-data:www-data nagios.cfg
        chmod 775 nagios.cfg

echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "process_performance_data=1" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "##########################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILES#" >> /usr/local/nagios/etc/nagios.cfg
echo "##########################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "host_perfdata_file=/usr/local/nagios/pnp4nagios/var/host-perfdata" >> /usr/local/nagios/etc/nagios.cfg
echo "service_perfdata_file=/usr/local/nagios/pnp4nagios/var/service-perfdata" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "###################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES#" >> /usr/local/nagios/etc/nagios.cfg
echo "###################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "host_perfdata_file_template=DATATYPE::HOSTPERFDATA\\tTIMET::\$TIMET$\\tHOSTNAME::\$HOSTNAME$\\tHOSTPERFDATA::\$HOSTPERFDATA$\\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND$\\tHOSTSTATE::\$HOSTSTATE$\\tHOSTSTATETYPE::\$HOSTSTATETYPE$" >> /usr/local/nagios/etc/nagios.cfg
echo "service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\\tTIMET::\$TIMET$\\tHOSTNAME::\$HOSTNAME$\\tSERVICEDESC::\$SERVICEDESC$\\tSERVICEPERFDATA::\$SERVICEPERFDATA$\\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND$\\tHOSTSTATE::\$HOSTSTATE$\\tHOSTSTATETYPE::\$HOSTSTATETYPE$\\tSERVICESTATE::\$SERVICESTATE$\\tSERVICESTATETYPE::\$SERVICESTATETYPE$" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "###############################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE MODES#" >> /usr/local/nagios/etc/nagios.cfg
echo "###############################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "host_perfdata_file_mode=a" >> /usr/local/nagios/etc/nagios.cfg
echo "service_perfdata_file_mode=a" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING INTERVAL#" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "host_perfdata_file_processing_interval=15" >> /usr/local/nagios/etc/nagios.cfg
echo "service_perfdata_file_processing_interval=15" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING COMMANDS#" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "host_perfdata_file_processing_command=process-host-perfdata-file" >> /usr/local/nagios/etc/nagios.cfg
echo "service_perfdata_file_processing_command=process-service-perfdata-file" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg


#########################################################
 #BORRADO DE LINEAS Y ADDICIÓN DE LAS NUEVAS COMMANDS.CFG#
 #########################################################

cd /usr/local/nagios/nagiosql
sed '158,164d' commands.cfg >> commands.cfg2
rm -rf commands.cfg
mv commands.cfg2 commands.cfg
chown www-data:www-data commands.cfg
chmod 775 commands.cfg

echo "define command {" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        command_name                    process-host-perfdata-file" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        command_line                    /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/nagios/pnp4nagios/var/host-perfdata" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        register                        1" >> /usr/local/nagios/nagiosql/commands.cfg
echo "}" >> /usr/local/nagios/nagiosql/commands.cfg
echo "" >> /usr/local/nagios/nagiosql/commands.cfg
echo "define command {" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        command_name                    process-service-perfdata-file" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        command_line                    /usr/local/nagios/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/nagios/pnp4nagios/var/service-perfdata" >> /usr/local/nagios/nagiosql/commands.cfg
echo "        register                        1" >> /usr/local/nagios/nagiosql/commands.cfg
echo "}" >> /usr/local/nagios/nagiosql/commands.cfg
echo "" >> /usr/local/nagios/nagiosql/commands.cfg
echo "###############################################################################" >> /usr/local/nagios/nagiosql/commands.cfg
echo "#" >> /usr/local/nagios/nagiosql/commands.cfg
echo "# Check command configuration file" >> /usr/local/nagios/nagiosql/commands.cfg
echo "#" >> /usr/local/nagios/nagiosql/commands.cfg
echo "# END OF FILE" >> /usr/local/nagios/nagiosql/commands.cfg
echo "#" >> /usr/local/nagios/nagiosql/commands.cfg
echo "###############################################################################" >> /usr/local/nagios/nagiosql/commands.cfg
clear
echo "Ahora nos iremos a $ip/nagiosql en el navegador y accederemos a 'Herramientas' -> 'Importación de Datos', seleccionaremos la dirección '/usr/local/nagios/nagiosql/commands.cfg' y le daremoa a Importar."
echo ""
read -p "Ahora vamos a 'Comandos' -> 'Definiciones' y Escribimos archivos de configuración."
clear


###################
#AÑADIR ACTION URL#
###################

echo "Este paso no es automatizado ya que cada uno puede configurarlo donde quiera."
echo ""
echo "1. Accedemos a 'Supervisión' -> 'Plantillas de Host'."
echo "2. Elegimos donde queramos establecer las gráficas (pueden ser los que queramos) y le damos a modificar".
echo "3. Nos vamos a la pestaña 'Ajustes adicionales'."
echo "4. en URL de acción copiamos el siguiente texto: /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=_HOST_"
echo ""
echo "5. Guardamos, escribe los archivos de configuración y nos dirigimos a 'Plantillas de servicios', elegimos los que queramos y los modificamos."
echo "6. Y en la pestaña 'Ajustes adicionales', en URL acción añadimos: /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=\$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=\$SERVICEDESC$"

echo ""
read -p "7. Guardamos, escribimos los archivos de configuración y nos dirigimos a 'Herramientas' -> 'Control Nagios' y realizamos los 4 pasos."


##################################
#RENOMBRAR FICHERO DE INSTALACIÓN#
##################################

mv /usr/local/nagios/pnp4nagios/share/install.php /usr/local/nagios/pnp4nagios/share/install-original.php


##############################################
#LIMPIEZA DE FICHEROS Y CARPETAS INNECESARIAS#
##############################################

rm -rf /root/pnp4nagios
rm -rf /root/pnp4nagios-0.6.21


######################
#ACCESO A INSTALACIÓN#
######################

clear
echo "Accede en el navegador a $ip/nagios y ya tendrás las gráficas listas para mostrarse tanto en host como en services."
echo ""
read -p "Instalación completa."
        clear
        ;;


########################
#DESINSTALAR PNP4NAGIOS#
########################

        6 )
        echo ""

######################################
#ELIMINACION DE ARCHIVOS INNECESARIOS#
######################################

rm -rf /usr/local/nagios/share/ssi/status-header.ssi
rm -rf /etc/apache2/conf.d/pnp4nagios.conf


#######################################################
 #BORRADO DE LINEAS Y ADDICIÓN DE LAS NUEVAS NAGIOS.CFG#
 #######################################################

cd /usr/local/nagios/etc/
        sed '1294,1333d' nagios.cfg >> nagios.cfg2
        rm -rf nagios.cfg
        mv nagios.cfg2 nagios.cfg
        chown www-data:www-data nagios.cfg
        chmod 775 nagios.cfg

echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "process_performance_data=0" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "##########################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILES#" >> /usr/local/nagios/etc/nagios.cfg
echo "##########################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#host_perfdata_file=/usr/local/nagios/pnp4nagios/var/host-perfdata" >> /usr/local/nagios/etc/nagios.cfg
echo "#service_perfdata_file=/usr/local/nagios/pnp4nagios/var/service-perfdata" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "###################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE TEMPLATES#" >> /usr/local/nagios/etc/nagios.cfg
echo "###################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$" >> /usr/local/nagios/etc/nagios.cfg
echo "#service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "###############################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE MODES#" >> /usr/local/nagios/etc/nagios.cfg
echo "###############################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#host_perfdata_file_mode=a" >> /usr/local/nagios/etc/nagios.cfg
echo "#service_perfdata_file_mode=a" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING INTERVAL#" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#host_perfdata_file_processing_interval=15" >> /usr/local/nagios/etc/nagios.cfg
echo "#service_perfdata_file_processing_interval=15" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "# HOST AND SERVICE PERFORMANCE DATA FILE PROCESSING COMMANDS#" >> /usr/local/nagios/etc/nagios.cfg
echo "#############################################################" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg
echo "#host_perfdata_file_processing_command=process-host-perfdata-file" >> /usr/local/nagios/etc/nagios.cfg
echo "#service_perfdata_file_processing_command=process-service-perfdata-file" >> /usr/local/nagios/etc/nagios.cfg
echo "" >> /usr/local/nagios/etc/nagios.cfg


 #########################################################
 #BORRADO DE LINEAS Y ADDICIÓN DE LAS NUEVAS COMMANDS.CFG#
 #########################################################

clear
        echo "Ahora tenemos que borrar los comandos para los host 'process-service-perfdata-file' y 'process-host-perfdata-file'."
echo "Este paso no es automático porque el fichero lo ordena Nagios en orden alfabético, así que si hemos añadido otros comandos se podrán borrar por error."
echo ""
echo "En NagiosQL ve a 'Comandos' -> 'Definiciones' y borralos, luego a 'Herramientas' -> 'Control Nagios'"
read -p "Presiona Enter para continuar."

clear
echo "Ahora iremos a 'Supervisión' -> 'Plantillas de Host' modificamos la plantilla que le añadimos el 'url de acción' en 'Ajustes adicionales' en la instalación "
echo "Repetimos el proceso con el resto y con los añadidos en 'Plantilla de Servicio'."
echo ""
echo "Ahora iremos a 'Herramientas' -> 'Control Nagios' y reiniciamos."
read -p "Presiona Enter para continuar."
echo ""
echo ""
read -p "Desinstalado correctamente."
clear
;;


 esac
done

echo ""
echo ""
echo "Espero que te haya sido de ayuda el script, no soy programador profesional asi que es posible que tenga pequeños errores, o mas comandos de los necesarios, en cualquier caso nagios ha sido testeado una vez instalado/desinstalado y funciona correctamente."
echo ""
echo "Cualquier correción será bienvenida a: foxmclaud154@gmail.com - Si vas a utilizar el script en otro sitio o modificarlo te agradecería que me nombrases :)"
echo ""
echo "¡Hasta la próxima!"
echo
exit 0


----------------------------------------------------------------------------------------------------------------------------------


Ejecútalo con:

root@Nagios:~# bash instalacion.sh


No debería dar ningún problema siguiendo los pasos, si aún así falla en algo o no sabes como seguir comenta. Se aceptan sugerencias y mejoras. 

Un saludo :)

PD: La instalación del script es la misma que puedes encontrar en los post de instalación de este mismo blog. Las desinstalaciones incluidas en el script utilizalas sólo si has instalado con este mismo script, ya que si no puede fallar (Nagiosql y Pnp4nagios).

13 comentarios:

  1. Hola mi nombre es Donovan, llevo aprox 4 meses realizando pruebas con nagios, en este momento estoy instalando tu script ya que por tantas pruebas y pruebas que he hecho he perdido mucho tiempo, aun asi lo hago en ambientes virtuales pero esto de seguro falicitara mas las cosas, lo estoy instalando en este momento, te agradezco por tomarte el tiempo para facilitar la instalacion. No se mucho del tema pero si se de algo con gusto lo puedo postear. En cuanto termine la instalción te informo como me fue...Gracias!

    ResponderEliminar
    Respuestas
    1. Si, es una de las cosas por lo que me puse escribirlo, en ambientes fuera de máquinas virtuales que no se pueden hacer snapshot es muy muy pesado reinstalar una y otra vez. Cualquier ayuda es bienvenida para mejorar.

      Ya contarás que tal te ha ido, no debería de dar problema alguno, y si no avisa.

      Un saludo

      Eliminar
  2. Buenas,

    llevo una semana pegándome, casi literalmente, con nagios. Tengo una versión 3.4 andando, pero no hago andar nagiosql...
    He probado con tu script, pero yo parto de una ubuntu server 12.04 y no me está andando...he instalado todo esto antes de ejecutar el script:

    sudo apt-get install apache2
    sudo apt-get install libapache2-mod-php5
    sudo apt-get install build-essential
    sudo apt-get install mysql-server mysql-client
    sudo apt-get install php-pear
    sudo apt-get install rrdtool
    sudo apt-get install librrds-perl
    sudo apt-get install php5-gd

    Me vendría bien si me pudieras decir las dependencias o los requerimientos de instalación para dicha versión.

    Gracias de antemano!

    ResponderEliminar
    Respuestas
    1. Buenas. En un principio no debería dar problemas con ninguna versión (salvo que cambien los nombres de los paquetes) de Ubuntu, de hecho, todas las pruebas que hice a la hora de instalar el script han sido en servers.

      Es posible que la ruta en la que instalaste Nagios sea distinta de la del script (/usr/local/nagios) y por eso a la hora de instalarlo no lo haga bien.

      Los paquetes a instalar son:

      apt-get install apache2 libapache2-mod-php5 build-essential mysql-server mysql-client php-pear rrdtool librrds-perl php5-gd php5-mysql libssh2-1-dev libssh2-php libgd-graph-perl libgd2-xpm-dev

      Los últimos cinco paquetes por lo que comentas no los has instalado, y es posible que no te funcione correctamente.

      Comprueba las dos cosas, y si has probado el script y no funciona por lo que sea, echale un vistazo a:
      http://asircierva.blogspot.com.es/2013/04/instalacion-nagios-ubuntu-1204.html (Instalación de Nagios)
      http://asircierva.blogspot.com.es/2013/04/instalacion-nagiosql-ubuntu-1204_251.html (Instalación de Nagiosql)

      Igualmente voy a instalarme un entorno con Nagios 3.4 para probar y te digo algo.

      Un saludo

      ---------------------------------------

      Acabo de instalar un entorno Nagios con la versión 3.4 y no me ha dado ningún problema.

      También comentar que como no soy programador oficial (estoy empezando en este mundillo), el script no se ha adapta a unos parámetros configurables, si no que ya están predefinidos, así que es posible que al no instalar Nagios con el script y pasar al Nagiosql haya algo que no funcione correctamente.

      Y como te comento, mira los dos enlaces que son publicaciones en el blog y que si los sigues no te dará problemas algunos.

      Ya me contarás si lo has solucionado ^^.

      Un saludo

      Eliminar
    2. Buenas! gracias por las molestias, por adelantado. He probado a hacer una instalación de cero de ubuntu server, instalando nagios y tampoco me funciona. Y lo peor de todo es que no he visto cual es el problema...saludos

      Eliminar
    3. Perdón por el retraso en responder. Pues no sabría decirte si has seguido la instalacíon paso por paso. ¿Que es lo que falla, o hasta donde llegas?

      Eliminar
  3. Buenas.

    Si lo que quieres saber es que cosas hay que tocar para hacer funcionar NagiosQl pásate por mi otro post explicado paso a paso --> http://asircierva.blogspot.com.es/2013/04/instalacion-nagiosql-ubuntu-1204_251.html

    Espero que te sirva de ayuda, y para cualquier cosa estamos por aquí

    Un saludo

    ResponderEliminar
  4. Buenas.

    Siendo sincero no he conseguido ver cuanta memoria de disco duro queda en estos, lo que si se puede con nagios es que te marque el Ok, el Warning y el Critical, pues estos se pueden definir mediante porcentajes, aunque no sepas exactamente cuanto disco duro le queda te puedes hacer una idea de como va.

    El comando que se utiliza es el "check_disk", si tienes Nagiosql viene definido por defecto en uno de los servicio seleccionables y luego ya puedes modificarle los valores a tu gusto cuando creas un servicio, si no, puedes modificarlo en el fichero "check_disk.sh". En cualquier caso échale un ojo y si no te aclaras por aquí estamos.

    Un saludo

    ResponderEliminar
  5. Hola. El script funciona perfecto el 12.04. lo he estado revisando y probando en 14.04 pero no levanta le interfaz web de Nagios en localhost/nagios. Tienes algún otro post para esa versión de ubuntu? ya he probado y revisado el script pero no le veo la posible falla. Saludos y gracias por éste, que sí funciona Ok.

    ResponderEliminar
    Respuestas
    1. Buenas.

      Perdona por tardar en responder, no he probado nagios en la 14.04, haré pruebas haber como va y con cualquier cosa te aviso.

      Un saludo

      Eliminar
    2. He estado revisando las nuevas versiones de Nagios para adaptarlas a Ubuntu 14.04 y hay que modificar varias cosas y hacer pruebas haber como las levanta. Iré poniendome a ratos e ire probando hasta que funcione, ya que puede ser que cambien las carpetas, textos de los ficheros a cambiar etc etc...

      Eliminar
    3. me pasa lo mismo en la version 14.04 no levanta el servicio web :(

      Eliminar
  6. Hola ... por favor aclárame esta duda... tengo instalado NAGIOS y NAGIOSQl todo funcionaba bien cuando de pronto NAGIOSQL ya no me permite importar archivos, al momento que le doy en importar se descarga un archivo import.php y nada mas ,,, por favor espero su respuesta

    ResponderEliminar