Monitorizar temperaturas con nagios. speedfan vía snmp

speedfan
speedfan

speedfan

Además de monitorizar servicios, disponibilidades … es de gran utilidad controlar también los aspectos físicos de los elementos monitorizados. Para sistemas windows existe una utilidad llamada speedfan que proporciona la información que devuelven los sensores de temperatura instalados en placa base, cpu y gpu. También proporciona el estado de los ventiladores.

Para que nagios sea capaz de consultar la información es interesante poder consultar toda esta información vía snmp. Para que sean posibles estas consultas existe una aplicación que sirve la información de speedfan por snmp.

La instalación de cada uno de los elementos es muy trivial limitándose a “siguiente” “siguiente”.

Instalación de speedfan

installspeedfan443.exe

Instalación de servicio para speedfan

sfsvcsetup.exe

Para consultar el servicio vía snmp

sfsnmp.exe

Configurar nagios

Una vez instalados los programas es hora de configurar la monitorización.

define service {
        use                     critical-service
        host_name               servidor_monitorizado
        service_description     Temperatura Sistema
        check_command           check_temp!2!"x>36"!"x>40"
}

En el check_command se facilitan los parámetros:

  1. Índice del sensor. Se pueden ver en el listado que proporciona speedfan.
  2. A continuación los valores umbral para que devuelva un warning o un critical.

En este caso se monitoriza el sensor 2, saltando alarma warning cuando la temperatura supera los 36ºC o un critical cuando sobrepasa los 40ºC.

Autenticación ldap / AD de windows para nagios

Nagios

En el caso de que nagios se encuentre en una red que disponga de un directorio, es muy recomendable hacer uso de éste para utilizar los usuarios que contiene. Es muy común que el directorio existente sea un Active Directory (AD) de windows, por lo que os describo la configuración de apache2 para que se realice la autenticación ldap.

Es necesario tener instalados y activos los siguientes módulos relacionados con ldap:

authnz_external.load
authnz_ldap.load
ldap.conf
ldap.load

En mi caso me faltaba tener instalado el módulo libapache2-mod-authnz-external.

apt-get install libapache2-mod-authnz-external

Y la configuración es:

<VirtualHost tu_ip:80>
ServerName tu_web.com
ServerAlias tu_web.com
Redirect permanent / https://tu_web.com/
</VirtualHost>

<VirtualHost tu_ip:443>

SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl.key

DocumentRoot "/usr/local/nagios/share"

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
ScriptAlias /cgi-bin/nagios /usr/local/nagios/sbin

Alias /nagios "/usr/local/nagios/share"
Alias /wol "/var/www/wol"

<DirectoryMatch (/usr/local/nagios/share|/usr/local/nagios/sbin)>
AuthType Basic
AuthName "Nagios Access"
AuthBasicProvider ldap
# Incluir usuario con permisos en el directorio
AuthLDAPBindDN "CN=usuario,OU=Usuarios,DC=tu_dominio,DC=com"
AuthLDAPBindPassword "pass_usuario"
# URL ldap
AuthLDAPURL "ldap://ip_del_controlador_de_dominio:389/OU=Usuarios,DC=tu_dominio,DC=com?sAMAccountName?sub?(objectClass=user)"
AuthUserFile "/dev/null"

SSLRequireSSL
require valid-user

Options FollowSymLinks
DirectoryIndex index.php
AllowOverride AuthConfig
Order Allow,Deny
Allow From All
</DirectoryMatch>

CustomLog /var/log/apache2/nagios.log combined
ErrorLog /var/log/apache2/nagios.error.log

</VirtualHost>

Certificado SSL para nagios con OpenSSL

Un certificado SSL es un certificado digital utilizado para securizar el tráfico de información. En este caso para la comunicaciones entre la web de nagios y el usuario.

OpenSSL

Normalmente este certificado es proporcionado por una entidad autorizada (Verisign, Comodo …), aunque con la particularidad de que es de pago. También nosotros mismos podemos generar certificados igualmente seguros, con la salvedad de que los navegadores lo consideran no confiable. Si el nagios en este caso es de uso interno no existe problema alguno.

Instalamos OpenSSL

apt-get install openssl

Creación de llave privada

openssl genrsa -out server.key 1024

Crear un CSR (Certificate Signing Request)

openssl req -new -key server.key -out server.csr

Generar el certificado SSL

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Instalar el certificado

cp server.crt /etc/ssl/certs/ssl.crt
cp server.key /etc/ssl/certs/ssl.key

Modificar el fichero de configuración de apache2 para nagios. Este es un ejemplo y cada configuración tendrá el oportuno.

<VirtualHost tuiip:80>
ServerName tusitio.com
ServerAlias tusitio.com
Redirect permanent / https://tusitio.com/
</VirtualHost>

<VirtualHost tuip:443>

SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl.key

DocumentRoot "/usr/local/nagios/share"

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
ScriptAlias /usr/lib/cgi-bin "/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

Alias /nagios "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">
SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

CustomLog /var/log/apache2/nagios.log combined
ErrorLog /var/log/apache2/nagios.error.log

</VirtualHost>

Instalar nagios4 en debian 8 – jessie

Creo que ya es hora de actualizar mi vetusto nagios2 por un nuevo y flamante nagios4 (si, ya sé que me he saltado la 3). A fecha de hoy no existe nagios4 en repositorios oficiales, por lo que instalo directamente desde los fuentes.

La guía oficial de instalación está disponible en Installing_Nagios_Core_From_Source.pdf. A continuación describo el proceso que realizo en mi server.

  • Instalación de prerequisitos.
apt-get update
apt-get install wget build-essential apache2 php5-gd libgd2-xpm-dev libapache2-mod-php5
  • Creación de usuario y adición a grupos.
useradd -m -s /bin/bash nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data

Leer más Instalar nagios4 en debian 8 – jessie