Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

Welcome to Pandora FMS Community Forums Soporte de la comunidad Monitorizar servidor linux sin agente Pandora

  • Monitorizar servidor linux sin agente Pandora

    Posted by eugeniolpa on May 23, 2016 at 19:15

    Hola,

    Se me presenta una situaciĆ³n para la que he optado por preguntar, ya que no he encontrado nada sobre ello, o no conozco la forma adecuada de buscarlo.
    Me van a instalar un servidor que hace las labores de conversor de medios que pilla televisiĆ³n IP y lo despliega al cableado de TV de la empresa. Este servidor no es un servidor al uso, en realidad es un hardware gestionado con una distribuciĆ³n de linux solo lectura precompilado (de ahĆ­ que no pueda instalar el agente de Pandora).
    De lo que sƭ dispongo es de reportes de estado de ciertas Ɣreas a travƩs de json con un formato:

    ,”net”: {

    “eth0:”:{“inStart”:”43756180414″,”outStart”:”1150530073″,”inStop”:”43757903574″,”outStop”:”1150578519″,”timeout”:”1″},
    “lo:”:{“inStart”:”41976404787″,”outStart”:”41976404787″,”inStop”:”41977472371″,”outStop”:”41977472371″,”timeout”:”1″},
    “tun0:”:{“inStart”:”128851″,”outStart”:”1565155″,”inStop”:”128851″,”outStop”:”1565155″,”timeout”:”1″}}

    Como tengo monitorizado todo lo monitorizable a traves de Pandora, quisiera tambiƩn agregar alertas de este equipo.
    ĀæSabĆ©is si existe alguna forma de que Pandora interprete este json y poder configurar alertas en funciĆ³n de la informaciĆ³n que contiene?

    Muchas gracias de antemano.

    antojose replied 8 years, 5 months ago 2 Members · 1 Reply
  • 1 Reply
  • antojose

    Member
    September 15, 2016 at 23:19
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    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.