Existen múltiples maneras de monitorizar un servidor Linux, pero es muy habitual que la gente sea reacia a instalar agentes. A corto plazo y en infraestructuras pequeñas nos ahorra trabajo, pero a largo plazo e infraestructuras grandes puede ser un inconveniente.
Existe un plugin llamado CHECK_BY_SSH que nos permite conectarnos remotamente y ejecutar un comando en el servidor de destino (o un plugin) pero tiene el inconveniente de que precisa tener los certificados instalados. Instalar certificados no es un problema, pero nos llevará algo de trabajo, o por lo menos algo más que la solución que presentamos a continuación.
Este pequeño script nos permite ejecutar comandos en el equipo remoto, mediante la función SSH2 de PHP.
#php ssh_pass_auth.php -h 192.168.1.40 -u root -p SolucionsIM -c "ping 192.168.1.1 -c 1"
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.561 ms
--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.561/0.561/0.561/0.000 ms
El único requisito para poder ejecutar este escript es tener instalado el paquete PHP de SSH2 (en x64 y para RedHat y CentOS se llama php-pecl-ssh2.x86_64), lo podemos encontrar en el yum.
php ssh_pass_auth.php -h 192.168.1.40 -u root -p SolucionsIM -c "/sim/check_load -w 90,90,90 -c 95,95,95"
OK - load average: 1.07, 0.36, 0.17|load1=1.070;90.000;95.000;0; load5=0.360;90.000;95.000;0; load15=0.170;90.000;95.000;0;
Simplemente hemos copiado el check_load en la carpeta de destino y lo ejecutamos remotamente.
"