st_admin Опубликовано 18 ноября, 2016 · Жалоба Необходимо собрать данные с 300+ коммутаторов и подобного оборудования различных вендоров. Т.е нужно удаленно зайти на коммутатор, выполнить ряд команд типа show tech-support, show mac address-table, сохранить вывод команд в лог. Как максимально можно автоматизировать эту задачу? Вижу это как скрипт, который будет брать ИП из списка в файле, выполнять ряд команд из файлика, и создавать лог выведенной информации в текстовый файл с названием хоста. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
saaremaa Опубликовано 18 ноября, 2016 · Жалоба zabbix+python-ssh-client zabbix-оперативный контроль за оборудованием по snmp и он же может давать команду скрипту на сбор нужных данных по ssh с помощью скрипта python. От идеи с файлом ip-адресов рекомендую отказаться сразу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Morbid Опубликовано 18 ноября, 2016 · Жалоба python + telnet\ssh + pexpect + mysql Собираю инфу с 700+ устройства Без всяких проблем. P.S. Правда часть инфы беру по SNMP, часть по telnet\ssh (все зависит от того что надо взять) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ancient Опубликовано 18 ноября, 2016 · Жалоба Необходимо собрать данные с 300+ коммутаторов и подобного оборудования различных вендоров. Т.е нужно удаленно зайти на коммутатор, выполнить ряд команд типа show tech-support, show mac address-table, сохранить вывод команд в лог. Как максимально можно автоматизировать эту задачу? Вижу это как скрипт, который будет брать ИП из списка в файле, выполнять ряд команд из файлика, и создавать лог выведенной информации в текстовый файл с названием хоста. ansible https://www.ansible.com/network-automation noc http://kb.nocproject.org/ https://kb.nocproject.org/pages/viewpage.action?pageId=22380903#id-УстановкаNOCTowerнаDebian8.5-ПодготовкаNOC-tower Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 18 ноября, 2016 · Жалоба Я делаю так: php + mysql + snmp/telnet - онлайн мониторинг по алгоритмам опроса Cacti и фича промышленного выполнения telnet команд на всех железках с разбивкой по вендорам и моделям оборудования, без ограничения по количеству устройств, с сортировкой вывода по различиям результатов. Удобно менять конфигурации свичей по моделям на всём парке оборудования. самописное, никакий файликов, всё в mysql Необходимо собрать данные с 300+ коммутаторов и подобного оборудования различных вендоров. Т.е нужно удаленно зайти на коммутатор, выполнить ряд команд типа show tech-support, show mac address-table, сохранить вывод команд в лог. Как максимально можно автоматизировать эту задачу? Вижу это как скрипт, который будет брать ИП из списка в файле, выполнять ряд команд из файлика, и создавать лог выведенной информации в текстовый файл с названием хоста. Вы лучше напишите задачу, которая перед вами стоит, или проблему, с которой столкнулись, а не втупую ищите какой-то специфический софт для непродуманной цели. Возможно будут варианты решения задач и обнаружения проблем без вышеописанной вами дичи. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Mystray Опубликовано 21 ноября, 2016 · Жалоба RANCID? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rover-lt Опубликовано 21 ноября, 2016 (изменено) · Жалоба RANCID? бешенолютоплюсую. Кто мне скажет, что лучше собирать noc-ом - заведу в аду отдельный котел! Я бы сказал что для автоопределения железок собрать каким observium-мом, а он экспортирует данные для сбора rancid-ом. Изменено 21 ноября, 2016 пользователем rover-lt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 ноября, 2016 · Жалоба Необходимо собрать данные с 300+ коммутаторов и подобного оборудования различных вендоров. Т.е нужно удаленно зайти на коммутатор, выполнить ряд команд типа show tech-support, show mac address-table, сохранить вывод команд в лог. Как максимально можно автоматизировать эту задачу? Вижу это как скрипт, который будет брать ИП из списка в файле, выполнять ряд команд из файлика, и создавать лог выведенной информации в текстовый файл с названием хоста. Самое простое это создать свое ПО для работы. Т.к. использования всяких софтин и скриптов, которые тут насоветовали, это значит подгонять свои хотелки под возможности этих приложений. Сделав свой софт, будете развивать его функционал для достижения тех целей, которые нужны. При этом надо сразу отказаться от списка в файле и вообще списка - пропингуйте сеть по служебным адресам и получите список IP адресов, поместите их в базу, далее пройдитесь по каждому адресу, делая запросы на оборудование и получая ответы, по ним определите и тип оборудования, и наименование, и все необходимое для работы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
man781 Опубликовано 21 ноября, 2016 · Жалоба делаю такие вещи с помощью цикла в bash+telnet (expect) и в ус не дую :) (скрипт проходит свичи по списку и делает что надо по шаблону команд с выводом результатов в лог) Потом анализируется лог. Да - нужно ручками делать и глазами (мозгом) анализировать работу и результат. Но по моей многолетней практике - тысячи домовых свичей я анализировал и причесывал конфиги и решал конкретную задачу точечно - быстрее и качественнее, чем если пытался автоматизировать типа УНИВЕРСАЛЬНО и использовать высокоуровневые инструменты. (я - ретроград? я - консерватор? я - тупой? (нужное подчеркнуть :))) Если кого интересует - могу примеры выложить здесь.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Negator Опубликовано 21 ноября, 2016 · Жалоба Давай, выкладывайте. У нас есть шаблон для любого типа свиичей. Генерится напрямую из биллинга одной кнопкой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_admin Опубликовано 22 ноября, 2016 · Жалоба Задачу решил написанием своего скрипта на Powershell с использованием библиотеки Posh-SSH, скрипт перебирает строки из файла, коннектится к айпишникам, сливает инфу в лог файл и обзывает файл именем хостнейма из того же файла с айпишниками. Команды выполняются те которые укажешь с нужной задержкой. В принципе кому интересно тоже могу поделиться. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ancient Опубликовано 22 ноября, 2016 · Жалоба RANCID? бешенолютоплюсую. Кто мне скажет, что лучше собирать noc-ом - заведу в аду отдельный котел! Я бы сказал что для автоопределения железок собрать каким observium-мом, а он экспортирует данные для сбора rancid-ом. в чем вы видите преимущества rancid против noc? Нок ставится буквально за 15 минут, нормальные коммутаторы в нем работают сразу же. Под не нормальные за парчу часов переделываете конфиг. Под всякие кривые железяки всё равно любой софт придётся доделывать. А обсервиум скурвился и на смену ему пришел LibreNMS, а там работае предполагается не с rancid, а с oxidized Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 22 ноября, 2016 · Жалоба Давай, выкладывайте. У нас есть шаблон для любого типа свиичей. Генерится напрямую из биллинга одной кнопкой. Генерируется или скачивается? Синтаксис у разных вендоров (и/или моделей) бывает сильно отличается Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rover-lt Опубликовано 22 ноября, 2016 · Жалоба Задачу решил написанием своего скрипта на Powershell с использованием библиотеки Posh-SSH, скрипт перебирает строки из файла, коннектится к айпишникам, сливает инфу в лог файл и обзывает файл именем хостнейма из того же файла с айпишниками. Команды выполняются те которые укажешь с нужной задержкой. В принципе кому интересно тоже могу поделиться. не. не делись. Все кто хотел, уже решили это задачу. Пауэршелл (упаси бох!) нафиг никому не нужен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
man781 Опубликовано 22 ноября, 2016 · Жалоба Давай, выкладывайте. файлег list_of_switchs.txt со списком свичейБ с которыми мы хотим совершить какую-либо операцию #Разделитель - пробел W005 10.214.68.3 A018 10.192.14.2 A017 10.192.8.4 Далее такой скриптик - который читаем в массив список свичей из файла list_of_switchs.txt вида: #!/bin/bash #У меня на свичи один пароль - если у вас разный, легко модифицировать скрипт и даже с базы данных подтягивать инфу и/или добавить нужные параметры в [b]list_of_switchs.txt[/b] telnet_user="admin" telnet_password="bla-bla-bla" index=0 while read line; do array[$index]="$line" index=$(($index+1)) done < ./list_of_switchs.txt #while for ((a=0; a < ${#array[*]}; a++)) do n=0 for word in ${array[$a]}; do #цикл - в котором надо из массива брать строчку и разбить на переменные n=$(($n+1)) #echo $n if [ "$n" = "1" ]; #ебошим первое слово из строки в переменную then echo $word switch_name=$word fi if [ "$n" = "2" ]; #ебошим второе слово из строки в переменную then echo $word switch_ip=$word fi done # скармливаем в expect нужные параметры и запускаем скрипт с командами /usr/bin/expect ./switch.sh $switch_name $switch_ip $telnet_user $telnet_password | tee -a ./switch_result.txt #следить за выполнением визуально и в логе ./switch_result.txt done Вот пример файла ./switch.sh в котором вы херачите последовательность команд, которые надо выполнить (что угодно - слить конфиг на tftp, залить с tftp, вывести таблицу маков, что-то подтюнить на свичах) #!/usr/bin/expect set switch_name [lrange $argv 0 0] set switch_ip [lrange $argv 1 1] set telnet_user [lrange $argv 2 2] set telnet_password [lrange $argv 3 3] # Открываем telnet сессию на удалённом сервере, и ждем запроса имени пользователя. spawn telnet $switch_ip expect "User name:" # Посылаем имя пользователя и ждем запроса пароля. send "$telnet_user\r" expect "Password:" # Посылаем пароль и ждем приглашения ввода командного интерпретатора. send "$telnet_password\r" expect "$switch_name#" send "show mac address-table all\r" expect "$switch_name#" send "show ver\r" expect "$switch_name#" send "conf\r" expect "$switch_name\(config\)#" send "vlan 11\r" expect "$switch_name\(config-vlan\)#" send "inactive\r" expect "$switch_name\(config-vlan\)#" send "exit\r" expect "$switch_name\(config\)#" send "exit\r" expect "$switch_name#" send "wr me\r" expect "$switch_name#" send "copy running-config tftp 172.20.100.1 /switches/$switch_name-$switch_ip.conf\r" expect "$switch_name#" expect "$switch_name#" send "exit\r" expect eof P.S. Все что нужно - это линукс + консоль и установленный стандартно из репов expect. Дальше полет фантазии не ограничен - я перехерачивал сеть из тысяч свичей - и мне было достаточно этих инструментов (наличие мозга - обязательно) На кошерность не претендую ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
navigator.vip14 Опубликовано 8 декабря, 2017 (изменено) · Жалоба Не получаеться передать файл по ftp на Mikrotik с помощью скрипта. Спойлер #!/usr/bin/expect -f set switch_name [lrange $argv 0 0] set switch_ip [lrange $argv 1 1] set user [lrange $argv 2 2] set password [lrange $argv 3 3] spawn ftp $switch_ip expect "Name:" send "$user\r" expect "Password:" send "$password\r" expect "ftp> " send "lcd\r" expect "ftp> " send "put iddsa\r" expect "ftp> " send "lcd\r" expect "ftp> " send "quit\r" exit На удаленном устройстве создается файл с нулевым размером, а в логе программы пишет: Спойлер spawn ftp 100.0.0.21 Connected to 100.0.0.21. 220 Master_ver1.1 FTP server (MikroTik 6.40.5) ready Name (100.0.0.21:genezis): user 331 Password required for user Password: 230 User user logged in Remote system type is UNIX. ftp> lcd Local directory now /home/genezis ftp> put iddsa local: iddsa remote: iddsa 200 PORT command successful lcd Когда подключаюсь вруную через терминал, то все работает и в результатах пишет на 2 строчки больше. Спойлер Connected to 192.168.3.1. 220 Master_ver1.1 FTP server (MikroTik 6.40.5) ready Name (192.168.3.1:genezis): user 331 Password required for user Password: 230 User user logged in Remote system type is UNIX. ftp> put iddsa local: iddsa remote: iddsa 200 PORT command successful 150 Opening ASCII mode data connection for '/iddsa' 226 ASCII transfer complete 613 bytes sent in 0.00 secs (4215.7 kB/s) ftp> Подскажите, может я где то не туда смотрю... Изменено 8 декабря, 2017 пользователем navigator.vip14 Добавил спойлеры Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nixx Опубликовано 9 декабря, 2017 · Жалоба 19 часов назад, navigator.vip14 сказал: ftp> put iddsa local: iddsa remote: iddsa 200 PORT command successful lcd попробуйте написать перед этим команду pasv. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
navigator.vip14 Опубликовано 9 декабря, 2017 · Жалоба 6 часов назад, nixx сказал: попробуйте написать перед этим команду pasv. Задача решена. Файл не хотел передаваться через внутренний IP, то есть на мое личное устройство. Когда попробовал на уделенную точку, все прекрасно залилось. К стати модифицировал скрипт, теперь он у меня перебирает адреса из списка диапазонов и активные записывает в файл по которому потом коннектится к устройствам. Если ком интересно, могу поделится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 12 декабря, 2017 · Жалоба Выкладывайте на github :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...