Jump to content
Local
dan_aspire

Pon Control - комплекс управления и мониторинга сетью

Recommended Posts

 

Спасибо за большущую работу! В обозримом будущем планирую перевести работу с ексеков на пхп_снмп, что было бы логично, а не извращенно как сейчас.

 

 

 

На php snmp было бы конечно более универсально. Будем следить за вашими апдейтами.

Share this post


Link to post
Share on other sites

Спасибо за прогу.

Поставили на дебиан, все взлетело. Из минусов - некорректно мониторятся 3616. Может есть какие нить рекомендации/подсказки?

 

Если быть более точным, в базу данных онушки добавляются, но при этом на вебе их не отображает.

 

 

П.С. Для тестирования на 3616 можем организовать удаленный доступ на железо:)

Edited by kpoxa

Share this post


Link to post
Share on other sites

жаль что на фрибсд не подходит....

Edited by logic

Share this post


Link to post
Share on other sites

жаль что на фрибсд не подходит....

а че там пхп не такой или snmpwalk который в екзек вызывается по другому работает ???

то что возможно код немного надо подпилить, то это может быть

я и под линукс подпиливал чтобы посмотреть на работу ...

Edited by Lynx100

Share this post


Link to post
Share on other sites

На CentOS не встал сходу, на что смотреть нужно?

Точнее по ONU инфу не получает даже после опроса в логах

 

PHP Notice:  Undefined index: sort in /var/www/html/pon/onu_sql.php on line 12, refer
PHP Notice:  Undefined index: sfp in /var/www/html/pon/onu_sql.php on line 18, refere
PHP Notice:  Undefined variable: sort_sfp in /var/www/html/pon/onu_sql.php on line 20
Edited by Unikar

Share this post


Link to post
Share on other sites

В процессе новая версия с более оптимизироваными запросами, должно будет на всех системах работать

Share this post


Link to post
Share on other sites

Итак, немного переделал схему опроса:

 

Замените файлик get_snmp.php следующим содержимым:





<?php
include 'vars.php';
$extra = 'index.php';
if ($table == NULL) {
$table = $_GET["olt"];
} else {
}



$ip = str_replace ("_", ".", $table);

include 'get_ro.php';
include 'get_rw.php';
include_once 'function_lib.php';


$sql_ip = ip2longfixed($ip);

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_db);
UpdateOltLastAct($conn, $sql_ip, $date);

$Array_descr = snmprealwalk($ip, $ro, "1.3.6.1.2.1.2.2.1.2");


 if(count($Array_descr)>0)
 {
 foreach($Array_descr as $key => $type)
 {
 $key = str_replace("iso.3.6.1.2.1.2.2.1.2.", "", $key);
 $type = trim(str_replace("STRING: ", "", $type));

 $olt = strtok($type, ":");

 if(preg_match("#:#", $type))
 {
$rx = RxById($ip, $ro, $key);
$nameint = NameIntAddZero(NameById($ip, $ro, $key));
$mac = MacById($ip, $ro, $key);
UpdateOnu($conn, $sql_ip, $date, $nameint, $mac, $rx);


}
}

}




header("Location: http://$host$uri/$extra?page=olt&olt=$table");
?>

2) Создайте в той же папке файлик function_lib.php 





<?php


// ---------- Correct function ip2long for work on 32bit systems

function ip2longfixed($ip) {
$sql_ip = sprintf('%u', ip2long($ip));
return $sql_ip;
}

// END ----------





// ----------Get RX level by Interface ID----------

function RxById($ip, $ro, $iface) {
// Get RX level with "INTEGER: "
  $rx = snmp2_get($ip, $ro, ".1.3.6.1.4.1.3320.101.10.5.1.5.$iface");

// Get CLEAN RX level
$rx = end(explode(' ', $rx));
if ($rx == 0) {
$rx = "Offline";
} else {
$rx=($rx/10);

$rx=sprintf("%.1f", $rx);
}
return $rx;
}

// END ----------Get RX level by Interface ID----------






// ----------Get PON interface name by Interface ID----------


function NameById($ip, $ro, $iface) {
$iface_name = snmp2_get($ip, $ro, "1.3.6.1.2.1.2.2.1.2.$iface");

//Get CLEAN name
$iface_name = end(explode(' ', $iface_name));
$iface_name = str_replace("\"", "", $iface_name);


return $iface_name;
}

// END ----------Get PON interface name by Interface ID----------

// ----------Get MAC ADDRESS of ONU by nterface ID----------
function MacById($ip, $ro, $iface) {
$mac = snmp2_get($ip, $ro, "1.3.6.1.4.1.3320.101.10.1.1.3.$iface");
$mac = trim(end(explode(':', $mac)));
$mac = str_replace (" ", ":", $mac);
return $mac;
}

// END ----------

// ---------- Add zero to interface name for correct sorting ----------

function NameIntAddZero($nameint) {
$end = end(explode(':', $nameint));
$count = strlen($end);
if ($count == 1){
$nameint = str_replace (":1", ":01", $nameint);
$nameint = str_replace (":2", ":02", $nameint);
$nameint = str_replace (":3", ":03", $nameint);
$nameint = str_replace (":4", ":04", $nameint);
$nameint = str_replace (":5", ":05", $nameint);
$nameint = str_replace (":6", ":06", $nameint);
$nameint = str_replace (":7", ":07", $nameint);
$nameint = str_replace (":8", ":08", $nameint);
$nameint = str_replace (":9", ":09", $nameint);

}
return $nameint;
}

// END ----------




// ---------- MYSQL update last activity of OLT ----------
function UpdateOltLastAct($conn, $sql_ip, $date) {
$sql = "UPDATE olts SET last_act='$date' WHERE ip='$sql_ip'";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
}

// END ----------





// ---------- MYSQL Update/Add ONU ----------
function UpdateOnu($conn, $sql_ip, $date, $nameint, $mac, $rx) {
if ($rx == "Offline") {
$rx = "0";

$sql = "INSERT INTO onus (olt,name,mac,pwr) VALUES ('$sql_ip','$nameint','$mac','$rx')";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
}




} else {


$sql = "INSERT INTO onus (olt,name,mac,pwr) VALUES ('$sql_ip','$nameint','$mac','$rx') ON DUPLICATE KEY UPDATE name=VALUES(name), olt=VALUES(olt),pwr=VALUES(pwr)";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}

$sql = "UPDATE onus SET olt='$sql_ip',last_pwr='$rx',last_activity='$date' WHERE mac='$mac'";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}

}

$sql = "INSERT INTO onus_s (olt,mac,pwr,datetime) VALUES ('$sql_ip','$mac','$rx','$date')";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}










}

// END ----------




?>

По идее должно взлететь на всех системах.

 

P.S. спасибо тем кто отозвался и в особенности тем кто поделился своими наработками)

Edited by dan_aspire

Share this post


Link to post
Share on other sites

Итак, немного переделал схему опроса:

 

Замените файлик get_snmp.php следующим содержимым:

 

По идее должно взлететь на всех системах.

 

P.S. спасибо тем кто отозвался и в особенности тем кто поделился своими наработками)

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

Share this post


Link to post
Share on other sites

 

Итак, немного переделал схему опроса:

 

Замените файлик get_snmp.php следующим содержимым:

 

По идее должно взлететь на всех системах.

 

P.S. спасибо тем кто отозвался и в особенности тем кто поделился своими наработками)

может добавьте или обновите версию в шапке ?
Обновлю как будут отзывы о том, что успешно запустилось у тех, кого не работало до этого. А так я выложил на тест)

Share this post


Link to post
Share on other sites

завтра попробую под фрей

скажете результат

Share this post


Link to post
Share on other sites

File does not exist: /var/www/html/pon/modal-contact-form.css, referer: /pon/index.php?page=olt&olt=10.100.100.6

 

При нажатие опрос ничего не происходит в логах только это

Share this post


Link to post
Share on other sites

 

 

Не извращайтесь. Напишите на office@userside.ua - дадим API как получать данные. Чтобы не ходить в базу.

По Netup по прежнему в базу стучим или прикрутились таки к урфе?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

 PHP Strict Standards:  Only variables should be passed by reference in /usr/local/www/apache22/data/pon/function_lib.php on line 71

PHP Warning:  snmp2_get(): Invalid object identifier: 1.3.6.1.4.1.3320.101.10.1.1.3.IF-MIB::ifDescr.117 in /usr/local/www/apache22/data/pon/function_lib.php on line 60

 

И в таком духе.

 

Соотвественно за собой тянет

 

PHP Notice:  Undefined index: search in /usr/local/www/apache22/data/pon/olt.php on line 5,

Ну и дальше пустые данный в get_sfp, onu_sql 

Итд.

 

Если надо могу скинуть лог ошибок в личку.

 

ЗЫ FreeBSD 9.3-RELEASE-p7

Edited by Raniel-Atero

Share this post


Link to post
Share on other sites

Завелось. Все работает.

Linux feldsher-jobstation 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 athlon i686 GNU/Linux

 

На 64 разрядной системе почему-то не пошло.

 

Автору большое спасибо.

Share this post


Link to post
Share on other sites

было бы очень круто, что бы отображалось более 4-х пон сфп.

Share this post


Link to post
Share on other sites

было бы очень круто, что бы отображалось более 4-х пон сфп.

Где именно? Если можно - сделайте скрин.

Share this post


Link to post
Share on other sites

 

было бы очень круто, что бы отображалось более 4-х пон сфп.

Где именно? Если можно - сделайте скрин.

 

post-33339-0-22703800-1446907002_thumb.png

Share this post


Link to post
Share on other sites

 

 

было бы очень круто, что бы отображалось более 4-х пон сфп.

Где именно? Если можно - сделайте скрин.

 

 

В планах в будущей версии возможность указать при редактировании ОЛТа количество ПОН сфп

Share this post


Link to post
Share on other sites

 

 

В планах в будущей версии возможность указать при редактировании ОЛТа количество ПОН сфп

 

отлично, готов буду потестировать на 5+ сфп

Share this post


Link to post
Share on other sites

було б краще інтегрувати подібний функціонал в юзерсайд.

Share this post


Link to post
Share on other sites

було б краще інтегрувати подібний функціонал в юзерсайд.

ну так обратитесь к юзерсайдам

делов то :)

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By CR7
      Абонентский терминал XPON- 14.6уе 
      Абонентский терминал GEPON ONU  1GE 13уе
    • By CR7
      Модуль оптический  GEPON OLT SFP, 1,25G, С+ 28уе
      Модуль оптический SFP, OLT, GPON, 1GE,1490/1310nm C++- 38уе
      Модуль оптический GPON OLT SFP, 1,25G/2,5G, C+ 28уе
      Модуль оптический  SFP+ 10G-1SM-1270nm-40LC- 60уе
      Модуль оптический  SFP+ 10G-1SM-130nm-40LC-60уе
      Модуль оптический SFP-1SM-1550nm-80SC- 20уе
      Модуль оптический SFP-1SM-1490nm-80SC-20уе
      Модуль оптический SFP-1SM-1310nm-3SC-7уе
      Модуль оптический SFP-1SM-1550nm-3SC-7уе
       
    • By Stroj
      Доброго дня всім.
       
      Чи замислювався хоч хтось, а мо й пробував вимірювати (стрельнути рефлюком) ПОН на працюючий лінії? Від абонента в сторону "олти" ?
      Я знаю що є звичайна практика вимірювати ПОН в такому випадку достатньо коштовними рефлектометрами в яких є "фільтр" та вимірювач на частоті 1625 nm.
       
      Хоча якщо розмірковувати "здраво", при (зазвичай) відсутності обладнання CATV на 1550nm. .... 
      То що нам "мішає" взяти DWDM сплітер на 1550nm.? Відсікти ним 1310nm. та 1490nm. ....
      Та й поміряти звичайним рефом на частоті 1550nm., звісно якщо вистачить динамічного діапазону ?
       
      Тут правда виникає пара запитань:
      1) як поведе себе "голова", чи потрібно й на ній ставити DWDM ? (не в плані похибок та кротких збоїв, а що-би не "спалити" SFP (точніше приймач на ній), бо-ж - бо реф повинен мати динамічний діапазон від 32 дБ й вище)
      2) А що буде якщо "вліпити" 2 шт. DWDM 1550 й 1310 - то може вдасться поміряти на обох частотах ? Чи на 1310 "помішають" вимірам сигнали від інших ОНУ ?  
       
      То мо, хто, щось підкаже ? А може й досвідом поділиться?
    • By Туйон
      Такой вопрос.
      Имеется фирма, в которой нужно моденизировать, а по сути - построить заново, локальную сеть.
      Расположение - длина около 3-4 км. Около 10 контор (в виде зданий, пристроек, сооружений).
      В каждом из этих зданий - своя локальная сеть (разные подсети, кое где одинаковые).
      Так же почти везде (в большей половине) - видеонаблюдение. Сейчас какое, хз, старое. Будет новое.
      Задача - обеспечить всех связью, путем выдачи каждому зданию минимум двух влан (наблюдение, сеть).
      Т.е. на 10 зданий - 20 влан. 
      Все влан должны быть тегами переданы в конце концом одним волокном в их типа серверную. Знаю, что там свитч и пара серваков.
      Сначала конечно же подумал про SFP, свитчи и т д. Однако, топология такова, что нормальную звезду не построить.
      Получается, что все идут практически друг за другом, может есть одно ответвление.
      Брать минимум 8 волоконный кабель? А вдруг потом не хватит?
       
      С PON опыта особого не имею, так, кое что знаю понимаю. Но лично не строил.
      Я так понимаю, что купив один раз OLT и сэкономя на кабеле (1 волокно вместо 8-16), я решу задачу?
      Появляются вопросы.
      1. Есть ли какие OLT с одним портом? Брать на 4 не рационально. Больше 64 ONU там точно не будет.
      2. Есть ли ONU, которые нормально дружат с влан (ну это я понял не проблема) и с обьемами трафика (в основном отдача - видео, но и локалки). Наслышан, что ONU капризничают после какого-то количества МАС на медном порту.
      3. Какой есть нормальный кабель а-ля FTTH, на стальном тросу? Пролёты не большие в основном, но их много. 1кн хватит. Диэлектричность им не важна, а мне не хочется связываться с натяжителями.
      Требование в основном к тому, чтобы работало надежно, особенно видео. Так же нужно быть готовым, что в какой то момент новый админ вдруг пожелает подкинуть на ONU ещё какой-то зоопарк машин, принтеров, всякой херни. 
    • By Saymon609
      Продам ONU BDCOM P1501DT в наявності 3 штуки. Ціна 1 -300грн.
×