Инструмент для составления отчетов nela nms: structure.Zator (nela: strZ). Релиз 0.1.1

Прошло немало времени, друзья, с момента прошлого релиза инструментов nelanms, однако это время мы потратили не зря! Мы рады представить Вам новую программу, которая логически дополняет nelanms: inventory.Zator (nela: invZ). И называется она похоже nela nms: structure.Zator (nela: strZ).

Покров тайны...

Покров тайны…

Наверняка, у Вас уже возникли вопросы: какие отчеты программа составляет, как она это делает, зачем вообще мне нужны эти отчеты? Ну что, пришла пора сорвать покров тайны!

Изначальная идея нашей программы nela nms– автоматизация труда системного администратора. Первый этап систематизации сделан: информация собрана и находится в нашей базе данных mysql. Конечно, можно зайти туда и посмотреть всю интересующую информацию, но… Но это совершенно неудобно. Согласитесь, гораздо удобнее ввести, к примеру, имя устройства и получить сразу структуру устройства, в легко читаемом и понятном виде, чем самому выискивать в базе данных mysql информацию, да еще и сопоставлять ее. Итак, давайте запустим нашу программу:

anton@anton-virtual-machine:~/ nettools$ vi strZ011.pl -name arch -ntype part

В консоле мы увидим только строчку, о том что база данных существует и доступна — добрый знак! Значит мы действительно можем построить интересующие нас отчеты:

anton@anton-virtual-machine:~/ nettools$ ./str -name arch -ntype part

The DB ‘test’ exists and avilable!

anton@anton-virtual-machine:~/ nettools$

Отчет, который нам интересен, сразу создается в файл, с названием «str_output.txt». Очень простой и логичный файл, в котором в формате json представлена структура оборудования. Мы долго думали, в каком виде представлять данные на текущем этапе: json или XML. Пришли к выводу, что json гораздо перспективнее и больше отвечает нашим нуждам.

Немного по говорим о ключах:

-name arch

Данный ключ указывает имя устройства (ищем мы пока только по имени устройства – его проще всего запомнить).

-ntype part/full

Данный ключ отвечает за совпадение имени устройства, которое мы ввели, с тем, что находится в базе. То есть значение «full» указывает на точное совпадение введенного имени, а «part» — на то, что введенное слово содержится в полном имени устройства.

То есть, если мы ввели:

anton@anton-virtual-machine:~/ nettools$ vi strZ011.pl -name arch -ntype full

Мы создадим отчет для устройства, которое называется «arch». А если мы ввели:

anton@anton-virtual-machine:~/ nettools$ vi strZ011.pl -name arch -ntype part

То мы создадим отчеты для устройств, которые могут называться «archangelsk», «newarch» и т.д. Очень удобно, если Вы не помните точное название устройства!

Вот что содержится в результатах нашего поиска (можно локально скачать файл и посмотреть у себя str_output.txt ):

 {
«hostname»: «7k-archangelsk»,
«model»: «Cisco CISCO7609-S»,
«os»: «Cisco IOS»,
«os_version»: «12.2(33)SRE2″,
«modules»: [
{«position»: «CISCO7609-S», «module»: «CISCO7609-S», «description»: «Cisco Systems Cisco 7600 9-slot Chassis System», «serial»: «FOX1234H6CN»},
{«position»: «WS-C6K-VTT-E 1″, «module»: «WS-C6K-VTT-E», «description»: «VTT-E FRU 1″, «serial»: «SMT1228L544″},
{«position»: «WS-C6K-VTT-E 2″, «module»: «WS-C6K-VTT-E», «description»: «VTT-E FRU 2″, «serial»: «SMT1228L549″},
{«position»: «WS-C6K-VTT-E 3″, «module»: «WS-C6K-VTT-E», «description»: «VTT-E FRU 3″, «serial»: «SMT1228M411″},
{«position»: «CLK-7600 1″, «module»: «CLK-7600″, «description»: «OSR-7600 Clock FRU 1″, «serial»: «NWG123400W7″},
{«position»: «CLK-7600 2″, «module»: «CLK-7600″, «description»: «OSR-7600 Clock FRU 2″, «serial»: «NWG123400W7″},
{«position»: «module 2″, «module»: «76-ES+T-40G», «description»: «76-ES+T-40G 40 ports 7600 ES+T Rev. 1.5″, «serial»: «SAL16041UAQ», «onboard»: [
{«position»: «sub-module of 2″, «module»: «76-ES+T-40GQ», «description»: «76-ES+T-40GQ 7600 ES+T 40x1GE SFP Rev. 1.2″, «serial»: «SAL1552ZX5P»},
{«position»: «sub-module of 2″, «module»: «7600-ES+3CXL», «description»: «7600-ES+3CXL 7600 ES+ DFC XL Rev. 1.2″, «serial»: «SAL16020Z8C»},
{«position»: «Transceiver Gi2/1″, «module»: «SFP-GE-S», «description»: «Transceiver 1000BaseSX Gi2/1″, «serial»: «AGM1532P29Y     «},
{«position»: «Transceiver Gi2/2″, «module»: «SFP-GE-S», «description»: «Transceiver 1000BaseSX Gi2/2″, «serial»: «FNS1601107X     «},
{«position»: «Transceiver Gi2/39″, «module»: «SFP-GE-L», «description»: «Transceiver 1000BaseLX Gi2/39″, «serial»: «SPC161206AV     «},
{«position»: «Transceiver Gi2/40″, «module»: «N/A», «description»: «Transceiver 1000BaseLX Gi2/40″, «serial»: «H11L015         «}
]},
{«position»: «module 3″, «module»: «76-ES+T-40G», «description»: «76-ES+T-40G 40 ports 7600 ES+T Rev. 1.5″, «serial»: «SAL1552ZXCR», «onboard»: [
{«position»: «sub-module of 3″, «module»: «76-ES+T-40GQ», «description»: «76-ES+T-40GQ 7600 ES+T 40x1GE SFP Rev. 1.2″, «serial»: «SAL1552ZX5J»},
{«position»: «sub-module of 3″, «module»: «7600-ES+3CXL», «description»: «7600-ES+3CXL 7600 ES+ DFC XL Rev. 1.2″, «serial»: «SAL1552ZXFB»},
{«position»: «Transceiver Gi3/1″, «module»: «SFP-GE-S», «description»: «Transceiver 1000BaseSX Gi3/1″, «serial»: «FNS1232105D     «},
{«position»: «Transceiver Gi3/2″, «module»: «N/A», «description»: «Transceiver 1000BaseT Gi3/2″, «serial»: «MTC153400XD     «},
{«position»: «Transceiver Gi3/3″, «module»: «N/A», «description»: «Transceiver 1000BaseT Gi3/3″, «serial»: «MTC161200K4     «},
{«position»: «Transceiver Gi3/4″, «module»: «SFP-GE-S», «description»: «Transceiver 1000BaseSX Gi3/4″, «serial»: «FNS1232109J     «},
{«position»: «Transceiver Gi3/40″, «module»: «SFP-GE-S», «description»: «Transceiver 1000BaseSX Gi3/40″, «serial»: «FNS1232107Y     «}
]},
{«position»: «module 4″, «module»: «WS-X6748-GE-TX», «description»: «WS-X6748-GE-TX CEF720 48 port 10/100/1000mb Ethern», «serial»: «JAF1233AMLP», «onboard»: [
{«position»: «sub-module of 4″, «module»: «WS-F6700-DFC3C», «description»: «WS-F6700-DFC3C Distributed Forwarding Card 3 Rev. «, «serial»: «SAL12351HX5″}
]},
{«position»: «module 5″, «module»: «RSP720-3C-GE», «description»: «RSP720-3C-GE 2 ports Route Switch Processor 720 Re», «serial»: «JAE1237UED2″, «onboard»: [
{«position»: «sub-module of 5″, «module»: «7600-MSFC4″, «description»: «7600-MSFC4 C7600 MSFC4 Daughterboard Rev. 1.1″, «serial»: «JAE1236TT2L»},
{«position»: «sub-module of 5″, «module»: «7600-PFC3C», «description»: «7600-PFC3C Policy Feature Card 3 Rev. 1.1″, «serial»: «JAE1237UN28″}
]},
{«position»: «module 7″, «module»: «76-ES+T-4TG», «description»: «76-ES+T-4TG 4 ports 7600 ES+ Rev. 1.3″, «serial»: «JAE143106EV», «onboard»: [
{«position»: «sub-module of 7″, «module»: «76-ES+T-4TGQ», «description»: «76-ES+T-4TGQ 7600 ES+T 4x10GE XFP ITU Rev. 1.0″, «serial»: «JAE14280GUF»},
{«position»: «sub-module of 7″, «module»: «7600-ES+3CXL», «description»: «7600-ES+3CXL 7600 ES+ DFC XL Rev. 1.1″, «serial»: «JAE14300FH2″},
{«position»: «Transceiver Te7/1″, «module»: «XFP-10GLR-OC192SR», «description»: «Transceiver 10Gbase-LR Te7/1″, «serial»: «AGA1423NGXV     «},
{«position»: «Transceiver Te7/4″, «module»: «XFP-10GLR-OC192SR», «description»: «Transceiver 10Gbase-LR Te7/4″, «serial»: «AGA1423NGXU     «}
]},
{«position»: «module 8″, «module»: «WS-X6748-GE-TX», «description»: «WS-X6748-GE-TX CEF720 48 port 10/100/1000mb Ethern», «serial»: «SAL14049TK6″, «onboard»: [
{«position»: «sub-module of 8″, «module»: «WS-F6700-DFC3C», «description»: «WS-F6700-DFC3C Distributed Forwarding Card 3 Rev. «, «serial»: «SAL14049ENR»}
]},
{«position»: «module 9″, «module»: «WS-SVC-FWM-1″, «description»: «WS-SVC-FWM-1 6 ports Firewall Module Rev. 4.3″, «serial»: «SAD123502U5″},
{«position»: «FAN-MOD-9SHS 1″, «module»: «FAN-MOD-9SHS», «description»: «High Speed Fan Module for CISCO7609-S 1″, «serial»: «FOX1234H65A»},
{«position»: «FAN-MOD-9SHS 2″, «module»: «FAN-MOD-9SHS», «description»: «High Speed Fan Module for CISCO7609-S 2″, «serial»: «FOX1234H65D»},
{«position»: «PS 1 WS-CAC-4000W-INT», «module»: «WS-CAC-4000W-INT», «description»: «220v AC power supply, 4000 watt 1″, «serial»: «SNI1220BMJ9″},
{«position»: «PS 2 WS-CAC-4000W-INT», «module»: «WS-CAC-4000W-INT», «description»: «220v AC power supply, 4000 watt 2″, «serial»: «SNI1220BMDC»}
]
}

Пока, к сожалению, вложенность строится не для всех устройств. Точно строится для таких маршрутизаторов, как Cisco 7600 series router и (что видно в нашем примере) Cisco 12000 series router.

Немного поговорим о структуре программы. Безусловно, она продолжает развиваться, и это развитие затрагивает предыдущие компоненты. Функция обработки ключей теперь выделена в отдельный модуль, который располагается в папке helpers. Переносить куда-то или удалять эту папку мы крайне не рекомендуем, так как программа работать перестанет. Кстати, nela:invZ тоже перестанет работать, так как теперь она использует тот же выделенный модуль.

nela nms by network-lab.ru

nela nms by network-lab.ru

Первый шаг в формировании полезных и понятных отчетов сделан. Дорогу осилит идущий, и поэтому мы продолжаем движение. Приятного Вам использования нашей системы nela nms в виде программ nela:invZ и nela:strZ. А если Вы встретили какие-то баги — сообщайте нам! Мы с удовольствием исправим их.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hide me
Получать регулярно свежие материалы, лабораторные и вебинары
Email Имя
Show me