littledev Posted February 11, 2012 Posted February 11, 2012 Необходимо сконфигурировать/написать небольшой биллинг для саппорта (писать умеем на php), который минимально умеет собирать данные по snmp и отображать их на веб-морду диспетчерам, а в идеале не только собирать, но и изменять данные по протоколу snmp. Желательно snmp в связке с apache<->php<->mysql. Есть соображения по этому поводу? Буду очень благодарен за любую инфу. Вставить ник Quote
viver Posted February 11, 2012 Posted February 11, 2012 http://code.google.com/p/swtoolz/ Вот то, что вам нужно, но заточено лишь на D-link, модели des-3028, des-3028G, des-3526, des-3026, des-3200-28. Мы на эту софтинку посмотрели, и написали свою на перле, в связке с Нагиосом и биллингом. Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 http://code.google.com/p/swtoolz/ Вот то, что вам нужно, но заточено лишь на D-link, модели des-3028, des-3028G, des-3526, des-3026, des-3200-28. Мы на эту софтинку посмотрели, и написали свою на перле, в связке с Нагиосом и биллингом. Спасибо большое, интересно почитать, бегло просмотрел и не нашел к сожалению самого главного - связки snmp протокола с apache через php (с перлом не знаком, но гугл подсказал, что можно и на php реализацию создать), snmp_get(), snmp_set(), snmp_walk() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои. Возможно чего не доглядел - бросьте камень :) Вставить ник Quote
Yarlan Zey Posted February 11, 2012 Posted February 11, 2012 если функции php для snmp знаете, чего вам не хватает? мибов? Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 если функции php для snmp знаете, чего вам не хватает? мибов? мозгов не хватает:) с сервера утилитой snmpwalk и oid'ами ответы получаю, тоесть сам механизм работы ясен, не доходит как связать apache с snmp, потому что скрипт у меня ругается call to undefined function snmpget() и тд. Иными словами, мой апач про snmp совсем не знает, а хотелось бы их подружить. Вставить ник Quote
Yarlan Zey Posted February 11, 2012 Posted February 11, 2012 http://www.php.net/manual/en/snmp.installation.php оно? Вставить ник Quote
s.lobanov Posted February 11, 2012 Posted February 11, 2012 littledev Только сразу учтите, что php5-snmp очень кастрированный(нет bulk-ов и прочих плюшек). Мне в итоге пришлось писать обёртки над утилитами snmpget и т.п. через функцию exec. Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 http://www.php.net/manual/en/snmp.installation.php оно? Оно, читал и нужно пересобирать php? а без пересборки нельзя ? PHP 5.3.0, 5.3.1 and 5.3.2 do not have SNMP support. root@test:/var/cache/apt/archives# php5 -v PHP 5.3.3-7+squeeze7 with Suhosin-Patch (cli) (built: Feb 2 2012 17:32:55) Copyright © 1997-2009 The PHP Group тоесть моя версия php должна с snmp дружить далее там написано, что нужно компилить php с опцией под snmp, к сожалению нет тестовой тачки на которой можно было бы поиграть, на текущей машине висит нагиос и крутится пара рабочих страничек с базами, если чего-то наворочу - оторвут голову если другой возможности нет - будем искать обходные пути, или тестовую тачку Вставить ник Quote
s.lobanov Posted February 11, 2012 Posted February 11, 2012 littledev В Centos есть пакет: # rpm -qa | grep php-snmpphp-snmp-5.3.3-3.el6_2.6.x86_64 В дебиане разве нет? aptitude search snmp | grep php Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 littledev В Centos есть пакет: # rpm -qa | grep php-snmpphp-snmp-5.3.3-3.el6_2.6.x86_64 В дебиане разве нет? aptitude search snmp | grep php сделал почти так же только вручную, узнал что в природе есть не только модули но и целый пакет php-snmp, поставил рестартанул апач - вуаля, вызов snmp перестал ругаться Всем огромное спасибо за участие. Иногда бывает затык, что сам по себе не знаешь с какой стороны подойти, сейчас snmp_walk() возвращает мне array() так что процесс пошел и далее это уже тема для другого разговора, если кто использовал еще какие-то интересные решения для управления коммутаторами L2 по snmp - милости прошу добавить в топик инфо, на самом деле инфы не так уж много по этому вопросу, особенно для малоопытных еще раз спасибо всем за помощь Вставить ник Quote
viver Posted February 11, 2012 Posted February 11, 2012 Спасибо большое, интересно почитать, бегло просмотрел и не нашел к сожалению самого главного - связки snmp протокола с apache через php (с перлом не знаком, но гугл подсказал, что можно и на php реализацию создать), snmp_get(), snmp_set(), snmp_walk() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои. Возможно чего не доглядел - бросьте камень :) Тот скрипт, который я вам привел и написан на php, если d-link подходящей модели есть под рукой, запускайте скрипт, скармливайте ему ip коммутатора, и смотрите практически все о его портах. На перле мы писали софтинку другую, скажим так, по мотивам вышеприведенной. Вставить ник Quote
s.lobanov Posted February 11, 2012 Posted February 11, 2012 littledev Perl SNMP::Info посмотрите, может найдёте там для себя что-нибудь интересного Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 Спасибо большое, интересно почитать, бегло просмотрел и не нашел к сожалению самого главного - связки snmp протокола с apache через php (с перлом не знаком, но гугл подсказал, что можно и на php реализацию создать), snmp_get(), snmp_set(), snmp_walk() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои. Возможно чего не доглядел - бросьте камень :) Тот скрипт, который я вам привел и написан на php, если d-link подходящей модели есть под рукой, запускайте скрипт, скармливайте ему ip коммутатора, и смотрите практически все о его портах. На перле мы писали софтинку другую, скажим так, по мотивам вышеприведенной. Да-да, видел, скрипт хороший, буду гонять-пробовать, просто вначале статьи у меня еще базовый функционал не работал . Работаем с Zyxel (2108,3528,4012,4728) snmp интересует в основном на младших моделях, которые в сторону пользователя смотрят (на старших моделях пока что просто трапы ловим и мртг рисуется(хотя и сюда руки дотянем), но тут без каких-либо чудес ...сугубо базовая настройка),и на младших моделях чаще всего и производятся текущие действия, хорошо когда поначалу можно обойтись малым и дергать все руками, а вот со временем уже как-то неэффективно. Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 littledev Perl SNMP::Info посмотрите, может найдёте там для себя что-нибудь интересного спасибо, обязательно посмотрю Вставить ник Quote
Yarlan Zey Posted February 11, 2012 Posted February 11, 2012 если будет много коммутаторов - откажитесь от php... медленно Вставить ник Quote
s.lobanov Posted February 11, 2012 Posted February 11, 2012 если будет много коммутаторов - откажитесь от php... медленно +1. Причина - отсутсвие человеческого multithread в php, если собирать данные периодически со всех свитчей. Если опрашивать какие-то характеристики по запросу оператора, то пойдёт, но лучше, конечно, сразу приобщаться к jsp, для java хотя бы snmp4j есть - отличная библиотека для работы с snmp Вставить ник Quote
pppoetest Posted February 11, 2012 Posted February 11, 2012 littledev В Centos есть пакет: # rpm -qa | grep php-snmpphp-snmp-5.3.3-3.el6_2.6.x86_64 В дебиане разве нет? aptitude search snmp | grep php apt-get install php5-snmp если будет много коммутаторов - откажитесь от php... медленно +1. Причина - отсутсвие человеческого multithread в php, если собирать данные периодически со всех свитчей. +1 Стоит swtoolz - хватает за глаза, пришлось правда работу с разными железками выделить в отдельный модуль, а то оиды у каждой свой. Хотел как-то на перле переписать, да все лень. Кроме того, сбор инфы по железякам занимается другой скрипт, написанный на коленке до знакомства с swtoolz Вставить ник Quote
littledev Posted February 11, 2012 Author Posted February 11, 2012 если будет много коммутаторов - откажитесь от php... медленно +1. Причина - отсутсвие человеческого multithread в php, если собирать данные периодически со всех свитчей. Если опрашивать какие-то характеристики по запросу оператора, то пойдёт, но лучше, конечно, сразу приобщаться к jsp, для java хотя бы snmp4j есть - отличная библиотека для работы с snmp тут не в кол-ве коммутаторов счастье, мониторинг ведется нагиосом и он пока что справляется, первоначальная задача чтобы саппорт мог при работе с клиентом получить инфо о том в каком состоянии находится порт, есть ли мак на порту и имя порта. Таких запросов в среднем будет 1 в 3-5 минут в зависимости от интенсивности обращений в саппорт и кол-ва операторов, а вот если собирать статистику всей сети протоколом snmp - вот тут я целиком с Вами соглашусь, совсем другая песня и уже хочешь/не хочешь придётся лезть в дебри и учить новое. Ни для кого не секрет, что иногда задачи ставятся со сроком выполнения "позавчера", потому для начала накатим рабочий минимум, а далее "лень - двигатель прогресса" - сделает своё дело и подтолкнет модернизацию Вставить ник Quote
Ilya Evseev Posted February 11, 2012 Posted February 11, 2012 1) Устройств сколько? 2) Perl устроит? Если да, то смотрите на http://forum.nag.ru/forum/index.php?showtopic=54023 первоначальная задача чтобы саппорт мог при работе с клиентом получить инфо о том в каком состоянии находится порт, есть ли мак на порту и имя порта. http://svn1.homelinux.net/viewcvs/cgi-bin/?root=routers_mgmt portctl.cgi Показывает: show ports X, show utilization ports X, show port_security ports X, show fdb. Делает: port enable/disable, clear port_security, cable_diag, create address_binding. Вставить ник Quote
Pritorius Posted February 11, 2012 Posted February 11, 2012 У наших диспетчеров The Dube стоит. По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр, в общем шикарная штука и развёртывается быстро + бесплатно! Брать тут: http://www.mikrotik.com/thedude.php Вставить ник Quote
Ilya Evseev Posted February 11, 2012 Posted February 11, 2012 У наших диспетчеров The Dube стоит. The Dude. По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр Её используют, чтобы видеть ситуацию с точностью до свича. Клиентские порты и маки через неё никто(?) мониторить пока не додумался. Обычно через контекстное меню вызывают telnet и дальше через CLI. Вставить ник Quote
littledev Posted February 12, 2012 Author Posted February 12, 2012 У наших диспетчеров The Dube стоит. The Dude. По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр Её используют, чтобы видеть ситуацию с точностью до свича. с точностью до свитча видит нагиос и это зеркало диспетчерской души, отдельный биг монитор перед глазами и видно, что зелёное, а что красное, карту под обьекты сами накладываете, так что вид можно делать как простой и удобный так и подробный но неоч. удобный - это уже собственно не задача. А вот с клиентом общение происходит отдельно от нагиоса в самописном биллинге, юзер говорит логин и у диспетчера по логину появляются все данные пользователя + список радиокнопок для выбора вопроса по которому звонит юзер (тоесть список базовых неисправностей и вопросов которые могут быть, пример: не работает инет, плохо работает инет, консультация) на деле все немного подробнее но несильно. Сделано, чтобы заявки от пользователей принимались коротенькие и понятные с удобным формированием бланка наряда. Всё это хорошо пока есть static ip а с переходом на dhcp - у админов перестает болеть голова, включаем option_82 каждому юзеру по порту управляхи и по айпишке на порту, все как в сказке, диспетчеры плачут - админы смеются :). И тут возникает вопрос как диспетчеру с клиентом общаться, оформлять ли наряд на неисправность если у пользователя банально отключена служба dhcp. Так вот, чтоб не было такого нерационального использования человекоресурса, нужно модеру в биллинг дать инфу по свитчу, естественно состояния портов и маки это для меня, а в биллинге все будет красненькое или зелененькое с отметками либо всё хорошо либо всё плохо. Гораздо проще обьяснить любому диспетчеру, что зеленое - работает, чем : статус порта active/inactive статус линка up/down, show mac address-table port/vlan - совсем много лишней инфы. вот такие цели на сегодняшний день приследуются. не исключаю возможности, что настолько понравится работать с snmp, что полезем далее Клиентские порты и маки через неё никто(?) мониторить пока не додумался. Обычно через контекстное меню вызывают telnet и дальше через CLI. Вставить ник Quote
Yarlan Zey Posted February 13, 2012 Posted February 13, 2012 есть ли мак на порту и имя порта. поофтоплю немного.. ну получит абонент ип автоматом. в таблице ip source guard появится мак прибитый... а как можно узнать получил ли абонент автоматом днс? Вставить ник Quote
Shiva Posted February 13, 2012 Posted February 13, 2012 Если IP адрес получен, то DNS передан. Проверить можно только анализируя запросы по пути или на DNS сервере. Вставить ник Quote
Yarlan Zey Posted February 13, 2012 Posted February 13, 2012 или на DNS сервере. конкретную реализацию можно? без потери производительности Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.