::
Hola eugeniolpa.
Yo los servidores Linux los monitorizo sin el agente software atravĆ©s del comando “expect” mediante un script, hay que instalarlo en el servidor pandora, te pongo un ejemplo:
root@xxxxxxxx[/etc/pandora/plugins]# more conexion_expect_linux.sh
#!/usr/bin/expect
set ip [lindex $argv 0]
set usuario [lindex $argv 1]
set contrasena [lindex $argv 2]
set timeout 2
spawn ssh -o StrictHostKeyChecking=no $usuario@$ip
expect “*?assword:*”
send “$contrasenar”
expect “*->”
send “uname -srvnr”
expect “*->”
send “df -hr”
expect “*->”
send “top -d 1 -n 1 | grep -B 6 ‘PID USER’r”
expect “*->”
send “exitr”
expect eof
Este script es llamado por otro script en perl, este perl lo que hace es grabar la salida del “expect” en un fichero txt.
Este fichero txt es leĆdo por los diferentes mĆ³dulos que quieras poner en tu agente.
Debes crear un script en perl por cada mĆ³dulo que quieres monitorizar. Pero solo uno crea el fichero txt, los demĆ”s solo lee ese fichero, con lo cual solo te hace falta como parĆ”metro para leer el fichero la IP.
Para cada uno de estos scripts debes crear un “plugins registrado”, en el cual configuras las variables que necesitas, como, IP, usuario y contraseƱa del servidor linux.
Cuando crees el mĆ³dulo tienes que elegir la opciĆ³n “Crear un modulo nuevo de servidor de complementos” y en el campo “Complemento” pones el plugin creado anteriormente y se desplegarĆ” los parĆ”metros que debes introducir, como IP, usuario y contraseƱa.
Te pongo un ejemplo del script en Perl que crea el txt y otro que solo lo lee.
Este graba fichero txt y muestra informaciĆ³n del sistema operativo Linux.
root@xxxxxxxxx[/etc/pandora/plugins]# more conexion_linux_info.pl
#!/bin/env perl
$HOST=””; $USER=””; $PASS=””; @VAR=””;
$INFO1=””;
$elemento=””; $x=0;
$HOST=$ARGV[0];
$USER=$ARGV[1];
$PASS=$ARGV[2];
$file=”/etc/pandora/plugins/logs/$HOST.txt”;;
@VAR=`/etc/pandora/plugins/conexion_expect_linux.sh $HOST $USER $PASS > $file`;
open FILEIN,”<",$file;
@ficheroin=;
close FILEIN;
$x=0;
foreach $elemento(@ficheroin)
{
Ā Ā Ā Ā $num1=index($ficheroin[$x], “uname -srvn”);
Ā Ā Ā Ā if ($num1 >= 0)
Ā Ā Ā Ā {
Ā Ā Ā Ā Ā Ā Ā Ā $INFO1=”$ficheroin[$x+1]”;
Ā Ā Ā Ā Ā Ā Ā Ā last;
Ā Ā Ā Ā }
Ā Ā Ā Ā $x++;
}
print “$INFO1”;
exit;
Este lee el txt y muestra uso de CPU:
root@xxxxxxxxx[/etc/pandora/plugins]# more conexion_linux_cpu.pl
#!/bin/env perl
$HOST=””;
$HOST=$ARGV[0];
$estado=`ps -ef | grep “conexion_linux_info.pl $HOST” | grep -v grep`;
if ($estado ne “”) {exit;}
$file=”/etc/pandora/plugins/logs/$HOST.txt”;
$comando=”grep ‘id,’ $file | awk ‘ { print $5 }'”;
$comando=`$comando`;
$n=sprintf(“%.2f”,substr($comando,0,5));
$n=sprintf(“%.2f”,100-$n);
print “$n”;
exit;
Bueno espero haberme explicado, tambiƩn sirve para otros usuarios que os sirva.
Saludos.