Jump to content

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


Recommended Posts

Всем привет. 

Кто сможет подсказать в чем проблема:

 Ошибка "Could not enter data: Duplicate entry '2886861068' for key 'ip' ". Возникает в файле "addolt_sql.php". Копаюсь в исхдниках и выяснил что это в строчках



$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}

upd. С этим я разобрался (хотя сам не понял как :)) Теперь я вижу свою ОЛТ и все ОНУ, но вот только поле "Бюджет" (как я понял уровень сигнала на тек момент), так вот он отличается от тех которые я вывожу напрямую через ОЛТ. 

Что это может быть?

 

uupd. И с этим разобрался :)

У меня остался только 1 вопрос: А никто не пытался выводить история состояния ОНУ-шек в график? Я думаю было бы очень наглядно и удобно.

nAy6XELSX5Jvgr.jpg

Link to post
Share on other sites
  • Replies 599
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Предыстория: всё началось с простого желания видеть сигналы на ОНУшках через веб-интерфейс (с телефона работая на линии такая инфа необходима), потом задавались вопросом "А какие сигналы были до того,

get_fdb_by_telnet.php 24 строчка   "fwrite($con, "show mac a int $nameint \r\n");" рекомендую поправить на "fwrite($con, "show mac address-table int $nameint \r\n");" в  Build 58197 поя

Хозяйке на заметку:   Относительно полного вывода ОИДов   1. Юзайте snmpwalk с параметрами snmpwalk -v2c -On -Cc -c public ip-address   2. Юзайте опции в php snmp snmp_set_oid_numeric_print(SN

Posted Images

Можно скрины? В сети стоят и металлические, и пластиковые 4хпортовые - всё ок.

 

1 и 2 ону 4-х портовый бдком

https://drive.google.com/file/d/0B1kmObNH9TxaVlUzU19LLS1KeGc/view?usp=sharing

https://drive.google.com/file/d/0B1kmObNH9TxaRVBnRTlHSlFzbnc/view?usp=sharing

Edited by revomix
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.4.1.3320.101.10.1.1.26");


 if(count($Array_descr)>0)
 {
 foreach($Array_descr as $key => $type)
 {

$key = end(explode('10.1.1.26.', $key));

$type = NameById($ip, $ro, $key);

 $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");
?>

файл ping.php



<?php

if ($os == "BSD") {
$ping = exec("ping -c $ping_count -t $ping_timeout $ip | grep \"time=\"");
} else {
$ping = exec("ping -c $ping_count -W $ping_timeout $ip | grep \"time=\"");
}



if ($ping == NULL) {
$ping = 0;
} else {
$ping = 1;



include 'vars.php';
$sql_ip = sprintf('%u', ip2long($ip));
$extra = 'index.php';
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_db);
$sql_req = "UPDATE olts SET last_act=\"$date\" WHERE ip='$sql_ip'";
$retval_ping = mysql_query( $sql_req, $conn );
if(! $retval_ping )
{
  die('Could not enter data: ' . mysql_error());
}

}
?>

добавить строку в vars.php



$os = "BSD";

Опроса онушек добился. Просьба к тем, у кого фря - затестить и отписаться. Если всё успешно - в карточке ONU переделаю функции и обновлю весь релиз.

 

А нельзя просто сокеты опросить или по снмп, не надо будет городить костыли. Например по телнет

$ping = fsockopen ($ip, 23, $errno, $errstr, 0.2);
if(!$ping)
    $ping = 0;
else 
    $ping = 1;



 

 

Link to post
Share on other sites

Стал проверять по "модульно"..

Запускаю из браузера

http://192.168.0.15/addolt.php

и получаю это:

http://192.168.0.15/addolt_sql.php
Could not enter data: Access denied for user ''@'localhost' to database 'poncontrol'

Ответ странный.. параметр "пользователь" пустой....

Смотрим наших пользователей:

mysql> select user,host,password from mysql.user;
+----------+--------------------+-------------------------------------------+
| user     | host               | password                                  |
+----------+--------------------+-------------------------------------------+
| root     | localhost          |                                           |
| root     | мой-хост           |                                           |
| root     | 127.0.0.1          |                                           |
| root     | ::1                |                                           |
|          | localhost          |                                           |
|          | мой-хост           |                                           |
| vladimir | localhost          | *3F4E51E949761B9825C7FE806797F672A8EFA20D |
+----------+--------------------+-------------------------------------------+
7 rows in set (0.00 sec)

И вот мы видим "пользователя" без имени но с хостом....

Но почему его использует скрипт?

Прошу помощи разобраться... Автор что-то не отвечает. Возможно занят.... :(

А мне надо решить задачу... :(

Link to post
Share on other sites

 

Стал проверять по "модульно"..

Запускаю из браузера

http://192.168.0.15/addolt.php

и получаю это:

http://192.168.0.15/addolt_sql.php
Could not enter data: Access denied for user ''@'localhost' to database 'poncontrol'

Ответ странный.. параметр "пользователь" пустой....

Смотрим наших пользователей:

mysql> select user,host,password from mysql.user;
+----------+--------------------+-------------------------------------------+
| user     | host               | password                                  |
+----------+--------------------+-------------------------------------------+
| root     | localhost          |                                           |
| root     | мой-хост           |                                           |
| root     | 127.0.0.1          |                                           |
| root     | ::1                |                                           |
|          | localhost          |                                           |
|          | мой-хост           |                                           |
| vladimir | localhost          | *3F4E51E949761B9825C7FE806797F672A8EFA20D |
+----------+--------------------+-------------------------------------------+
7 rows in set (0.00 sec)

И вот мы видим "пользователя" без имени но с хостом....

Но почему его использует скрипт?

Прошу помощи разобраться... Автор что-то не отвечает. Возможно занят.... :(

А мне надо решить задачу... :(

 

я вам отвечал в ЛС. Очень странно, пхп не хочет отдавать переменную для функции. Лог апача в момент этого запроса прикрепите, пожалуйста.

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.4.1.3320.101.10.1.1.26");


 if(count($Array_descr)>0)
 {
 foreach($Array_descr as $key => $type)
 {

$key = end(explode('10.1.1.26.', $key));

$type = NameById($ip, $ro, $key);

 $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");
?>

файл ping.php



<?php

if ($os == "BSD") {
$ping = exec("ping -c $ping_count -t $ping_timeout $ip | grep \"time=\"");
} else {
$ping = exec("ping -c $ping_count -W $ping_timeout $ip | grep \"time=\"");
}



if ($ping == NULL) {
$ping = 0;
} else {
$ping = 1;



include 'vars.php';
$sql_ip = sprintf('%u', ip2long($ip));
$extra = 'index.php';
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_db);
$sql_req = "UPDATE olts SET last_act=\"$date\" WHERE ip='$sql_ip'";
$retval_ping = mysql_query( $sql_req, $conn );
if(! $retval_ping )
{
  die('Could not enter data: ' . mysql_error());
}

}
?>

добавить строку в vars.php



$os = "BSD";

Опроса онушек добился. Просьба к тем, у кого фря - затестить и отписаться. Если всё успешно - в карточке ONU переделаю функции и обновлю весь релиз.

 

А нельзя просто сокеты опросить или по снмп, не надо будет городить костыли. Например по телнет

$ping = fsockopen ($ip, 23, $errno, $errstr, 0.2);
if(!$ping)
    $ping = 0;
else 
    $ping = 1;



 

 

Когда ОЛТ опрашивается либо сохраняет настройки - телнет и СНМП бывает не отвечают и получался таймаут. Пришлось городить такое.

Link to post
Share on other sites

 

Можно скрины? В сети стоят и металлические, и пластиковые 4хпортовые - всё ок.

 

1 и 2 ону 4-х портовый бдком

https://drive.google.com/file/d/0B1kmObNH9TxaVlUzU19LLS1KeGc/view?usp=sharing

https://drive.google.com/file/d/0B1kmObNH9TxaRVBnRTlHSlFzbnc/view?usp=sharing

 

вывод snmpwalk .1.3.6.1.4.1.3320.101.10.1.1.26 дайте, пожалуйста. Можно в ЛС.

Link to post
Share on other sites

 

 

Стал проверять по "модульно"..

Запускаю из браузера

http://192.168.0.15/addolt.php

и получаю это:

http://192.168.0.15/addolt_sql.php
Could not enter data: Access denied for user ''@'localhost' to database 'poncontrol'

Ответ странный.. параметр "пользователь" пустой....

Смотрим наших пользователей:

mysql> select user,host,password from mysql.user;
+----------+--------------------+-------------------------------------------+
| user     | host               | password                                  |
+----------+--------------------+-------------------------------------------+
| root     | localhost          |                                           |
| root     | мой-хост           |                                           |
| root     | 127.0.0.1          |                                           |
| root     | ::1                |                                           |
|          | localhost          |                                           |
|          | мой-хост           |                                           |
| vladimir | localhost          | *3F4E51E949761B9825C7FE806797F672A8EFA20D |
+----------+--------------------+-------------------------------------------+
7 rows in set (0.00 sec)

И вот мы видим "пользователя" без имени но с хостом....

Но почему его использует скрипт?

Прошу помощи разобраться... Автор что-то не отвечает. Возможно занят.... :(

А мне надо решить задачу... :(

 

я вам отвечал в ЛС. Очень странно, пхп не хочет отдавать переменную для функции. Лог апача в момент этого запроса прикрепите, пожалуйста.

 

в логе апача:

[Tue Apr 19 00:22:02.997229 2016] [:error] [pid 1185] [client 192.168.0.39:1487] PHP Notice:  Undefined index: page in /usr/local/www/apache24/data/index.php on line 2, referer: http://192.168.0.15/
[Tue Apr 19 00:22:02.997825 2016] [:error] [pid 1185] [client 192.168.0.39:1487] PHP Notice:  Undefined index: page in /usr/local/www/apache24/data/main.php on line 10, referer: http://192.168.0.15/
[Tue Apr 19 00:22:02.998926 2016] [:error] [pid 1185] [client 192.168.0.39:1487] PHP Warning:  mysql_connect(): Host '192.168.0.15' is not allowed to connect to this MySQL server in /usr/local/www/apache24/data/olt_list.php on line 13, referer: http://192.168.0.15/
[Tue Apr 19 00:22:02.999795 2016] [:error] [pid 1185] [client 192.168.0.39:1487] PHP Warning:  mysql_query() expects parameter 2 to be resource, boolean given in /usr/local/www/apache24/data/olt_list.php on line 19, referer: http://192.168.0.15/
Link to post
Share on other sites

Так вы укажите в vars адрес базы данных localhost либо в конфиге мускуля разрешите коннект не только с локалхоста.

если в файле wars указываю адрес localhost то получаю это:

Could not enter data: Access denied for user 'vladimir'@'localhost' to database 'poncontrol'

проверил файл my.cnf

в нем нет строки "bind-address ="

А если её нет то подключение разрешено с любого хоста. Я правильно понял перевод к мускулю?

Link to post
Share on other sites

в файле wars прописал адрес как 127.0.0.1

в браузере запросил

http://192.168.0.15/addolt.php

Получил следующее:

http://192.168.0.15/addolt_sql.php

Could not enter data: CREATE command denied to user 'vladimir'@'localhost' for table 'onus'

Пытается создать таблицу для ону?

Link to post
Share on other sites

Вот включил логирование для php

var/log # cat php_errors.log
[18-Apr-2016 18:53:52 UTC] PHP Warning:  Module 'snmp' already loaded in Unknown on line 0
[18-Apr-2016 18:53:52 UTC] PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
Link to post
Share on other sites

Смотрим подключенные модули в php.

# php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
snmp
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
Link to post
Share on other sites

Вот что теперь вижу

post-11741-0-99545300-1461005053_thumb.jpg

 

При попытке добавления OLT долго крутит и не находит. Тут я так понимаю надо допиливать скрипт get_snmp.php?

Link to post
Share on other sites

Он работает и без допиливания. Его либо в крон добавить для автоматического опроса нужно, либо просто нажимать "Опросить олт".

Link to post
Share on other sites

На вэб-интерфейсе ничего нового не появляется..

Вот что происходит:

# sh /peleng.sh
--2016-04-19 03:49:22--  http://192.168.0.15//ping_all.php
Connecting to 192.168.0.15:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://192.168.0.15/index.php?page=olt_list [following]
--2016-04-19 03:49:28--  http://192.168.0.15/index.php?page=olt_list
Reusing existing connection to 192.168.0.15:80.
HTTP request sent, awaiting response... 200 OK
Length: 4735 (4.6K) [text/html]
Saving to: 'temp.php'

100%[===========================================================================================================>] 4,735       --.-K/s   in 0s

2016-04-19 03:49:34 (197 MB/s) - 'temp.php' saved [4735/4735]

И в это время:

# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
03:49:55.515310 IP 192.168.0.39.blackjack > 255.255.255.255.1947: UDP, length 40
03:50:03.526702 IP 192.168.132.1.blackjack > 192.168.132.255.1947: UDP, length 40
03:50:12.381365 IP 192.168.132.1.netbios-dgm > 192.168.132.255.netbios-dgm: NBT UDP PACKET(138)
03:50:42.446636 IP 192.168.0.39.blackjack > 255.255.255.255.1947: UDP, length 40
03:50:50.457952 IP 192.168.132.1.blackjack > 192.168.132.255.1947: UDP, length 40
Link to post
Share on other sites

Через вэб-интерфейс делаю "Опросить ОЛТ":

[Tue Apr 19 20:11:13.774268 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Warning:  snmp2_get(): No response from 10.11.11.2 in /usr/local/www/apache24/data/ping.php on line 7, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.774448 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined index: sort in /usr/local/www/apache24/data/onu_sql.php on line 12, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.774472 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined index: sfp in /usr/local/www/apache24/data/onu_sql.php on line 18, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.774493 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 20, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776061 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 43, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776105 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 43, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776128 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 44, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776149 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 44, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776170 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: sort_sfp in /usr/local/www/apache24/data/onu_sql.php on line 44, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2
[Tue Apr 19 20:11:13.776223 2016] [:error] [pid 921] [client 192.168.0.39:1273] PHP Notice:  Undefined variable: search_sql in /usr/local/www/apache24/data/onu_sql.php on line 54, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2

Edited by vlad5503
Link to post
Share on other sites

Спасибо за направление. Скинул лог, во сне понимаю значение этой строки. Проснулся и понял:

Не отвечает удаленный хост....(

вот сегодня сидел и разбирался почему он не отвечает.

Перепроверяем настройки...

По результату отпишусь.

Link to post
Share on other sites

добрался снова до компа...

Нажал "Опрсоить ОЛТ" и вот что в логе апача:

[Wed Apr 20 23:51:58.139891 2016] [:error] [pid 963] [client 192.168.0.39:2561] PHP Warning:  snmp2_get(): Invalid object identifier: 1.3.6.1.2.1.2.2.1.2.SNMPv2-SMI::enterprises.2011.6.128.1.1.2.143.1.1.4194346752 in /usr/local/www/apache24/data/function_lib.php on line 147, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2&sfp=1
[Wed Apr 20 23:51:58.139928 2016] [:error] [pid 963] [client 192.168.0.39:2561] PHP Warning:  snmp2_get(): Invalid object identifier: 1.3.6.1.2.1.2.2.1.2.SNMPv2-SMI::enterprises.2011.6.128.1.1.2.143.1.1.4194320384 in /usr/local/www/apache24/data/function_lib.php on line 147, referer: http://192.168.0.15/index.php?page=olt&olt=10.11.11.2&sfp=1
Неверно определен объект...
В файл get-snmp.php вписано: 
$Array_descr = snmprealwalk($ip, $ro, ".1.3.6.1.4.1.2011.6");
 if(count($Array_descr)>0)
 {
 foreach($Array_descr as $key => $type)
 {
$key = end(explode('1.3.6.1.2.1.2.2.1.2', $key));

запустил скрипт peleng.sh и логе апача тоже что по нажатию "Опросить ОЛТ".

1.3.6.1.4.1.2011.6 брал с инета, здесь - http://ixnfo.com/category/hardware/huawei/page/3

 

$Array_descr - что здесь должно быть? Начало оид-а?

$key - а здесь что? какая-то часть оида?

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 nickstav
      Предлагаю.  Сварка ВОЛС PON монтаж. Измерение ВОЛС рефлектометром. Киев и область
    • By Pasivka
      Продам залишки :
      - пігтейли :
      LC/UPS 1.5 м 72шт  - 4 грн/шт
      SC/UPC 1.5м 72шт  - 4грн/шт
      - адаптер SC/UPC 150шт/100грн
      - FOB-04-16    2шт   - 100грн/шт
      - Crosver Fosc-MB-338/24-1-12-9SC 6шт                               - 85грн/шт
      - дільник 1/8  30шт  - 85грн/шт








    • By Pasivka
      Продам залишки :
      - пігтейли :
      LC/UPS 1.5 м 72шт  - 4 грн/шт
      SC/UPC 1.5м 72шт  - 4грн/шт
      - адаптер SC/UPC 150шт/100грн
      - FOB-04-16    2шт   - 100грн/шт
      - Crosver Fosc-MB-338/24-1-12-9SC 6шт                               - 85грн/шт
      - дільник 1/8  30шт  - 85грн/шт








    • By ssergiy
      Надаю послуги по розварюванню (сварці), зварюванню оптоволоконна, магістральних ВОЛЗ. Пошук пошкодження, втрати сигналу, вхідний контроль, контроль після прокладки та монтажу. При потребі виконаю виміри рефлектометром, оптичними тестерами.
      При потребі надам виконавчу документацію згідно КНД41-141-99.
      Досвід роботи по будівництву та монтажу ВОЛЗ, PON мережі.
      Ціна залежить від об'єму робіт.
      Можливий виїзд.
      т. 0959310003
    • By os8143385.com
      Продам OLT-и BDCOM у відмінному стані, у зв'язку з переходом на XPON.
      В наявності:
      BDCOM 3616-2TE - 1шт ( 1350 $ )
      BDCOM 3608-2TE - 1шт ( 650 $ )
      BDCOM 3608        - 1шт ( 500 $ )
      BDCOM 3310        - 3шт ( 300 $ )
      Курс 33 грн.
       



×
×
  • Create New...