Jump to content
Калькуляторы

[Ищу] полностью автоматический бэкап зоопарка оборудования по пулу IP

Здравствуйте, уважаемые!

Думаю кто-нибудь из ленивых админов уже должен был навоять скриптик, умеющий сканировать пул адресов, определять производителя оборудования и автоматом бэкапить его конфигурацию? 

Неужели нет?

Пока самое близкое, что удалось найти - проект oxidized. Знает много производителей, легко добавить скриптик на ему неизвестную новую модель. Но ему всё равно на входе нужен список оборудования с указанием производителя. А, как показывает практика, если через пару месяцев один сгоревший коммутатор заменят на абсолютно другой, все забудут о том, что надо обновить инфу во всём десятке систем/табличек учёта/инвентаризации/мониторинга/бэкапа и в конце концов инфа протухает. Выход вижу один - тулза должна сканировать пул айпишников, ломиться на пингующиеся телнетом/ssh-ом и сама определять куда попала. Будь то тот самый OID SNMP или пара команд по телнету. При замене длинка на циску с тем же IP, бэкапы должны продолжиться без участия админа.

В принципе всё реализуемо, просто решил спросить встречалась ли кому-нибудь подобная готовая автоматизация или есть собственные наработки?

Заранее благодарю за любые подсказки!

Edited by seventh

Share this post


Link to post
Share on other sites

Интересно, как вы себе представляете алгоритм автоопределения оборудования через ssh сессию? Вообще говоря, разное оборудование саму телнет сессию устанавливает по разному, не говоря уже об авторизации и командах.

 

Share this post


Link to post
Share on other sites
8 минут назад, sdy_moscow сказал:

Вообще говоря, разное оборудование саму телнет сессию устанавливает по разному, не говоря уже об авторизации и командах.

Ну строго говоря, логин-пароль ввести скорее всего проблемы не составит. После чего нужно будет ввести команду abyrvalg, проанализировать ответ и предположить оборудование.

Share this post


Link to post
Share on other sites

@seventh Задача уже обсуждалась в

 

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

Share this post


Link to post
Share on other sites
23 минуты назад, alibek сказал:

Ну строго говоря, логин-пароль ввести скорее всего проблемы не составит. После чего нужно будет ввести команду abyrvalg, проанализировать ответ и предположить оборудование.

Это так кажется. Если попытаетесь самостоятельно сессию телнета поднять с более или менее свежим железом через tcp сокет, много нового для себя откроете.

Share this post


Link to post
Share on other sites
1 час назад, jffulcrum сказал:

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

Блин, это круть. Ну, я так понимаю, актуально для ШПД-шников, где совсем всё однотипно. Сложно представляю реализацию на своей сети. Это будет уже почти искусственный интеллект. 

 

1 час назад, alibek сказал:

нужно будет ввести команду abyrvalg, проанализировать ответ и предположить оборудование

Это что за команда? UPD: а, нагуглил)

 

46 минут назад, sdy_moscow сказал:

Если попытаетесь самостоятельно сессию телнета поднять с более или менее свежим железом через tcp сокет, много нового для себя откроете

Посвятите что там происходит. 

Вообще представляю себе после авторизации анализ вывода команд "show version" "display system info" и ещё парочки аналогичных до первого удовлетворяющего парсер ответа. Но это если про телнет. Думаю, модель всё-таки проще определить по SNMP, OID практически везде один и тот же.

 

Благодарю за подсказки!

Короче, как ни странно, похоже, настолько автоматизированных решений нет. Каждый костылит своё. Прям очень странно для меня. В такой век, вроде, живём...

Edited by seventh
UPD

Share this post


Link to post
Share on other sites
1 час назад, seventh сказал:

Посвятите что там происходит. 

http://pcmicro.com/NetFoss/telnet.html

 

Для интереса посчитайте количество RFC. На самом деле конечно не всё так страшно, но задача добраться до авторизации, сама по себе для разных железок может быть не тривиальной. Ну авторизовались мы даже допустим, и что потом делать?

Share this post


Link to post
Share on other sites

Т.е. варинат навести порядок в сети и не забывать какое оборудование вы поставили не рассматривается? А мониторится это все как?

Share this post


Link to post
Share on other sites
3 часа назад, VolanD666 сказал:

Т.е. варинат навести порядок в сети и не забывать какое оборудование вы поставили не рассматривается? А мониторится это все как?

The Dude!

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

Но это оффтоп.

Share this post


Link to post
Share on other sites

LibreNMS умеет отдавать тип оборудования в Oxidized, но эта связка избыточна только для сбора конфигов.

Share this post


Link to post
Share on other sites

Если на железке настроен snmp, а раз The Dude мониторит, то наверное так и есть, OID sysObjectID выдает (должен по крайней мере и у вменяемых вендоров так и есть) конкретную модель оборудования и производителя.

Все мои скрипты автоматизации пляшут именно от этого ключа.

 

$ snmpget -On 10.0.8.14 sysObjectID.0
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.40418.7.44

40418 - это SNR

7.44 - это SNR-S2995G-12FX

Share this post


Link to post
Share on other sites

Я использую мониторинг NetXMS и скрипт на пайтоне для экспорта базы оборудования NetXMS в базу rancid.

В системе мониторинга делается простой хук наподобие этого:

 

if ( $node->snmpOID  ~= "^\.1\.3\.6\.1\.4\.1\.9" )
{
	SetCustomAttribute($node, "RancidProfile", "cisco");
} else
if ( $node->driver  == "MIKROTIK" )
{
	SetCustomAttribute($node, "RancidProfile", "mikrotik");
} else
if ( $node->snmpOID  ~= "^\.1\.3\.6\.1\.4\.1\.2636" )
{
  	SetCustomAttribute($node, "RancidProfile", "juniper");
} else
if ( $node->snmpOID  ~= "^\.1\.3\.6\.1\.4\.1\.35265\.1\." )
{
  	SetCustomAttribute($node, "RancidProfile", "eltex");
} else
if ( $node->snmpOID  ~= "^\.1\.3\.6\.1\.4\.1\.30065\.1\.3011\." )
{
  	SetCustomAttribute($node, "RancidProfile", "arista");
}

И делам экспорт базы с атрибутами при каждом запуске rancid. Теперь при добавлении оборудования в систему мониторинга устройство автоматически попадает в базу ranicd. На всём оборудовании настраивается AAA tacacs/radius для доступа по ssh.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now