Jump to content

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


Recommended Posts

  • Replies 376
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Вот решил выдать, кому интересно, собстветнную систему мониторинга PON сети - Pon Monitor. Сделана по аналогии с Poncontrol, но делалась по потребностям инженеров и монтажников.   Возмо

Вот Pon Monitor под BDCOM GP3600-16 Берите кому нужно. Переделка не профессиональная, поэтому берите как есть Pon Monitor.rar

проект живой. Продвигается медленно, так как нет на него пока времени

Posted Images

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

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

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

Сделать отдельную таблицу, которая ведет статистику маков и айпи на ОНУшке. Вывод онушек, где мак слишком часто меняется. Например, хотим найти онушки, где за онушкой записей маков больше 3 или 5 или 10.

Link to post
Share on other sites
35 минут назад, Небесный сказав:

Сделать отдельную таблицу, которая ведет статистику маков и айпи на ОНУшке.

ну, можно снимать ФДБ таблицу с ОЛТ, хранить ее и потом анализировать.

Но таблицу IP??? У нас же монитори ПОН - т.е. L2 свитча, какие IP???

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

ну, можно снимать ФДБ таблицу с ОЛТ, хранить ее и потом анализировать.

Но таблицу IP??? У нас же монитори ПОН - т.е. L2 свитча, какие IP???

Ой, да - туплю. Но, все равно - было бы даже круто и с маками такое сделать.

Edited by Небесный
Link to post
Share on other sites
21 час назад, VitalyMoiseev сказал:

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

Будет ли поддерка не BDCOM оборудования ? V Solution например.

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

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее). 

Может еще какие идеи будут?

 

Ловить трапы... парсить и оповещать )  + писать все неймспейсами\классами

 

 

Edited by pashaumka
Link to post
Share on other sites

Еще вопрос такой, при удалении ОЛТа со списка, база онушек очищается?

Есть одна маленькая неприятность, перенес всю ветку с одного ОЛТ на другой. Удалил на ОЛТе онушки, а базе онушки остались с привязкой до старого ОЛТа и его порта. Тоесть, я так понимаю нету web-механизма очистки ветки от онушек. Только лезть в базу и ручками там чистить?

Edited by Небесный
Link to post
Share on other sites
6 часов назад, Небесный сказав:

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

ничего чистить не надо. Как только ОНУшка появится на каком-то ОЛТ - она появится в списке уже на новом ОЛТ.

18 часов назад, pashaumka сказав:

Ловить трапы... парсить и оповещать

это врядли. Принимать SNMP трапы - это, здается мне, не для пхп задача.

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

+ писать все неймспейсами\классами

это уж как получится. я ж не программист :)

Link to post
Share on other sites

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

  • Like 1
Link to post
Share on other sites
5 часов назад, romanset сказав:

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

будет список ОНУ, не зарегистрированных ни на одном ОЛТ - в него попадают ОНУ, которых нет на ОЛТ. Точнее - это уже есть

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

image.thumb.png.ebaf0754ef7f02a68dc89460aea10ca1.png

А уже из этого списка можно уже полностью удалить ОНУ и историю ее уровней

В 05.05.2020 в 7:41 PM, FedMast сказав:

Будет ли поддерка не BDCOM оборудования ? V Solution например.

будет "модульная" архитектура, с разными модулями опроса (даже для БДКОМа уже есть несколько вариантов опроса по снмп/телнет), тогда будет намного проще добавить другое оборудование.

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

будет список ОНУ, не зарегистрированных ни на одном ОЛТ - в него попадают ОНУ, которых нет на ОЛТ. Точнее - это уже есть

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

image.thumb.png.ebaf0754ef7f02a68dc89460aea10ca1.png

А уже из этого списка можно уже полностью удалить ОНУ и историю ее уровней

будет "модульная" архитектура, с разными модулями опроса (даже для БДКОМа уже есть несколько вариантов опроса по снмп/телнет), тогда будет намного проще добавить другое оборудование.

namespace как раз это и дает.

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

namespace как раз это и дает.

да? Ну и как namespase поможет в случае, когда, к примеру, на P3608B в принципе отсутствует ОИД, по которому на Р3310B/C получалась FDB таблица с ОНУ? :)

Link to post
Share on other sites

когда вы начинаете писать "модулями", вы поймете.))))  

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

 

Эти....


3310B
root@billing:/home/umka# snmpwalk -v2c -cpublic -Cc -On 10.ч.ч.ч .1.3.6.1.4.1.3320.152.1.1.3.36
.1.3.6.1.4.1.3320.152.1.1.3.36.375.128.20.168.124.79.88 = Hex-STRING: 80 14 A8 7C 4F 58 
.1.3.6.1.4.1.3320.152.1.1.3.36.300.124.139.202.133.248.81 = Hex-STRING: 7C 8B CA 85 F8 51 

3608
root@billing:/home/umka# snmpwalk -v2c -cpublic -Cc -On 10.с.с.с .1.3.6.1.4.1.3320.152.1.1.3.36
.1.3.6.1.4.1.3320.152.1.1.3.36.301.164.43.176.250.225.71 = Hex-STRING: A4 2B B0 FA E1 47 
root@billing:/home/umka# 

 

нате!

<?php
namespace devices\switches\vendors\BDCOM;

// .3320.152.1.1.1.ifindex   .vlan.m.a.c.a.d.r = ifIndex        ifFdbReadByPortIndex 
// .3320.152.1.1.2.ifIndex   .vlan.m.a.c.a.d.r = vlan           ifFdbReadByPortVlanID
// .3320.152.1.1.3.ifIndex   .vlan.m.a.c.a.d.r = mac            ifFdbReadByPortMacAddress

class Fdb extends \devices\switches\Fdb  {

        function __construct() {
                //echo "BDCOM Fdb\n";
                // Subclasses initialization
        }

        protected static function parse_fdb_array($ifIndex,$onu_fdb_reply) {
                $mac_count = 0;
                if( count($onu_fdb_reply) == 0 ) return false;
                self::$db_mem_ports_states -> clear_fdb_iface($ifIndex);
                foreach ($onu_fdb_reply as $key => $MacAddress_val){
                        $index = explode('.', $key);
                        $vlan_id=$index[0];
                        $mac=sprintf("%02x:%02x:%02x:%02x:%02x:%02x", $index[1],$index[2],$index[3],$index[4],$index[5],$index[6]);
                        self::$db_mem_ports_states->insert_fdb_entry( $ifIndex, $mac, $vlan_id);
                        $mac_count++;
                }
                return ($mac_count);
        }

        public static function get_epon_fdb_table($__ifIndex) {
                // опрашиваем "ветку дерева"
                // FDB at onu
                // оочень тяжелый запрос!!!!
                self::setTimeout(5);
                self::setRetries(1);
                if( false === ( $onu_fdb_reply = self::snmpQueryAll( ".1.3.6.1.4.1.3320.152.1.1.3.".$__ifIndex, "", -7 ) ) ) {
                    echo "bdcom\fdb::get_epon_fdb_table() :: false<br>\n";
                    return false; 
                }
                return ( self::parse_fdb_array($__ifIndex, $onu_fdb_reply) ); // вернет кол-во маков, найденных на интерфейсе головы 
        }
...
}


Кстати...

<?php

namespace devices\switches\vendors\BDCOM\M_P3600;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo "hello from BDCOM|P3608|Fdb<br>\n";
                // Subclasses initialization
        }
} // class


<?php

namespace devices\switches\vendors\BDCOM\M_P3310B;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo ", Fdb\n";
                // Subclasses initialization
        }

} // class




пустышки......

 

 

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

Эти работают на P3608, но не работают на P3608B :)

если не влом - дайте к голове доступ... поищу.. snmp достаточно

Edited by pashaumka
Link to post
Share on other sites
Только что, pashaumka сказав:

если не влом - дайте к голове доступ... поищу..

Как говорил классик: "Все уже украдено найдено до вас!" (с)

 

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

Как говорил классик: "Все уже украдено найдено до вас!" (с)

 

появится такая возможность "потискать " железку - допишу )

 

Link to post
Share on other sites
13 минут назад, pashaumka сказав:

появится такая возможность "потискать " железку - допишу )

Этот метод работает и на P3310C, но не работает на P3310B.

подозреваю, что и на старых версиях 3600 серии тоже работать не будет.

ЗЫ: железка, к стати, интересная.

Link to post
Share on other sites
<?php 

namespace devices\switches\vendors\BDCOM\M_P3608B;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo "hello from BDCOM|P3608B|Fdb<br>\n";
                // Subclasses initialization
        }
         
         
        public static function get_epon_fdb_table($__ifIndex) {
            if( false === ( $fdb_req = self::snmpWrite(".1.3.6.1.4.1.3320.101.9.2.1.0","i",$__ifIndex) ) ) return false;
            // опрашиваем "ветку дерева"
            // FDB at onu
            // оочень тяжелый запрос, ожидаем до 180 секунд
            self::setTimeout(5);
            self::setRetries(1);
            if( false === ( $raw_onu_fdb_reply = self::snmpQueryAll( ".1.3.6.1.4.1.3320.101.9.2.3.1","",-2) ) ) {
                echo "bdcom\fdb::get_epon_fdb_table() :: false<br>\n";
                return false; 
            }
            $onu_fdb_entry=array();
            $cache = array();
            $strings = \common\strings::getInstance();
            foreach($raw_onu_fdb_reply as $key => $value ) {
                $index = explode('.', $key);
                $func_id=$index[0];
                $rec_index=$index[1];
                switch($func_id) {   
                    case "1": continue; break;
                    case "2": $cache[$rec_index] = $value; break;
                    case "3": 
                        $_value = $strings->is_mac_addr(substr(bin2hex($value),0,12));
                        $onu_fdb_entry[$cache[$rec_index]][$_value]="YES";   // оставшемуся парсеру отдать [vlan][m:a:c:a:d:r]="что нибуть" 
                    break;
                    default: break;
                }
            }
            return ( self::parse_fdb_array($__ifIndex, $onu_fdb_reply) ); // вернет кол-во маков, найденных на интерфейсе головы или онушки
        }
}

 

Edited by pashaumka
  • Like 1
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

×
×
  • Create New...