Управление сетевыми устройствами

Started by zeratyl, August 10, 2015, 10:48:28 AM

Previous topic - Next topic

zeratyl

Добрый день. В NetXMS хорошо организован мониторинг сетевого оборудования, им удобно пользоваться, спасибо. Задумывались разработчики расширить функционал программы добавив функции управления сетевыми устройствами? Например:


  • Просмотр конфигурации устройства
  • Доступ к консоли устройства через ssh
  • Возможность одновременного выполнения команды на скольких устройствах и вывод результатов
  • Разграничение прав доступа

И совсем здорово было бы реализовать работу с бекапами конфигураций:


  • Бекап и восстановление конфигурации, в т.ч. бекап по расписанию
  • Возможность использовать шаблоны конфигураций, в т.ч. с назначением базового шаблона
  • Хранение различных версий конфигураций устройств, в шифрованном виде, с возможностью просмотра изменений
  • Разграничение прав доступа

Harun

Все выше перечисленное - не функционал системы мониторинга, это функционал системы управления сетью (network management system).

Alex Kirhenshtein

Большую часть этого можно сделать через Object Tools и внешние команды (на контейнерах они тоже работают).

zeratyl

Сейчас часть задач так и реализована, но для централизованного использования не удобно, без поддержки со стороны системы. Например, в web-интерфейсе, пользовательские Object Tools не работают. Удобного решения для таких задач, пока не нашёл, разве что NOC но это уже network management system, как упоминал Harun, но для небольших компаний эта система громоздка в поддержке.

Alex Kirhenshtein

А что именно не работает в вебе? Должно всё работать.

zeratyl

В web интерфейсе мешают две проблемы.

1. Например, создаём объект Object tools, для подключения через ssh. В консоли его видно, в web-интерфейсе нет.
2. Если во вкладе overview нажать правой кнопкой на каком-нибудь из параметров, то в консоли появляется меню с возможность выбора действия (копировать и т.п.), а в web-интерфейсе меню появляется лишь на мгновение и закрывается.

Скриншоты приложил.

Версия сервера и веб-интерфейса 1.2.17. Браузеры пробовали разные.

Alex Kirhenshtein

1) Да, local command на вебе не работает – ограничение броузера. Server command должен работать и на вебе (для не интерактивных скриптов).
2) Работа с клипбордом в броузере тоже достаточно ограничена, поэтому меню отключено. Сейчас ситуация с поддержкой клипборда потихоньку улучшается (через document.execCommand('copy')) – но пока это еще не сделано.

7novds

Как уже написали, многое можно реализовать штатными средствами.
Добавлю как делать backup конфигурации по расписанию.

Я сделал шаблон в котором есть один DCI - скрипт. Этот скрипт банально обращается к устройству по SNMP, выставляет значения переменных ( благо у меня только Cisco, поэтому реализация достаточно проста ).
После этого конфигурация копируется на TFTP сервер, папка которого является копией репозитария SVN.
Далее так же по расписанию проводится коммит в SVN. Это мне дает возможность просмотра изменения конфигураций.

hsvt

Quote from: 7novds on November 30, 2015, 09:01:06 PM
Как уже написали, многое можно реализовать штатными средствами.
Добавлю как делать backup конфигурации по расписанию.

Я сделал шаблон в котором есть один DCI - скрипт. Этот скрипт банально обращается к устройству по SNMP, выставляет значения переменных ( благо у меня только Cisco, поэтому реализация достаточно проста ).
После этого конфигурация копируется на TFTP сервер, папка которого является копией репозитария SVN.
Далее так же по расписанию проводится коммит в SVN. Это мне дает возможность просмотра изменения конфигураций.

Можете поделиться примером скрипта?

Laguna_x

Quote from: 7novds on November 30, 2015, 09:01:06 PM
Как уже написали, многое можно реализовать штатными средствами.
Добавлю как делать backup конфигурации по расписанию.

Я сделал шаблон в котором есть один DCI - скрипт. Этот скрипт банально обращается к устройству по SNMP, выставляет значения переменных ( благо у меня только Cisco, поэтому реализация достаточно проста ).
После этого конфигурация копируется на TFTP сервер, папка которого является копией репозитария SVN.
Далее так же по расписанию проводится коммит в SVN. Это мне дает возможность просмотра изменения конфигураций.

тоже скрипт непомешал бы

hsvt

Да :) Вопрос автоматизация бекапа конфигов по snmp актуален :)

7novds

Пардон, не видел запроса на скрипт...

array SNMP_Versions;
SNMP_Versions = %("1","2c", "3");

sub get_parameter( curr, parameter )
{
   // Получаем локальный для node Сustom Attribute
   result = GetCustomAttribute( curr,  parameter);
   if ( result != null )
      return result;
      
   foreach( p : GetObjectParents( curr ))
   {
      result = get_parameter( p, parameter );
      if ( result != null )
         return result;
   }   
   return null;
}

TFTP_SERVER    = get_parameter( $node, "TFTP_IP_ADDRESS" );
TFTP_FOLDER    = get_parameter( $node, "TFTP_FOLDER_NAME" );
TFTP_FILENAME  = $node->name;

snmpTransport = CreateSNMPTransport ( $node );
if ( snmpTransport == null )
   return -1;
   
// Удаляем таблицу, если она существует
if ( !SNMPSet ( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.14.22", 6, "INTEGER" )) {
   trace( 3, "ccCopyEntryRowStatus set error" );
   return 1;
}

if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.2.22",  1, "INTEGER" )) {
   trace ( 3, "ccCopyProtocol set error" );
   return 1;
}

if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.3.22",  3, "INTEGER" )) {
   trace ( 3, "ccCopySourceFileType set error" );
   return 1;
}

if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.4.22",  1, "INTEGER" )) {
   trace ( 3, "ccCopyDestFileType set error" );
   return 1;
}

if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.5.22",  TFTP_SERVER, "IPADDR" )) {
   trace ( 3, "ccCopyServerAddress set error" );
   return 1;
}
if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.6.22", TFTP_FOLDER.TFTP_FILENAME,"STRING")) {
   trace ( 3, "ccCopyFileName set error" );
   return 1;
}
if ( !SNMPSet( snmpTransport, ".1.3.6.1.4.1.9.9.96.1.1.1.1.14.22", 1, "INTEGER")) {
   trace ( 3, "ccCopyEntryRowStatus process start error" );
   return 1;
}

return 0;
   

hsvt

Спасибо, в custom attribute передаются параметры?

7novds

Да, какталог на TFTP сервере куда бросить файл