Mostrando las entradas con la etiqueta Nagvis. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Nagvis. Mostrar todas las entradas

jueves, 31 de agosto de 2023

Nagvis integración con LDAP con acceso de invitado

En entradas anteriores detalle los pasos para instalar y configurar NAGIOS con varios componentes entre ellos NAGVIS, hasta ahí todo bien, pero resulta que una vez terminados los mapas y ya en producción, era necesario dar acceso a ciertos mapas y un grupo de usuarios. Como sabrán no es buena práctica asignar credenciales diferentes para cada aplicación, así que intenté integrarlo con LDAP de Directorio activo.

Como habrán visto, NAGVIS, utiliza de forma predeterminada su base de datos sqlite para el proceso de autenticación, por lo que no es práctico crear usuarios para que puedan acceder a la herramienta.

Uno de los temas que complicaba, era que cada usuario que se autentica mediante directorio activo solo tenga permisos de invitado y de ser el caso poder asignarle otro rol en la herramienta.

Así que si tienes una necesidad parecida, pongámonos manos a la obra.

Importante debes tener iniciado sesión con la cuenta admin antes de hacer cualquier cambio.

1.- Editar el archivo nagvis.ini.php, si has usado la entrada anterior debería estar en esta ubicación: /usr/local/nagvis/etc/nagvis.ini.php, en el archivo detallan varios modulos de inicio de sesión LogonMixed, LogonDialog, LogonEnv, LogonMultisite) por lo que en la linea 148 aproximadamente hay que descomentar las siguientes o agregarlas:

                logonmodule="LogonMixed"
                logonenvvar="REMOTE_USER"
                logonenvcreateuser="1"
                logonenvcreaterole="Guests"

Explicaremos un poco estas lineas, opción logonmodule NagVis utilizará- el modulo LogonMixed, esto significa que hará uso de la variable de entorno de Apache "REMOTE_USER" como nombre de usuario. Si la variable REMOTE_USER no contiene datos o esta vacía, seguirá con el mensaje de inicio de sesión de NagVis. La opción logonenvcreateuser al estar establecida en "1" le estamos indicando que cree automáticamente el usuario con el dato de la variable REMOTE_USER enviada por el navegador, en la base de datos del usuario de NagVis si no existe. Finalmente la opción logonenvcreaterole le indicamos que asigne automáticamente el rol de "Guests" a los nuevos usuarios creados.

2.- Modificar la configuración de Apache para NagVis (nagvis.conf) . En mi caso el archivo se encuentra en /etc/httpd/conf.d/nagvis.conf , en la linea modificar o cambiar, AllowOverride  establecerlo en All, esto permitirá que el archivo .htaccess anule la configuración, como el mecanismo de autenticación.

3.- crear o ver si este archivo .htaccess se creó en la carpeta compartida de NagVis (/usr/local/nagvis/share/.htaccess) y agregamos estas lineas, tener en cuenta que para autenticación se establece ldap y file y colocamos la ruta del archivo de nagios:

AuthType Basic
 AuthName "LDAP Authentication"
 AuthBasicProvider ldap file
 AuthUserFile /usr/local/nagios/etc/htpasswd.users
 AuthLDAPURL "ldap://servidorldap.com.ec servidorladap2.com.ec/dc=com,dc=ec?sAMAccountName?sub?(objectClass=*)"
 AuthLDAPBindDN "CN=cuenta nagios,OU=CuentasGenéricas,OU=Usuarios,DC=com,DC=ec"
 AuthLDAPBindPassword contraseñadela cuenta
 Require valid-user

4.- Acceder a la URL de NagVis, aparecerá la típica ventana de autenticación:


El usuario puede iniciar sesión con sus credenciales de Active Directory y luego podrá ver todos los mapas a los que tiene acceso el rol "Invitados". ¿Recuerdas que todavía estás conectado como administrador? Ahora puede ver los usuarios creados automáticamente en "Menú de usuario" -> "Administrar usuarios", por lo que puedes dar acceso de "Administradores" a mi usuario personal de AD. y también puedes empezar a asignar roles a otros usuarios de AD.

Nota: confirmar que tengas instalado el modulo ldap (yum install mod_ldap).

Espero que haya sido útil. si de pronto no encuentras mucha información sobre este tema, seguro te servirá de mucho.

Nos vemos en la próxima!!!.

viernes, 14 de diciembre de 2018

Instalar Nagios integrado con Pnp4nagios + Check_Mk + Nagvis sobre Centos 7


Hace tiempo atrás, había instalado Nagios para monitorear la infraestructura de TI, en estos días quise documentar la instalación con  los últimas versiones disponibles partiendo de una instalación mínima con CENTOS 7, espero les guste y no haber omitido ningún detalle, así que manos a la obra!!!

Verifique que se haya asignada una dirección IP al dispositivo de red principal:
ip addr

si su Dispositivos de red está inactivo y  realizó la instalación mínima sin agregar grupos de paquetes al diseño predeterminado o bien sin configurar dispositivos de red, descubrirá que los dispositivos de red están desactivados. Edite los archivos de configuración de cada dispositivo de red:

 /etc/sysconfig/network-scripts/ifcfg-ens33

Asegúrese que al menos una de los dispositivos de red tenga la opción «ONBOOT» con el valor «yes»:
 
ONBOOT="yes"
Una vez que ya tenemos conexión a la red, vamos a entretenernos con la instalación:

1: Instalación de apache

yum install httpd
service httpd start
yum install php php-mysql

2: Descargar paquetes Nagios y extras
Yum install wget
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.2.tar.gz
wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
tar -xzf nagios-4.4.2.tar.gz
tar -xzf nagios-plugins-2.2.1.tar.gz
3: Instalar paquetes requeridos
yum install httpd php gcc glibc glibc-common gd gd-devel perl unzip –y
Esperamos y nos tomamos un café o jugamos una partida de algo.
4: Agregar usuarios y asignar permisos
/usr/sbin/useradd -m nagios
passwd nagios
/usr/sbin/groupadd nagcmd # Used for Web Interface
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache

5: Compilar y Ejecutar
Cd nagios-4.4.2
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
Ahora configuramos la seguridad para el front end
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
service nagios restart
service httpd restart
6: Instalar plugin de nagios
Cd ..
cd nagios-plugins-2.1.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
Agregamos Nagios como Servicio
chkconfig --add nagios
chkconfig nagios on
Verify the sample Nagios configuration files.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios start
7: Deshabilitar selinux
nano /etc/sysconfig/selinux
and set SELINUX=disabled
reboot the machine

8: Add firewall rules
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=444/tcp --permanent
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --reload
systemctl restart nagios
systemctl restart httpd
9: Installation NRPE
yum groupinstall "Development Tools"
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
tar -xzf nrpe-3.2.1.tar.gz
cd nrpe
yum install -y gcc glibc glibc-common openssl openssl-devel perl wget
./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all
make install
make install-plugin
make install-daemon
--nano /etc/xinetd.d/nrpe
--and add only_from = your interal ip
--service xinetd restart
Si va todo bien hasta aquí, ya podemos ingresar a nagios http://IP/nagios
10: Instalación de pnp4nagios
yum install rrdtool perl-Time-HiRes rrdtool-perl php-gd
wget https://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.26.tar.gz
download pnp4 nagios (https://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.26.tar.gz)
tar –zxf pnp4nagios-0.6.26.tar.gz
cd pnp4nagios-0.6.26
./configure
make
make all
make fullinstall
chkconfig --add npcd && chkconfig --level 35 npcd on
systemctl reload httpd
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php-ori
11: editar archivo nagios.cfg
usr/local/nagios/etc/nagios.cfg
add / edit
# Bulk / NPCD mode
process_performance_data=1
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECH$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

12: edit commands.cfg
/usr/local/nagios/etc/objects/commands.cfg
# 'process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$$
}
# 'process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$$
}
define command{
command_name process-service-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command{
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
13: editar el archivo templates.cfg
/usr/local/nagios/etc/objects/templates.cfg
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
Step 14: editamos un host o localhost
define host{
 use linux-server,host-pnp
 host_name localhost
 alias localhost
 address 127.0.0.1
 }
define service{
 use local-service,srv-pnp
 host_name localhost
 service_description PING
 check_command check_ping!100.0,20%!500.0,60%
 }
cp /root/pnp4nagios-0.6.26/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
systemctl restart npcd
systemctl restart httpd
systemctl restart nagios
Ahora si pasamos solo el ratón por el icono nos muestra ya un popup con la gráfica
15: instalación de check_mk
Para después instslar nagvis necesitamos (check_mk)
wget 'http://www.mathias-kettner.de/download/mk-livestatus-1.2.8.tar.gz'
tar -xzf mk-livestatus-1.2.8.tar.gz
./configure --with-nagios4
make
make install                                                                                                     
si te da error prueba es porque te faltan paquetes, prueba con estos
yum install libstdc++-static
Si deseas instalar check-mk realiza lo siguiente, con su interfaz realiza lo siguiente:
yum install xinetd openssl -y
yum install python -y
yum install epel-release -y

yum install --nogpgcheck check-mk-raw-1.4.0p12-el7-59.x86_64.rpm
omd create sandbox
su - sandbox
omd start
htpasswd -m ~/etc/htpasswd cmkadmin
 
http://IP/sandbox, usando las crendeciales cmkadmin
16: editar archivo  nagios.Cfg
/usr/local/nagios/etc/nagios.cfg
and add : broker_module=/usr/local/lib/mk-livestatus/livestatus.o /usr/local/nagios/var/rw/live
service nagios restart
Revisar que el log se incia el agente correctamente
Yum install nano
nano /usr/local/nagios/var/nagios.log
17: Instalación de nagvis
wget http://www.nagvis.org/share/nagvis-1.9.10.tar.gz
tar -xzf nagvis
./install
Por último editamos el fichero de configuración que nos crea para apache en /etc/httpd/conf.d/nagvis.conf y hacemos un par de cambios para que funcione correctamente en esta versión de apache (2.4):
  #AllowOverride None
  Require all granted
Service httpd restart
Ingresamos  http://IP/nagvis
Lo primero que tendremos que hacer en Nagvis será probar que funciona el acceso a los datos de nuestro nagios a través de mklivestatus.
Ir a un mapa existente (p.e. “Demo1. Datacenter Hamburg”).
    Menu Edit map / lock-unlock all
    Menu Edit Map / Map Options / listbox “backend_id” y selecciona live_1 (save).
    Menu  Edit Map / Add Icon / Host, sitúa el puntero en el map, selecciona un un host en el “listbox” (tendrás al menos tu localhost) y listo.
    Menu Edit map / lock-unlock all  para quitar el modo edición.

18: Integración con Slack (Opcional)
yum install perl perl-devel -y
yum install perl-Net-SSLeay
yum install perl-libwww-perl
yum install perl-Crypt-SSLeay
yum install perl-LWP-Protocol-https
wget https://raw.github.com/tinyspeck/services-examples/master/nagios.pl
cp nagios.pl /usr/local/bin/slack_nagios.pl
chmod 755 /usr/local/bin/slack_nagios.pl

Editar el archivo con las credenciales abajo: /usr/local/bin/slack_nagios.pl
my $opt_domain = "yourdomain.slack.com"; # Su dominio
my $opt_token = "yoursecret"; # El token de tu página de servicios de Nagios

Step 19: En el mismo archivo editamos contacts
Quitamos el comentario
define contact {
contact_name slack
alias Slack
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-slack
host_notification_commands notify-host-by-slack
}
Listo tendremos instalado NAGIOS http://IP/nagios
Bueno espero que les haya gustado y funcionado he tratado de no omitir ningún detalle.
Nos vemos en la próxima!!!