Nagios en Ubuntu Server
UBUNTU SERVER
Cambiar el idioma a Español
http://www.redeszone.net/2013/11/07/como-cambiar-el-idioma-ubuntu-server-desde-un-terminal/
Cambiar la distribución del teclado
Este comando inicia un asistente de configuración de teclado.
dpkg-reconfigure keyboard-configuration
Instalar SSH para utilizar con Putty (por ejemplo)
apt-get install ssh
Configuración de Dirección IP fija para interfaz eth0
auto eth0
iface eth0 inet static
address 192.168.33.210
netmask 255.255.255.0
network 192.168.33.0
Broadcast 192.168.33.255
Gateway 192.168.33.1
DNS-nameservers 8.8.8.8 8.8.4.4
(en el caso de que resolv.conf
pierda la configuración cada vez que se reinicia)
- address es la dirección IP que quieres ponerle a tu máquina.
- netmask es la máscara de subred de esa dirección IP.
- network es la red a la que pertenece esa dirección IP.
- Broadcast es la direción IP de difusión de esa red.
- Gateway es la dirección IP de la puerta de enlace predeterminada. Generalmente es la dirección IP del equipo de la red o Router por el que podemos salir al exterior o conectarnos a Internet. Si no conoces cual es la dirección de la puerta de enlace de tu red, tendrás que preguntarle a quien pueda saberlo o probar a poner la IP 192.168.1.1 y probar si funciona ya que en la mayoría de ocasiones suele ser esa.
Recordemos! Verificar en
/etc/resolv.conf
si los DNS, son correctos o si no estuvieran en dicho caso podríamos usar el de google.
nameserver 8.8.8.8
nameserver 8.8.4.4
DNS Server
http://www.redeszone.net/gnu-linux/configurar-un-servidor-dns-bind-en-linux-ubuntu/
Instalación de Nagios 4.0.X en Ubuntu Server 14.04 LTS
Lo primero será instalar lo que vamos a necesitar, que es un Apache, sus utilidades, la libreria de PHP5 y lo necesario para la instalación del software.
# apt-get install wget build-essential apache2 php5-gd libgd2-xpm-dev libapache2-mod-php5
Creamos el usuario de Nagios y uno nuestro y le ponemos el password:
# /usr/sbin/useradd -m -s /bin/bash nagios
# passwd nagios
# /usr/sbin/useradd -m -s /bin/bash ale
# passwd ale
Creamos el grupo Nagios y se añade el usuario:
# /usr/sbin/groupadd nagios
# /usr/sbin/usermod -G nagios nagios
# /usr/sbin/usermod -G nagios ale
Se crea el grupo nagcmd para permitir lanzar comandos externos:
# /usr/sbin/groupadd nagcmd
# /usr/sbin/usermod -a -G nagcmd nagios
# /usr/sbin/usermod -a -G nagcmd ale
# /usr/sbin/usermod -a -G nagcmd www-data
Descargamos el Nagios: (OJO! EN DONDE ESTAMOS)
cd /home/username (en mi caso ale)
# wget HTTP://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz
Lo descomprimimos:
# tar xzf nagios-4.0.8.tar.gz
# cd nagios-4.0.8/
Compilamos el código de Nagios:
# ./configure --with-command-group=nagcmd
Luego instalamos los binarios:
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
Añadimos la configuración del Nagios al Apache:
# /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf
Cambiamos la contraseña al usuario nagiosadmin que da acceso a la web y reiniciamos el Apache:
Para usar htpasswd debe instalar el siguiente paquete:
apt-get install apache2-utils, y luego continuar:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
# service apache2 restart
Añadimos el mail del administrador en el contact.cfg:
# nano /usr/local/nagios/etc/objects/contacts.cfg
A continuación instalaremos los plugins de Nagios, para ello lo primero es descargarlos y descomprimirlos:
# wget HTTP://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
# tar xzf nagios-plugins-2.0.3.tar.gz
# cd nagios-plugins-2.0.3
Lo compilamos y hacemos la instalación de los binarios:
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
# ./configure --with-nagios-user=ale --with-ale-group=nagios
# make
# make install
Añadimos los módulos de CGI y Rewrite al Apache y lo reiniciamos:
# a2enmod rewrite
# a2enmod cgi
# service apache2 restart
Configuramos que se inicie el servicio de Nagios en el arranque:
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Revisamos que este todo bien en el Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Reiniciamos el servicio:
# service nagios start
Para configurar el correo, instalar las utilidades de Ubuntu de correo:
# apt-get install mailutils
Yo tengo un relay así que simplemente he añadido la IP en el /etc/postfix/main.cf, después se modifica command.cfg para que envíe a través del Postfix:
# nano /usr/local/nagios/etc/objects/commands.cfg
Cambiar las referencias de ‘/bin/mail
’ a ‘/usr/bin/mail
’, reiniciar el servicio de Nagios y ya estará configurado el envío de correos.
Ya se puede acceder a la web, la máquina localhost estará configurada por defecto. La dirección es http://IP-del-servidor/nagios/, pedirá usuario y contraseña de que es el de nagiosadmin. O agregamos nuestro usuario al apache.
# htpasswd -c /usr/local/nagios/etc/htpasswd.users ale
# service apache2 restart
MIB Browser para conocer los OID
Buscamos con la IP, y usamos la opción “Get Bulk” para mostrar todos los OID disponibles del equipo al cual realizamos la búsqueda.
UNA VEZ INSTALADO NAGIOS PROCEDEMOS A SU CONFIGURACIÓN
El archivo de configuración general está en “/usr/local/nagios/etc/nagios.cfg
“. Es es este archivo donde definimos todos los archivos de configuración que se van a incluir aparte de otras configuraciones, de manera que debemos descomentar aquellos que vayamos a usar.
cd /usr/local/nagios/etc/
nano nagios.cfg
Ahora vamos a centrarnos en los archivos de configuración dentro de la carpeta “/usr/local/nagios/etc/objects
“. En cada archivo de configuración se define lo que se quiere mirar de cada tipo de dispositivo (Router, switch, servidores windows, etc.).
En el fichero commands.cfg
se definen los comandos a utilizar. Por ejemplo, podemos definir que nos manden los emails de aviso en un formato de correo específico. La variable $USER1$
(usada en commnands.cfg
) indica donde están los script de nagios.
En el archivo contacts.cfg
están los contactos. Por ejemplo, está la dirección de email que introducimos para enviar los emails de aviso en el post instalar Nagios en Ubuntu.
En el archivo template.cfg
hay plantillas para crear nuevos archivos de configuración. Hay plantillas para hosts, contactos, etc.
Aparte, están los archivos localhost.cfg, switch.cfg, windows.cfg
en los que definiremos nuevos dispositivos y servicios a monitorizar.
Añadir un nuevo Host
Vamos al archivo windows.cfg
porque vamos a añadir un servidor Windows. Copiamos el ejemplo de Host que aparece y cambiamos los parámetros, además vamos a meterlo en el grupo “windows-servers”:
nano /usr/local/nagios/etc/objects/windows.cfg
Ejemplo:
define Host{
use windows-server
host_name ale
(IMPORTANTE! este nombre lo usaremos en el servicio)
alias Mi Ordenador
(ponemos lo que queremos)
address 192.168.33.201
(Dirección IP del cliente con el NSClient instalado)
icon_image win40.gif
(agregar un ícono o imagen a nuestro Host)
statusmap_image win40.gd2
parents switch
(en el caso que “cuelgue” de un dispositivo, ejemplo: switch)
hostgroups windows-servers
}
Las imágenes que Nagios cogerá se guardan en el siguiente directorio:
/usr/local/nagios/share/images/logos/
Añadir un nuevo Servicio
Ahora vamos añadir un servicio para el nuevo Host que acabamos de definir. Para ello al final del archivo windows.cfg
veremos algunos ejemplos de servicios.
Ejemplo: en este caso vamos a monitorizar HTTP.
define service{
use generic-service
host_name ale (IMPORTANTE! este nombre usaremos en el servicio)
service_description HTTP ale
check_command check_http
}
cuando terminamos ejecutamos los siguientes comandos:
/etc/init.d/nagios restart
/etc/init.d/apache2 restart
Verificar la Configuración de Nagios:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Recordemos!
¿Qué es un OID?
- Basicamente, un OID, o Identificador de Objeto, es una secuencia de números que se asignan jerárquicamente y que permite identificar objetos en la red, siendo usados con gran cantidad de protocolos.
- La definición formal de los OIDs se encuentra en la recomendación X.208 (ASN.1) de la ITU-T, disponible en las páginas de la ITU.
Instalación del agente NSClient++ en Windows
1) Descargar el agente: http://sourceforge.net/projects/nscplus/
2) Ejecutar, aceptamos la licencia, seleccionamos Typical y siguiente.
3) Colocamos la IP del servidor Nagios y una clave para el cliente NSClient++, activamos todas las opciones y siguiente.
4) Instalamos
5) Vamos al servicio de Windows y verificamos que esé en automático y en “Iniciar Sesión” que la opción “Permitir que el servicio interactué con el escritorio” esté marcado.
6) Aceptar
Posible Error en make install-webconf
make: *** [install-webconf] Error 1
Solución:
# mkdir /etc/httpd
# mkdir /etc/httpd/conf.d
# mkdir /etc/httpd/conf.d/nagios.conf
# make install-webconf
Posible Error CGI
Not Found
The requested URL /nagios/cgi-bin/statusmap.cgi
was not found on this server.
La solución es:
apt-get install selinux-utils
setenforce=Permissive
service nagios restart
service apache2 restart
Posible error de Permisos en CGI:
It appears as though you do not have permission to view information for any of the hosts you requested… If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.
La solución es editar el archivo cgi
nano /usr/local/nagios/etc/cgi.cfg
Agregamos en todas las autorizaciones correspondientes nuestro usuario.
authorized_for_system_information=nagiosadmin,ale
authorized_for_configuration_information=nagiosadmin,ale
authorized_for_system_commands=nagiosadmin,ale
authorized_for_all_services=nagiosadmin,ale
authorized_for_all_hosts=nagiosadmin,ale
authorized_for_all_service_commands=nagiosadmin,ale
authorized_for_all_host_commands=nagiosadmin,ale
Más Información:
http://nagios.sourceforge.net/docs/3_0/configcgi.html
Posible Problema con Apache
Set the ‘ServerName’ directive globally to suppress this message
Solución:
nano /etc/apache2/apache2.conf
Y agregamos:
ServerName localhost
Error de usuario removido del grupo Admin
Solución:
http://www.maketecheasier.com/fixing-sudo-error-in-ubuntu/
Error no coincide la contraseña del NSClient++
Solución con un ejemplo:
Definimos la contraseña para el comando check_nt
Vamos a establecer la contraseña en nuestro server NAGIOS , la misma que definimos al instalar el agente NSClient en la maquina a monitorear. Solo será necesario por esta vez, cuando se agreguen nuevos clientes ya no se requeriría.
Estando en el mismo path /usr/local/nagios/etc/objects
editamos el fichero commands.cfg
# nano commands.cfg
Localizamos la parte donde viene el comando check_nt y agregamos el parametro -s “la contraseña que definimos”
Para saber los servicios podemos ir al: HTTP://servidor/nagios –> Configuration –> Host –> “Host” (ejemplo sobremesa)
Ordenador Fijo 192.168.33.201
Portatil LAN 192.168.33.202
Portatil Wifi 192.168.33.203
Servidor Ubuntu con Nagios 192.168.33.210 (Usuario: ale Contraseña: Root1234)