Jump to content
Local
VitalyMoiseev

Pon Monitor - система мониторинга PON

Recommended Posts

В 29.08.2019 в 13:35, VitalyMoiseev сказал:

есть такая проблема - номер СФП одной цифрой выбирается. Надо немного переделать логику скрипта опроса. Постараюсь до завтра сделать новую версию без этой проблемы.

        // получить индексы ePON портов
        public static function get_epon_tree_info() {
            //http://www.circitor.fr/Mibs/Html/N/NMS-EPON-OLT-PON.php#NMSEponOltPonEntry
            $ponIfIndex = ".1.3.6.1.4.1.3320.101.6.1.1";
            if( false === ( $snmp_reply = self::snmpQueryAll($ponIfIndex) ) ) { return false; }
            $re_arr=array();
            foreach($snmp_reply as $snmp_key => $value ) {
                $function = self::subtok($snmp_key,".",-2,1);
                $ifIndex = self::subtok($snmp_key,".",-1);
                switch($function) {
                    case "1":  $function = "ponIfIndex"; break;
                    case "2":  $function = "llidSequenceNo"; break; // последовательность зареганых ОНУ
                    case "3":  $function = "onuAuthMethod"; break;   // none(0), manual(1), mac(3), loid(4), hybrid(6)
                    case "4":  $function = "isCheckOnuMac"; break;  //yes(1), no(2)
                    case "5":  $function = "isPONBelongtoPSG"; break; //alone-pon(0), b-psg(1), active-pon(2), standby-pon(3), c-psg(4)
                    case "6":  $function = "pONBelongtoPSGID"; break; //
                    case "7":  $function = "isUsingMpcpRegisteAckDelayTime"; break;  //yes(1), no(2)
                    case "8":  $function = "mpcpRegisteAckDelayTime"; break;  //1..50
                    case "9":  $function = "ponIfAdminStatus"; break;  //up(1), down(2)
                    case "10":  $function = "ponIfInFecStatus"; break; //on(1), off(2)
                    case "11":  $function = "ponIfOutFecStatus"; break;  //on(1), off(2)
                    case "12":  $function = "ponIfLaserStatus"; break;  //on(1), off(2)
                    case "13":  $function = "isOnuDataSwitch"; break;   //on(1), off(2)
                    case "14":  $function = "ponIfProtectedStatus"; break; //on(1), off(2)
                    case "15":  $function = "ponIfDynamicMacLearningStatus"; break; // on(1), off(2)
                    case "16":  $function = "ponIfMacACL"; break;
                    case "17":  $function = "ponIfIpACL"; break;
                    case "18":  $function = "fiberProtectHandInHand"; break;
                    case "19":  $function = "fiberProtectGroup"; break;
                    case "20":  $function = "splittingRatio"; break;            // Макс деление на дереве
                    case "21":  $function = "activeOnuNum"; break;              // кативных ону
                    case "22":  $function = "inactiveOnuNum"; break;            // неактивных ону
                    case "23":  $function = "llidIfindexString"; break;
                    default :  break;
                }
                $re_arr[$ifIndex][$function]=$value;
            }
            return($re_arr);
        }

        public static function get_epon_optics_alarm_info() {
            //http://www.circitor.fr/Mibs/Html/N/NMS-EPON-OLT-PON.php#NMSEponOltPonEntry
            $ponIfIndex = ".1.3.6.1.4.1.3320.101.6.2.1";
            if( false === ( $snmp_reply = self::snmpQueryAll($ponIfIndex) ) ) { return false; }
            $re_arr=array();
            foreach($snmp_reply as $snmp_key => $value ) {
                $function = self::subtok($snmp_key,".",-2,1);
                $ifIndex = self::subtok($snmp_key,".",-1);
                switch($function) {
                    case "1":   $function = "ifIndex"; break;
                    case "2":   $function = "txPowerAlarmUpLimitEnable"; break;
                    case "3":   $function = "txPowerAlarmUpLimitThreshold"; break;
                    case "4":   $function = "txPowerAlarmUpLimitClearThreshold"; break;
                    case "5":   $function = "txPowerAlarmLowLimitEnable"; break;
                    case "6":   $function = "txPowerAlarmLowLimitThreshold"; break;
                    case "7":   $function = "txPowerAlarmLowLimitClearThreshold"; break;
                    case "8":   $function = "temperatureAlarmUpLimitEnable"; break;
                    case "9":   $function = "temperatureAlarmUpLimitThreshold"; break;
                    case "10":  $function = "temperatureAlarmUpLimitClearThreshold"; break;
                    case "11":  $function = "temperatureAlarmLowLimitEnable"; break;
                    case "12":  $function = "temperatureAlarmLowLimitThreshold"; break;
                    case "13":  $function = "temperatureAlarmLowLimitClearThreshold"; break;
                    case "14":  $function = "voltageAlarmUpLimitEnable"; break;
                    case "15":  $function = "voltageAlarmUpLimitThreshold"; break;
                    case "16":  $function = "voltageAlarmUpLimitClearThreshold"; break;
                    case "17":  $function = "voltageAlarmLowLimitEnable"; break;
                    case "18":  $function = "voltageAlarmLowLimitThreshold"; break;
                    case "19":  $function = "voltageAlarmLowLimitClearThreshold"; break;
                    case "20":  $function = "currentAlarmUpLimitEnable"; break;
                    case "21":  $function = "currentAlarmUpLimitThreshold"; break;
                    case "22":  $function = "currentAlarmUpLimitClearThreshold"; break;
                    case "23":  $function = "currentAlarmLowLimitEnable"; break;
                    case "24":  $function = "currentAlarmLowLimitThreshold"; break;
                    case "25":  $function = "currentAlarmLowLimitClearThreshold"; break;
                    default :  break;

                }
                $re_arr[$ifIndex][$function]=$value;
            }
            return($re_arr);
        }

        protected static function subtok($string, $chr, $pos, $len = NULL) {
            return implode($chr,array_slice(explode($chr,$string), $pos, $len));
        }

        protected static function subtok2($string, $chr, $pos, $len = NULL) {
                $str="";
                foreach( array_slice(explode($chr,$string), $pos, $len) as $char)
                    $str .= chr($char);
                return $str;
        }

в помощь

 

1567237864433.thumb.png.1d9b142a07a597218e46b858134614bf.png

Edited by pashaumka
  • Thanks 1

Share this post


Link to post
Share on other sites

Спасибо за ОИДы :)

Данных то с ОЛТ можно получить много, но какие из них реально нужны в повседневной работе?

И какие функции еще нужны?

Share this post


Link to post
Share on other sites

Было бы нелишним добавить кнопку перезагрузки onu, как в пон контроле 👍

Share this post


Link to post
Share on other sites
46 минут назад, shad-krog сказал:

Было бы нелишним добавить кнопку перезагрузки onu, как в пон контроле 👍

А зачем их перегружать? Перегружается все абоном вручную на этапе звонка в ТП. 

Share this post


Link to post
Share on other sites
2 часа назад, superb сказал:

А зачем их перегружать? Перегружается все абоном вручную на этапе звонка в ТП. 

Некоторые индивидуумы не могут различить маршрутизатор и пон терминал 

Share this post


Link to post
Share on other sites
21 час назад, VitalyMoiseev сказал:

Спасибо за ОИДы :)

Данных то с ОЛТ можно получить много, но какие из них реально нужны в повседневной работе?

И какие функции еще нужны?

Изменять VLAN. Ну и вывод влан при опросе.

Share this post


Link to post
Share on other sites

"офтопну" - ну почему под ZTE 220 никто ничего не предлагает?!

Share this post


Link to post
Share on other sites
13 часов назад, a_n_h сказал:

"офтопну" - ну почему под ZTE 220 никто ничего не предлагает?!

именно под него ЕСТЬ мануал с описанием и оидами?

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

Edited by pashaumka

Share this post


Link to post
Share on other sites

Версия 1.1 - исправление ошибок, многоязычный интерфейс (русский и украинский в комплекте)

 

19 часов назад, a_n_h сказал:

ну почему под ZTE 220 никто ничего не предлагает?!

давайте OIDы с описанием - сделаем.

(Ну, или оплатите работу по их поиску и разбору) :)

  • Thanks 1

Share this post


Link to post
Share on other sites

1.1.1 02.09.2019: Способ получения FDB таблицы изменен с telnet на SNMP (если не работает - изменить $FDB_method)

Share this post


Link to post
Share on other sites

Подскажите, что это плз!

Пользователя получилось добавить, значит связь с БД есть.

Warning: mysqli::close(): Couldn't fetch mysqli in C:\wamp64\www\pm\index.php on line 89

 

[03-Sep-2019 13:40:42 UTC] PHP Stack trace:

[03-Sep-2019 13:40:42 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[03-Sep-2019 13:40:42 UTC] PHP 2. mysqli->close() C:\wamp64\www\pm\index.php:89

[03-Sep-2019 13:41:13 UTC] PHP Notice: Undefined offset: 2 in C:\wamp64\www\pm\index.php on line 58

[03-Sep-2019 13:41:13 UTC] PHP Stack trace:

[03-Sep-2019 13:41:13 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[03-Sep-2019 13:41:13 UTC] PHP Warning: mysqli::close(): Couldn't fetch mysqli in C:\wamp64\www\pm\index.php on line 89

[03-Sep-2019 13:41:13 UTC] PHP Stack trace:

[03-Sep-2019 13:41:13 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[03-Sep-2019 13:41:13 UTC] PHP 2. mysqli->close() C:\wamp64\www\pm\index.php:89

Edited by trsnah

Share this post


Link to post
Share on other sites

похоже на попытку закрыть уже ранее закрытое соединение с БД.

Как вариант - просто закомментировать 89 строку в C:\wamp64\www\pm\index.php

  • Like 1

Share this post


Link to post
Share on other sites

изменение влана на онушке реально бы пригодилось

Share this post


Link to post
Share on other sites
25 минут назад, 911 сказал:

изменение влана на онушке реально бы пригодилось

сделаем, думаю завтра-послезавтра.

Пока будет только для однопортовых ОНУ, чуть позже прикручу и поддержку многопортовых. Уже бы прикрутил, но нет под рукой ни одной такой :(

по поводу изменения влана: как лучше сделать - просто ввод призвольного номера или выбор из вланов, прописанных на ОЛТ?

Share this post


Link to post
Share on other sites
1 час назад, VitalyMoiseev сказал:

как лучше сделать - просто ввод призвольного номера или выбор из вланов, прописанных на ОЛТ?

наверное, выбор из вланов, прописанных на данном EPON порту

Share this post


Link to post
Share on other sites

1.1.2 04.09.2019
+ Добавлен функционал изменения PVID. Список доступных PVID берется из конфига соответствующего EPON порта
+ Добавлена инструкция по обновлению (см. папка upgrade)

скрины:

Скрытый текст

905300985_2019-09-04034301.thumb.png.092e7503c6e08f9c98ef18f741f4db2d.png

 

518194894_2019-09-04034346.thumb.png.9fa88cdee4cb5a331906501e67e5e92c.png

 

1402670700_2019-09-04034356.thumb.png.f608cb4cd6d9ceecf2bc57a4efebb9fe.png

 

1963910256_2019-09-04034402.thumb.png.7087f129269a0fa44ef4a141d2d7b4b4.png

 

Пока без перевода, надписи на английском :)

Edited by VitalyMoiseev

Share this post


Link to post
Share on other sites
21 минуту назад, VitalyMoiseev сказал:

Поддержка многопортовых ОНУ

  Скрыть содержимое

image.thumb.png.e8a865a38c4c0dbb2fda26186e841eb8.png

 

)))))))))))))

 

Share this post


Link to post
Share on other sites
10 часов назад, VitalyMoiseev сказал:

1.1.2 04.09.2019
+ Добавлен функционал изменения PVID. Список доступных PVID берется из конфига соответствующего EPON порта
+ Добавлена инструкция по обновлению (см. папка upgrade)

скрины:

  Показать содержимое

905300985_2019-09-04034301.thumb.png.092e7503c6e08f9c98ef18f741f4db2d.png

 

518194894_2019-09-04034346.thumb.png.9fa88cdee4cb5a331906501e67e5e92c.png

 

1402670700_2019-09-04034356.thumb.png.f608cb4cd6d9ceecf2bc57a4efebb9fe.png

 

1963910256_2019-09-04034402.thumb.png.7087f129269a0fa44ef4a141d2d7b4b4.png

 

Пока без перевода, надписи на английском :)

Ссылки для скачивания кривые - https://pm.vm.net.ua/install/pm_v1,1,2.zip

Замените "pm_v1,1,2.zip" на "pm_v1.1.2.zip"

Share this post


Link to post
Share on other sites
3 минуты назад, nik247 сказал:

Ссылки для скачивания кривые

Не совсем, некоторые браузеры скачивают )

Share this post


Link to post
Share on other sites

Не пойму, почему только у меня проблемы... Я кроме как в vars.php ничего не менял.

ОЛТ в БД не добавляется, хотя все проверки проходит snmp & telnet.

Не может же быть проблема ошибок, в том что у меня GP3600 (

[04-Sep-2019 13:41:41 UTC] PHP Stack trace:

[04-Sep-2019 13:41:41 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[04-Sep-2019 13:41:47 UTC] PHP Notice: Undefined offset: 2 in C:\wamp64\www\pm\index.php on line 58

[04-Sep-2019 13:41:47 UTC] PHP Stack trace:

[04-Sep-2019 13:41:47 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[04-Sep-2019 13:41:47 UTC] PHP Notice: Undefined index: UAcc in C:\wamp64\www\pm\include\settings.php on line 3

[04-Sep-2019 13:41:47 UTC] PHP Stack trace:

[04-Sep-2019 13:41:47 UTC] PHP 1. {main}() C:\wamp64\www\pm\index.php:0

[04-Sep-2019 13:41:47 UTC] PHP 2. include() C:\wamp64\www\pm\index.php:69

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

×