Ad Widget

Collapse

Zabbix+Perl_script+SSH

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • rick_rian
    Junior Member
    • Jul 2014
    • 14

    #16
    Jimson, честно говоря я и не знал о таком его поведении, просто воспользовался им, так как нашел достаточно статей, в которых он применяется и описывается.
    Egor4ik, ваш совет вкупе с выставлением владельца скрипта zabbix дал результат!
    Но поведение данного модуля я все равно постараюсь разобрать, почему же он пытается писать что-то в /root/.ssh, тут скорее всего что-то с самим пользователем.

    Спасибо огромное всем, кто поддержал, кто помог советом!
    Очень радостно знать, что российское zabbix-сообщество может помочь и помогает!
    Надеюсь, когда-нибудь я сам смогу кому-нибудь помочь)
    Еще раз спасибо!

    Comment

    • Egor4ik
      Member
      • May 2012
      • 68

      #17
      zabbix LLD USB

      Закончу уж полуфабрикат. Не знаю кому понадобится, но вдруг.

      Code:
      # apt-get install libnet-ssh2-perl
      Code:
      #!/usr/bin/perl
      
      use strict;
      use Net::SSH2;
      
      my $hostname = shift || "localhost";
      my $username = shift || "zabbix";
      my $password = shift || "someharddefaultpassword";
      my $port = shift || 22;
      
      
      my $cmd = "/usr/sbin/lsusb";
      my $ssh2 = Net::SSH2->new();
      $ssh2->connect($hostname,$port,Timeout=>5) or die "Unable to connect Host $@ \n";
      $ssh2->auth_password($username,$password) or die "Unable to login $@ \n";
      my $chan1 = $ssh2->channel();
      $chan1->exec($cmd);
      
      my $first = 1;
      
      print "{\n";
      print "\t\"data\":[\n\n";
      
      for (<$chan1>) {
      my ($bus, $device, $iddev, $name) = m/Bus (\d{3}) Device (\d{3}): ID (\w{4}:\w{4})\s+(.*)/;
          if ($name=~/root hub/){ next; }
          print "\t,\n" if not $first;
          $first = 0;
          print "\t{\n";
          print "\t\t\"{#USBID}\":\"$iddev\",\n";
          print "\t\t\"{#USBNAME}\":\"$name\"\n";
          print "\t\t\"{#USBBUS}\":\"B=$bus D=$device\"\n";
          print "\t}\n";
      }
      print "\n\t]\n";
      print "}\n";
      Не подвержен внесению всякой гадости в known_hosts, не ругается на ключи, учтён таймаут (5сек), отфильтрованы корневые хабы.

      Результат примерно такой:

      /opt/zabbix/usblld.pl {Host-address} {ssh-username} {ssh-password} [{ssh-port}]
      Code:
      {
      	"data":[
      
      	{
      		"{#USBID}":"046d:c52f",
      		"{#USBNAME}":"Logitech, Inc. Wireless Mouse M305"
      		"{#USBBUS}":"B=002 D=002"
      	}
      	,
      	{
      		"{#USBID}":"04f2:b159",
      		"{#USBNAME}":"Chicony Electronics Co., Ltd "
      		"{#USBBUS}":"B=006 D=003"
      	}
      
      	]
      }
      Есть серьёзное сомнение насчёт второго двоеточия тут: "{#USBID}":"04f2:b159",.
      Last edited by Egor4ik; 24-07-2014, 09:33.

      Comment

      Working...