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

snmp php5 apache биллинг управляемого оборудования на php сервер apache протокол snmp

Необходимо сконфигурировать/написать небольшой биллинг для саппорта (писать умеем на php), который минимально умеет собирать данные по snmp и отображать их на веб-морду диспетчерам, а в идеале не только собирать, но и изменять данные по протоколу snmp. Желательно snmp в связке с apache<->php<->mysql. Есть соображения по этому поводу? Буду очень благодарен за любую инфу.

Share this post


Link to post
Share on other sites

http://code.google.com/p/swtoolz/

 

Вот то, что вам нужно, но заточено лишь на D-link, модели des-3028, des-3028G, des-3526, des-3026, des-3200-28.

 

Мы на эту софтинку посмотрели, и написали свою на перле, в связке с Нагиосом и биллингом.

Share this post


Link to post
Share on other sites

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() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои.

Возможно чего не доглядел - бросьте камень :)

Share this post


Link to post
Share on other sites

если функции php для snmp знаете, чего вам не хватает? мибов?

Share this post


Link to post
Share on other sites

если функции php для snmp знаете, чего вам не хватает? мибов?

 

мозгов не хватает:) с сервера утилитой snmpwalk и oid'ами ответы получаю, тоесть сам механизм работы ясен, не доходит как связать apache с snmp, потому что скрипт у меня ругается call to undefined function snmpget() и тд. Иными словами, мой апач про snmp совсем не знает, а хотелось бы их подружить.

Share this post


Link to post
Share on other sites

littledev

Только сразу учтите, что php5-snmp очень кастрированный(нет bulk-ов и прочих плюшек). Мне в итоге пришлось писать обёртки над утилитами snmpget и т.п. через функцию exec.

Share this post


Link to post
Share on other sites

Оно, читал и нужно пересобирать 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, к сожалению нет тестовой тачки на которой можно было бы поиграть, на текущей машине висит нагиос и крутится пара рабочих страничек с базами, если чего-то наворочу - оторвут голову

 

если другой возможности нет - будем искать обходные пути, или тестовую тачку

Share this post


Link to post
Share on other sites

littledev

В Centos есть пакет:

# rpm -qa | grep php-snmp

php-snmp-5.3.3-3.el6_2.6.x86_64

 

В дебиане разве нет? aptitude search snmp | grep php

Share this post


Link to post
Share on other sites

littledev

В Centos есть пакет:

# rpm -qa | grep php-snmp

php-snmp-5.3.3-3.el6_2.6.x86_64

 

В дебиане разве нет? aptitude search snmp | grep php

 

сделал почти так же только вручную, узнал что в природе есть не только модули но и целый пакет php-snmp, поставил рестартанул апач - вуаля, вызов snmp перестал ругаться

 

Всем огромное спасибо за участие. Иногда бывает затык, что сам по себе не знаешь с какой стороны подойти, сейчас snmp_walk() возвращает мне array() так что процесс пошел и далее это уже тема для другого разговора, если кто использовал еще какие-то интересные решения для управления коммутаторами L2 по snmp - милости прошу добавить в топик инфо, на самом деле инфы не так уж много по этому вопросу, особенно для малоопытных

 

еще раз спасибо всем за помощь

Share this post


Link to post
Share on other sites

Спасибо большое, интересно почитать, бегло просмотрел и не нашел к сожалению самого главного - связки snmp протокола с apache через php (с перлом не знаком, но гугл подсказал, что можно и на php реализацию создать), snmp_get(), snmp_set(), snmp_walk() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои.

Возможно чего не доглядел - бросьте камень :)

 

Тот скрипт, который я вам привел и написан на php, если d-link подходящей модели есть под рукой, запускайте скрипт, скармливайте ему ip коммутатора, и смотрите практически все о его портах.

 

На перле мы писали софтинку другую, скажим так, по мотивам вышеприведенной.

Share this post


Link to post
Share on other sites

littledev

Perl SNMP::Info посмотрите, может найдёте там для себя что-нибудь интересного

Share this post


Link to post
Share on other sites

Спасибо большое, интересно почитать, бегло просмотрел и не нашел к сожалению самого главного - связки snmp протокола с apache через php (с перлом не знаком, но гугл подсказал, что можно и на php реализацию создать), snmp_get(), snmp_set(), snmp_walk() само по себе несложно, а вот хотелось бы заострить внимание на том каким образом реализуется взаимодействие. В Вашем примере много полезных функций и можно сократить время, чтобы не писать свои.

Возможно чего не доглядел - бросьте камень :)

 

Тот скрипт, который я вам привел и написан на php, если d-link подходящей модели есть под рукой, запускайте скрипт, скармливайте ему ip коммутатора, и смотрите практически все о его портах.

 

На перле мы писали софтинку другую, скажим так, по мотивам вышеприведенной.

 

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

Работаем с Zyxel (2108,3528,4012,4728) snmp интересует в основном на младших моделях, которые в сторону пользователя смотрят (на старших моделях пока что просто трапы ловим и мртг рисуется(хотя и сюда руки дотянем), но тут без каких-либо чудес ...сугубо базовая настройка),и на младших моделях чаще всего и производятся текущие действия, хорошо когда поначалу можно обойтись малым и дергать все руками, а вот со временем уже как-то неэффективно.

Share this post


Link to post
Share on other sites

littledev

Perl SNMP::Info посмотрите, может найдёте там для себя что-нибудь интересного

спасибо, обязательно посмотрю

Share this post


Link to post
Share on other sites

если будет много коммутаторов - откажитесь от php... медленно

Share this post


Link to post
Share on other sites

если будет много коммутаторов - откажитесь от php... медленно

 

+1. Причина - отсутсвие человеческого multithread в php, если собирать данные периодически со всех свитчей. Если опрашивать какие-то характеристики по запросу оператора, то пойдёт, но лучше, конечно, сразу приобщаться к jsp, для java хотя бы snmp4j есть - отличная библиотека для работы с snmp

Share this post


Link to post
Share on other sites

littledev

В Centos есть пакет:

# rpm -qa | grep php-snmp

php-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

Share this post


Link to post
Share on other sites

если будет много коммутаторов - откажитесь от php... медленно

 

+1. Причина - отсутсвие человеческого multithread в php, если собирать данные периодически со всех свитчей. Если опрашивать какие-то характеристики по запросу оператора, то пойдёт, но лучше, конечно, сразу приобщаться к jsp, для java хотя бы snmp4j есть - отличная библиотека для работы с snmp

 

тут не в кол-ве коммутаторов счастье, мониторинг ведется нагиосом и он пока что справляется, первоначальная задача чтобы саппорт мог при работе с клиентом получить инфо о том в каком состоянии находится порт, есть ли мак на порту и имя порта. Таких запросов в среднем будет 1 в 3-5 минут в зависимости от интенсивности обращений в саппорт и кол-ва операторов, а вот если собирать статистику всей сети протоколом snmp - вот тут я целиком с Вами соглашусь, совсем другая песня и уже хочешь/не хочешь придётся лезть в дебри и учить новое. Ни для кого не секрет, что иногда задачи ставятся со сроком выполнения "позавчера", потому для начала накатим рабочий минимум, а далее "лень - двигатель прогресса" - сделает своё дело и подтолкнет модернизацию

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

У наших диспетчеров The Dube стоит. По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр, в общем шикарная штука и развёртывается быстро + бесплатно!

 

Брать тут: http://www.mikrotik.com/thedude.php

Share this post


Link to post
Share on other sites

У наших диспетчеров The Dube стоит.

The Dude.

 

По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр

Её используют, чтобы видеть ситуацию с точностью до свича.

Клиентские порты и маки через неё никто(?) мониторить пока не додумался.

Обычно через контекстное меню вызывают telnet и дальше через CLI.

Share this post


Link to post
Share on other sites

У наших диспетчеров The Dube стоит.

The Dude.

 

По SNMP дружит с любым железом + нагрузки на каналы + удалённый просмотр

Её используют, чтобы видеть ситуацию с точностью до свича.

 

с точностью до свитча видит нагиос и это зеркало диспетчерской души, отдельный биг монитор перед глазами и видно, что зелёное, а что красное, карту под обьекты сами накладываете, так что вид можно делать как простой и удобный так и подробный но неоч. удобный - это уже собственно не задача. А вот с клиентом общение происходит отдельно от нагиоса в самописном биллинге, юзер говорит логин и у диспетчера по логину появляются все данные пользователя + список радиокнопок для выбора вопроса по которому звонит юзер (тоесть список базовых неисправностей и вопросов которые могут быть, пример: не работает инет, плохо работает инет, консультация) на деле все немного подробнее но несильно. Сделано, чтобы заявки от пользователей принимались коротенькие и понятные с удобным формированием бланка наряда. Всё это хорошо пока есть static ip а с переходом на dhcp - у админов перестает болеть голова, включаем option_82 каждому юзеру по порту управляхи и по айпишке на порту, все как в сказке, диспетчеры плачут - админы смеются :). И тут возникает вопрос как диспетчеру с клиентом общаться, оформлять ли наряд на неисправность если у пользователя банально отключена служба dhcp. Так вот, чтоб не было такого нерационального использования человекоресурса, нужно модеру в биллинг дать инфу по свитчу, естественно состояния портов и маки это для меня, а в биллинге все будет красненькое или зелененькое с отметками либо всё хорошо либо всё плохо. Гораздо проще обьяснить любому диспетчеру, что зеленое - работает, чем : статус порта active/inactive статус линка up/down, show mac address-table port/vlan - совсем много лишней инфы.

 

вот такие цели на сегодняшний день приследуются. не исключаю возможности, что настолько понравится работать с snmp, что полезем далее

Клиентские порты и маки через неё никто(?) мониторить пока не додумался.

Обычно через контекстное меню вызывают telnet и дальше через CLI.

Share this post


Link to post
Share on other sites

есть ли мак на порту и имя порта.

поофтоплю немного.. ну получит абонент ип автоматом. в таблице ip source guard появится мак прибитый... а как можно узнать получил ли абонент автоматом днс?

Share this post


Link to post
Share on other sites

Если IP адрес получен, то DNS передан. Проверить можно только анализируя запросы по пути или на DNS сервере.

Share this post


Link to post
Share on other sites

или на DNS сервере.

конкретную реализацию можно? без потери производительности

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
Sign in to follow this