Ad Widget

Collapse

Мониторинг устройств с web-интерфейсом

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #1

    Мониторинг устройств с web-интерфейсом

    Добрый день!

    Ситуация: существует NAS (SansDigital AccuNAS), который может контролироваться с помощью WEB-интерфейса. При входе на устройство, необходимо авторизоваться и затем можно попасть в разные страницы настройки, мониторинга, статистики и т.п.

    Настройки SNMP включают в себя одну разрешающую галочку и даже после этого SNMP ответ включает в себя десяток полей с бесполезной информацией. Самая полезная информация - это версия Linux, под которой все работает - и аптайм устройства.

    В WEB-интерфейсе можно получить чуть больше информации - температура и статус дисков (если разобрать получаемые страницы с помощью самодельных скриптов)

    Но вот вопрос: А как получить эти страницы, если я не знаю, как заставить curl/wget послать данные для авторизации на устройство, а потом запросить оттуда несколько разных страниц?

    Пробовал использовать ключи "-u username -p password", пробовал задавать адрес устройства в виде "usernameassword@ip_address". Пока ничего не получилось.

    Может кто-то подскажет пути, по которым надо начинать исследовать? Например, скрипты на perl/php, которые умеют авторизоваться и забирать данные с устройств? Тогда уже можно будет "подпилить" скрипты для своей ситуации.

    Спасибо заранее и надеюсь на подсказки.
    Sincerely yours,
    Aleksey
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    Частично решил проблему.
    Воспользовался наличием ssh-соединения между Zabbix server и NAS.
    Настроил доступ и создал 20+ "SSH agent" проверок для контроля основных параметров.

    Осталось нерешенной (и в принципе нерешаемой, как я понял) задача контроля свободного пространства на дисках, раздаваемых через iSCSI коннектор.
    Максимум, что я могу увидеть - это статус логического тома и его общий размер.
    Sincerely yours,
    Aleksey

    Comment

    • yukra
      Senior Member
      • Apr 2013
      • 1359

      #3
      Originally posted by aib
      Пробовал использовать ключи "-u username -p password", пробовал задавать адрес устройства в виде "usernameassword@ip_address". Пока ничего не получилось.
      curl -d 'username=admin' -d 'password=P@ssw0rd' http://nas

      Originally posted by aib
      Может кто-то подскажет пути, по которым надо начинать исследовать? Например, скрипты на perl/php, которые умеют авторизоваться и забирать данные с устройств? Тогда уже можно будет "подпилить" скрипты для своей ситуации.
      Парсим ЛК мегафона и рисуем график

      Кстати может кто подскажет что за провалы на графике? потому что возвращяются они не после пополнения счета. А такое ощущение что деньги пропадают на какой то момент, а потом обратно появляются.
      Code:
      #!/usr/bin/env perl
      
      use warnings;
      use strict;
      
      use LWP::UserAgent;
      
      my $number = '89267777777';
      my $password = '123456';
      
      my $browser = LWP::UserAgent->new;
      $browser->timeout(240);
      my $url = 'https://lk.megafon.ru/';
      
      $browser->cookie_jar({});
      $browser->agent('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0');
      
      my $response = $browser->get( $url );
      my $CSRF = $response->content;
      
      $CSRF =~ s#.*<input name=CSRF value="##;
      $CSRF =~ s#" type=hidden class=csrf-hidden-input>.*##;
      
      $url = 'https://lk.megafon.ru/dologin/';
      
      $response = $browser->post( $url ,
      	[
      		CSRF => $CSRF,
      		j_username => $number,
      		j_password => $password,
      	],
      	Referer => 'https://lk.megafon.ru/dologin/'
      );
      
      $url = "https://lk.megafon.ru:443/";
      
      $response = $browser->get( $url , Referer => 'https://lk.megafon.ru/dologin/');
      
      my $balance = $response->content;
      $balance =~ s#.*Баланс\s*<div>\s*##;
      $balance =~ s#<.*##g;
      $balance =~ s#&minus;#-#;
      print $balance;

      Comment

      • aib
        Senior Member
        • Jan 2014
        • 1615

        #4
        Я пробовал использовать ключи -d для curl
        Этот NAS не понимает таких ключей и возвращает в ответ не ту страницу, которую я запросил - а стартовую, с полями для ввода имени и пароля.
        Sincerely yours,
        Aleksey

        Comment

        • gdgsoft
          Senior Member
          • Apr 2009
          • 202

          #5
          Вам нужно полностью про эмулировать в своем скрипте работу с ВЕБ-интерфейсом обычного пользователя.
          Сюда входит подключение на ВЕБ-интерфейс, снятие куков и использование их в дальнейшем и т.д.

          Берите ваиршарк, перехватывайте пакеты, изучайте и т.д...
          Zabbix 2.4.2
          PHP 5.4.5
          Oracle Linux 6.5
          VmWare ESXi 4

          MariaDB 10.0.15
          Oracle Linux 6.5
          Supermicro SYS-6027TRF(64Gb+RAID-10 600Gb SAS15k)

          Comment

          • aib
            Senior Member
            • Jan 2014
            • 1615

            #6
            Спасибо за совет
            Пока я решил проблему снятия данных, используя SSH-соединение и собирая информацию из /proc/* файлов
            Sincerely yours,
            Aleksey

            Comment

            Working...