lunes, julio 23, 2018

Fedora 28 / CENTOS 7 + Nagios 4.3.4 + Thruk 2.22

Thruk es una interfaz, frontEnd o shell   web para servicios de monitorización como:  Naemon, Nagios, Icinga and Shinken usando como interfaz o puente de comunicación una API conocida como LiveStatus creado por un Mathias Kettner.


Thruk es elegido por muchas SysAdmin y DevOps por sus ventajas optimizadas para varias tareas y también porque al cubrir varios servicios pueden tener todo en una sola interfaz.

* ademas de varias exportaciones de gráficos

Panorama Dashboard
https://www.thruk.org/documentation/introduction.html

Preparación y consideraciones previas:

Para esta configuración se deben configurar la librería LiveStatus ya que la versión ofrecida en los repositorios no funciona, por lo que se requieren las librerías de compilación previamente descargadas.

SELinux policy Puede ser un problema, se deben agregar los ajustes necesarios para que acceda a los recursos, en esta ocasión para avanzar, lo vamos a desactivar, el uso de la SELinux, lo trataremos en otro post.

setenforce Permissive

verificar con: sestatus


LiveStatus es diferente a check-MK* que está en el repositorio oficial se recomienda compilar mejor desde el código fuente.

LiveStatus usa el puerto 6567 via Xinetd, por lo que hay que instar xinetd, y configurar-lo apropiadamente.

Al momento de hacer pruebas se recomienda hacerlo en un servidor de pruebas, y por comodidad se apaga el firewall, en producción es indispensable agregar las reglas del firewall necesarias.


Instalación.

  1. Descargar los archivos desde el sitio oficial. Se pueden descargar usando el repositorio o descargando los RPM manualmente, sin agregar el repositorio.

    Esto solo instala la interfaz web, y depende de apache, en este caso al ser Fedora o CENTOS  de lightHTTP o de httpd, por que lo que las configuraciones básicas de toda aplicación web son validas y aplican, al ser una aplicación un poco "vieja" usa CGI.

  2. Instalar HTTPD
  3. Instalar los RPM descargados

    # dnf install thruk-2.22-1.fc28.x86_64.rpm thruk-base-2.22-1.fc28.x86_64.rpm libthruk-2.22-0.fc28.x86_64.rpm thruk-plugin-reporting-2.22-1.fc28.x86_64.rpm
     
  4. iniciar el servidor:


    # systemctl httpd start

    Hasta aqui todo lo que tenemos es el cascaron de thruk pero sin ningun host que supervisar.

  5. Se puede probar en http://localhost/thruk

  6. Instalar Nagios.
    Dado que Thruk es solo un shell, necesita de un servicio de monitorización de los ya mencionados anteriormente, en este caso lo haremos con Nagios, pueden instalarlo en cualquier equipo, sea en el equipo actual o cualquier cliente.

    Recuerde que Nagios o el servicio de Nagios es indispensable para
  7. # dnf install nagios nagios-plug*
    


  8. Probamos Nagios.

    abrir en el navegador http://host_name/nagios

    Debería cargar con el host por defecto y los servicios


  9. Ahora Descargamos el midle-Man LiveStatus.

    desde : https://mathias-kettner.de/download/

    # wget "https://mathias-kettner.de/download/mk-livestatus-1.5.0i2.tar.gz" 
    # tar xzfv "mk-livestatus-1.5.0i2.tar.gz"
    # cd mk-livestatus-1.5.0i2.tar.gz
    
    
  10. Configuracion, Compilación e instalación.
    ./configure 
    

    En esta etapa podrían hacer falta las librerías de compilación necesarias, sino las habéis instalado previamente, e incluso algunas como estas:

    dnf install rrdtool-devel
    dnf install lstdc*

    NOTA: otro detalle a tener en cuenta es que si estas usando la version 4.x de nagios entonces debes agregar un parámetro a la configuración.

    ./configure --with-nagios4


    compilar e Instalar
    # make
    # sudo make install
    
  11. Ahora agregamos la configuración en el archivo de configuración de Nagios.

    /etc/nagios/nagios.cfg:    *esto es un ejemplo, las rutas pueden cambiar
    nano /etc/nagios/nagios.cfg
    
    broker_module=/usr/local/lib/mk-livestatus/livestatus.o /usr/local/nagios/var/rw/live
    event_broker_options=-1
    

    Puntos a considerar en aquí:
    El comando "broker_module", recibe 2 parámetros, el modulo, y el parámetro del módulo, en este caso la ruta donde fue instalador el modulo, y donde se creará el socket,

    En fedora para encontrarlo se utilizo el comando find:

    # find / -name *livestatus* 

    Obviamente esta búsqueda retornará varias resultados, se elije sabiamente tomando como patron /lib/mk-livestatus 



    y el socket debe ser creado en una ruta que exista y que el usuario nagios tenga acceso, lo mas efectivo es /tmp, pero puede ser otra, puedes probar varias.

    agregarlo al archivo de configuración.

    nano /etc/nagios/nagios.cfg
    
    broker_module=/usr/local/lib/mk-livestatus/livestatus.o /tmp/live

    reiniciar Nagios.

    Si ocurrió algún error, aparecerá algo como esto:




    Para saber que paso o cual puede ser la causa revisamos el log  en

    cat /var/log/nagios/nagios.log

    Si el modulo no carga dirá que no se puede cargar, sino mostrara todo sin errores.

    Otro error común es que no tiene acceso a la ruta para crear el Socket, entonces cambiarlo a una ruta que se tenga acceso.
  12. Ahora probamos Xinetd

    nano /etc/xinetd.d/livestatus

    para configurar-lo se debe recordar que se utiliza el comando unixcat, y se debe colocar la ruta de este comando según la distribución, y se coloca la ruta donde se creó el socket de ejecución en el punto anterior.

    # cat /etc/xinetd.d/livestatus
    service livestatus
    {
     type = UNLISTED
     port = 6557
     socket_type = stream
     protocol = tcp
     wait = no
     # limit to 100 connections per second. Disable 3 secs if above.
     cps = 100 3
     instances = 500
     per_source = 250
     # Disable TCP delay, makes connection more responsive
     flags = NODELAY
     user = nagios
     server = /usr/local/bin/unixcat
     server_args = /tmp/live
     # configure the IP address(es) of your Nagios server here:
     #only_from = 127.0.0.1 10.0.20.1 10.0.20.2 192.168.0.42
     disable = no
    }
    

    Se reinicia el servicio:
    # service xinetd restart
    y luego revisamos el log via journalistctl para confirmar que está bien.
    # journalctl -u xinetd
    Si todo funcionó no mostrará errores, sino indicara donde está la falla.
  13. Ahora procedemos a configuar un host en la interfaz de Thruk.
    - entrar a  la interfaz
    - se accede con el usuario
    - se procede a configurar el host: El host puede ser configurado via nombre o direccion IP, usando el puerto establecido en el xinetd si se usa "statuslive" tambien soporta protocolos http.



    Al final la opción: Config Tool


    agregando el host.

    aquí se puede agregar cualquier host que tenga el servicio livestatus.




  14. FIN


    Ahora solo repetir la configuración de los hosts, según lo requieran.

Espero que les sea útil.


BIBLIOGRAFIA


http://wiki.cayu.com.ar/doku.php?id=manuales:nagios:thruk


https://www.rootusers.com/monitoring-multiple-back-end-nagios-icinga-servers-with-thruk/

http://www.eldespistado.com/mk-livestatus-acceso-datos-nagios-unixcat-lql/#

https://mathias-kettner.de/checkmk_livestatus.html

https://www.thruk.org/



https://www.thruk.org/documentation/introduction.html
https://www.rootusers.com/monitoring-multiple-back-end-nagios-icinga-servers-with-thruk/

http://www.eldespistado.com/mk-livestatus-acceso-datos-nagios-unixcat-lql/#

https://mathias-kettner.de/checkmk_livestatus.html

https://www.thruk.org/

https://www.thruk.org/documentation/introduction.html





















No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

POST MAS populares