En algunas ocasiones podemos encontrarnos con la necesidad de monitorizar equipos Linux, pero que debido a su criticidad decidamos no instalar el agente. Para estos casos existe una alternativa: monitorización por SSH.

Se trata de que el servidor de monitorización se conecte al servidor a monitorizar mediante un comando SSH, y disponemos de un plugin llamado check_by_ssh que nos permite precisamente esa función.

Para poder utilizar el check_by_ssh es importante que tengamos acceso directo al servidor de destino sin necesidad de entrar usuario y contraseña en una sesión SSH, y para eso vamos a utilizar certificados.

Cosas a tener en cuenta:

- El servidor de origen debe disponer de una llave pública que debe estar en el servidor a monitorizar.

- El servidor a monitorizar debe permitir el acceso sin contraseña y con certificado.

- La conexión del servidor de monitorización al servidor a monitorizar debe realizarse con el usuario que ejecuta la aplicación de monitorización, en este caso el usuario es “Nagios”. Este usuario debe tener además suficientes privilegios en el servidor de destino para ejecutar los plugins.

- Existen certificados RSA y DSA. Para este proceso es recomendable RSA (no nos extenderemos esta vez en analizar ventajas e inconvenientes de ambos).

Vista toda esta casuística, vamos pues a realizar todos los pasos:

1. En el servidor a monitorizar creamos el usuario “Nagios”, lo ponemos dentro del grupo root y le creamos la ubicación correspondiente:

useradd nagios -G 0 -d /home/nagios

2. En el servidor de destino editamos el fichero de configuración de SSH para poder acceder de forma remota:

vi /etc/ssh/sshd_config

Hay que tener en cuenta estas opciones, hay que revisar que no estén comentadas ni con la opción “no”:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

3. Creamos la carpeta para dejar posteriormente el certificado:

mkdir /home/monitor/.ssh

4. Creamos el fichero que contendrá los certificados públicos de los equipos que van a acceder de forma remota:

touch /home/nagios/.ssh/authorized_keys

5. Para finalizar en el servidor a monitorizar solo hay que reiniciar el servicio SSH:

service sshd restart

6. En el servidor de monitorización accedemos al usuario “Nagios”:

su - nagios

7. Generamos un certificado RSA (lo dejamos en la ubicación que nos dé por defecto y cuando nos pida frase de seguridad la dejamos en blanco):

ssh-keygen –t rsa

8. Editamos el fichero con la clave pública, recogemos todo su contenido y lo copiamos en el fichero authorized_keys del servidor al que queremos acceder, en este caso: authorized_keys

Ya podemos realizar una prueba desde la consola:

ssh nagios@IP_SERVIDOR_DESTINO

Y aquí un exemplo del uso del plugin:

-bash-4.1$ ./check_by_ssh -H 192.168.1.48 -C uptime

16:29:40 up 3:34, 1 user, load average: 0.00, 0.00, 0.00