Jump to content

Recommended Posts

Posted

Добрый день!

Есть софт. Который при наступлении тех или иных событий может выполнить HTTP-запрос. Ну либо выполнить команду ОС (запустить командный файл например), но второе не так интересно.

Есть железо. Которое может выполнять те или иные действия согласно командам по SNMP.

 

Хотелка - иметь какой-то софт который получив http-запрос выполнит ту или иную команду по snmp.

 

Может какой-то софт мониторинга или управления с набортным web-сервером УЖЕ имеет такой функционал? Кто сталкивался?

Posted

Волшебных кнопок - особо нет, у меня тазик ловит трапы, а самопис на питоне - обрабатывает. Возможно сделать все. Биллинг - тоже самопис. 

Posted

Мне не надо ловить трапы как таковые.

Мне надо просто получить (по http) какой-то запрос и исходя из его содержимого выполнить ту или иную команду через тот же net-snmp.

почему не хочется пользовать скрипты или командные файлы - да что бы не привязываться к локальным ресурсам хоста который дает запросы, он не один.

 

Конечно вариант с самописным рассматриваю но кто знает может уже что-то есть. надо еще посмотреть на OPC или платформы интеграционные. Но те хороших денежек стоят :))

Posted

И гибкий. Не спорю. Но на это нет времени. Точнее есть более приоритетные задачи.

Потому и спросил может есть что готовое в системах мониторинга или управления - что бы эти системы можно было не только для данной задачи использовать :)

Posted
2 часа назад, ALEX_SE сказал:

Но на это нет времени.

Там дел на часа 2-3 и это с кофем и перекурами. Вот вам простой вебсервер с обработкой запросов вида http://localhost:8081/snmp1 и выполнения снмп

#!/usr/bin/perl

{
 package SimpleWebServer;

 use HTTP::Server::Simple::CGI;
 use base qw(HTTP::Server::Simple::CGI);

 my %dispatch = (
     '/snmp1' => \&snmp1,
     # ...
 );

 sub handle_request {
     my $self = shift;
     my $cgi  = shift;
     my $handler = $dispatch{$cgi->path_info()};
     if (ref($handler) eq "CODE") {
         print "HTTP/1.0 200 OK\r\n";
         $handler->($cgi);
     } else {
         print "HTTP/1.0 404 Not found\r\n";
         print $cgi->header,
               $cgi->start_html,
               $cgi->h1('Not found'),
               $cgi->end_html;
     }
 }

 sub snmp1 {
     my $cgi  = shift;   # CGI.pm object
     return if !ref $cgi;
     system ("snmpset -v2c -c public 192.168.1.1 .1.3.6.X.X.X.X i 1");
     print $cgi->header,
           $cgi->start_html,
           $cgi->h1("snmp1 command execute"),
           $cgi->end_html;
 }

};

 my $pid = SimpleWebServer->new(8081)->background();
 print "Use 'kill $pid' to stop server.\n";

 

Posted
10 часов назад, ALEX_SE сказал:

Хороший вариант спасибо :)

 Не слишком, небезопасный совершенно, судя по

system ("snmpset -v2c -c public 192.168.1.1 .1.3.6.X.X.X.X i 1");
Posted

Это же пример, понятно что в моем случае при использовании например snmp v3 запрос будет другим :)

 

Но за предостережение спасибо. Об этом я знаю :)

Posted

 Я не о том, что и как сетить :) Я о вызове system какой-то утилиты вне окружения, и без указания абсолютного пути к ней. Подменить такой вызов своей утилитой как 2 пальца об забор :) Нее, я не против, сам так делаю но с полным контролем, просто может кто из программистов еще не в курсе этих граблей :)

Posted
On 12/31/2020 at 5:08 AM, ALEX_SE said:

может выполнить HTTP-запрос. Ну либо выполнить команду ОС

Зачем вам HTTP, если это всё равно обёртка вокруг system ("snmpset ?

Запускайте сразу snmpset.

 

Если HTTP принципиально, но хочется уменьшить зависимости:

Можно сразу шелл скрипт запускать как CGI, без прослойки интерпретатора PHP.

Можно полноценный HTTP сервер тоже убрать, и запускать это дело из xinetd, да, по запросу по HTTP.

 

Posted

Это не очень удобно с точки зрения возможностей ведового софта который и будет давать команды на управление (ему проще выполнить хттп-запрос) кроме того хостов таких несколько. Которые дают команды. А управлять хочется с одного.

Posted
On 1/2/2021 at 10:35 PM, ALEX_SE said:

Это не очень удобно с точки зрения возможностей ведового софта который и будет давать команды на управление (ему проще выполнить хттп-запрос) кроме того хостов таких несколько. Которые дают команды. А управлять хочется с одного.

Резон.

  • 2 weeks later...
Posted

Фреймворк для микросервисов на вашем любимом языке. Из коробки масштабирование, HTTP gateway, аутентификация, мониторинг и прочее.

Posted

То же вариант :) Кстати тем же заббиксом это то же можно сделать. http-агент умеет принимать трапы по http а дальше необходимое действие уже штатно выполняется по action как и при обычном мониторинге.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.