Перейти до

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


Рекомендованные сообщения

Нет,я разобрался, перезалил файл где указываются базы и все пошло

но немного не привычно после понконтроля , залить бы базы ону

Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...
  • Відповіді 376
  • Створено
  • Остання відповідь

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

  • 4 months later...

Питання до розробника, будь ласка, будь ласка, додайте будь-ласка відображення PVID, коли вибираєш дерево відірвається список ону, так що б подивитися влан абонв потрібно обтурювати кожну.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

А если таблице pm_onu_pwr_history, столбцу pwr поставить тип данных float, то в истории сигналов будем видить не приблизительное значение типа "-26", а "-26.5". Также уйдет ошибка  UPDATE pm_onu_pwr_history SET stoptime=NOW() WHERE Id=50708; - Out of range value for column 'pwr' at row 1

Так как некоторые ону отдают не корректные данные сигнала, которые выходят за рейнж decimala, я его не стал редактировать, а сразу флоат поставил.

Відредаговано DropTable
Ссылка на сообщение
Поделиться на других сайтах

Если при нажатии кнопки  "FDB таблица" пишет что олт офлайн. Значит у вас уже олт с новой прошивой, там другой oid.

Можно не заморачиваться с oid и переключится на телнет метод в файлике vars.php

Но нужно еще поправить синтаксис  забора мака с олта, он немного не верный.

Идем в папку scripts и открываем файл  get_pon_FDB.php

Здесь находим строку

fwrite($con, "show mac a int $onu \r\n");

И меняем ее на

fwrite($con, "show mac address-table int $onu \r\n");

 

Сокращение это хорошо, но на "а" олт нам подсунит аж 3 команды на выбор, и тут скрипт уткнется.

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Доброго дня. Встановив систему. При опитуванні check_onu.php всіх олтів, не записує в базу історію сигналу. При опитуванні кожного по черзі пише історію, але знову таки не всім

Ссылка на сообщение
Поделиться на других сайтах
годину тому, Tarik89 сказав:

Доброго дня. Встановив систему. При опитуванні check_onu.php всіх олтів, не записує в базу історію сигналу. При опитуванні кожного по черзі пише історію, але знову таки не всім

Перевірте, що в логах - на якому місці проблема з опитуванням, чи які помилки при запису в базу.

Ссылка на сообщение
Поделиться на других сайтах

[Wed Jun 07 18:21:52.604592 2023] [php7:warn] [pid 5035] [client **.**.67.27:58899] PHP Warning: SNMP::get(): Error in packet at 'iso.3.6.1.4.1.3320.101.10.5.1.5.106': No Such Instance currently exists at this OID in /var/www/html/scripts/check_onu.php on line 149 [Wed Jun 07 18:21:52.714246 2023] [php7:warn] [pid 5035] [client **.**.67.27:58899] PHP Warning: SNMP::get(): Error in packet at 'iso.3.6.1.4.1.3320.101.10.5.1.5.111': No Such Instance currently exists at this OID in /var/www/html/scripts/check_onu.php on line 149
 

12 10.132.64.35 18:21:52 mac:16 18:21:52,  names:37 18:21:52,  powers:14 18:21:52
UPDATE pm_olt SET status=1, last_act='2023-06-07 18:21:52' WHERE Id=12;
UPDATE pm_onu SET present = 0 WHERE olt = 12;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('00:08:36:01:57:98', 12, 'EPON0/3:1', 1, 1, '-19,1', '2023-06-07 18:21:52', 3001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/3:1', present=1, status=1, pwr='-19,1', last_act='2023-06-07 18:21:52', order_id=3001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FB:87', 12, 'EPON0/8:1', 1, 1, '-24,5', '2023-06-07 18:21:52', 8001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:1', present=1, status=1, pwr='-24,5', last_act='2023-06-07 18:21:52', order_id=8001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:3E:4C:05', 12, 'EPON0/5:1', 1, 1, '-6,5', '2023-06-07 18:21:52', 5001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/5:1', present=1, status=1, pwr='-6,5', last_act='2023-06-07 18:21:52', order_id=5001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('B0:7C:06:12:3E:4A', 12, 'EPON0/7:1', 1, 1, '-12', '2023-06-07 18:21:52', 7001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/7:1', present=1, status=1, pwr='-12', last_act='2023-06-07 18:21:52', order_id=7001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:F0:38:77', 12, 'EPON0/7:2', 1, 1, '-5,9', '2023-06-07 18:21:52', 7002) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/7:2', present=1, status=1, pwr='-5,9', last_act='2023-06-07 18:21:52', order_id=7002;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('70:A5:6A:01:3F:F0', 12, 'EPON0/6:1', 1, 1, '-6', '2023-06-07 18:21:52', 6001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/6:1', present=1, status=1, pwr='-6', last_act='2023-06-07 18:21:52', order_id=6001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:15:BB:3A', 12, 'EPON0/3:2', 1, 1, '-14', '2023-06-07 18:21:52', 3002) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/3:2', present=1, status=1, pwr='-14', last_act='2023-06-07 18:21:52', order_id=3002;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FE:FD', 12, 'EPON0/8:2', 1, 1, '-31,5', '2023-06-07 18:21:52', 8002) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:2', present=1, status=1, pwr='-31,5', last_act='2023-06-07 18:21:52', order_id=8002;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FF:5F', 12, 'EPON0/6:2', 1, 1, '-7,4', '2023-06-07 18:21:52', 6002) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/6:2', present=1, status=1, pwr='-7,4', last_act='2023-06-07 18:21:52', order_id=6002;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, order_id) VALUES ('E0:E8:E6:FF:C5:9F', 12, 'EPON0/8:3', 1, 0, 8003) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:3', present=1, status=0, order_id=8003;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FB:95', 12, 'EPON0/3:3', 1, 1, '-11,7', '2023-06-07 18:21:52', 3003) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/3:3', present=1, status=1, pwr='-11,7', last_act='2023-06-07 18:21:52', order_id=3003;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FB:77', 12, 'EPON0/3:4', 1, 1, '-12,5', '2023-06-07 18:21:52', 3004) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/3:4', present=1, status=1, pwr='-12,5', last_act='2023-06-07 18:21:52', order_id=3004;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('70:A5:6A:B6:7D:72', 12, 'EPON0/8:4', 1, 1, '-16,1', '2023-06-07 18:21:52', 8004) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:4', present=1, status=1, pwr='-16,1', last_act='2023-06-07 18:21:52', order_id=8004;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('E0:E8:E6:B4:FB:93', 12, 'EPON0/8:5', 1, 1, '-24,5', '2023-06-07 18:21:52', 8005) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:5', present=1, status=1, pwr='-24,5', last_act='2023-06-07 18:21:52', order_id=8005;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, order_id) VALUES ('E0:E8:E6:3E:D4:03', 12, 'EPON0/4:1', 1, 0, 4001) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/4:1', present=1, status=0, order_id=4001;
INSERT INTO pm_onu (mac, olt, onu_name, present, status, pwr, last_act, order_id) VALUES ('80:07:1B:8B:0F:78', 12, 'EPON0/8:6', 1, 1, '-25,5', '2023-06-07 18:21:52', 8006) ON DUPLICATE KEY UPDATE olt=12, onu_name='EPON0/8:6', present=1, status=1, pwr='-25,5', last_act='2023-06-07 18:21:52', order_id=8006;
UPDATE pm_olt_sfp SET count_onu = 0, online_count=0 WHERE olt=12;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/3', 4, 4) ON DUPLICATE KEY UPDATE count_onu=4, online_count=4;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/8', 6, 5) ON DUPLICATE KEY UPDATE count_onu=6, online_count=5;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/5', 1, 1) ON DUPLICATE KEY UPDATE count_onu=1, online_count=1;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/7', 2, 2) ON DUPLICATE KEY UPDATE count_onu=2, online_count=2;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/6', 2, 2) ON DUPLICATE KEY UPDATE count_onu=2, online_count=2;
INSERT INTO pm_olt_sfp (olt, sfp, count_onu, online_count) VALUES (12, 'EPON0/4', 1, 0) ON DUPLICATE KEY UPDATE count_onu=1, online_count=0;

Це вивід файлу який запустив в браузері. 
Я так розумію там проблема в самому файлі check_onu Там я знайшов ONU pwr history, і там по формулі вибирає онушки які були записані з значенням NULL, а тоді перезаписує їх з новими датами та часом.
Чи можливо якось зробити щоб скрипт не робив перевірку, а просто дописував мак онушки і дату опитування її?

Ссылка на сообщение
Поделиться на других сайтах
37 минут назад, Tarik89 сказав:

Це вивід файлу який запустив в браузері. 

але це лог опитування лише одного ОЛТ, яке нормально пройшло.
 

 

38 минут назад, Tarik89 сказав:

Я так розумію там проблема в самому файлі check_onu Там я знайшов ONU pwr history, і там по формулі вибирає онушки які були записані з значенням NULL, а тоді перезаписує їх з новими датами та часом.

це формується історія сигналів

 

39 минут назад, Tarik89 сказав:

Чи можливо якось зробити щоб скрипт не робив перевірку, а просто дописував мак онушки і дату опитування її?

можливо, тільки тоді не буде історії, тільки поточний рівень.

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, VitalyMoiseev сказал:

але це лог опитування лише одного ОЛТ, яке нормально пройшло.

Так, це по одному олту поки пробував, тестував.

Провів тест за ніч. Поставив в крон декілька олтів тим же методом, по одному олту в різний час, щоб не було сильного навантаження. І за всю ніч історії сигналів по деяких онушках так і не записалось.

16 часов назад, VitalyMoiseev сказал:

можливо, тільки тоді не буде історії, тільки поточний рівень.

Наподобі як в понконтролі?
17:32 сигнал -19
18:00 сигнал -19,5
...
20:00 сигнал -20

Мені б таке підійшло

Ссылка на сообщение
Поделиться на других сайтах
36 минут назад, Tarik89 сказав:

Провів тест за ніч. Поставив в крон декілька олтів тим же методом, по одному олту в різний час, щоб не було сильного навантаження. І за всю ніч історії сигналів по деяких онушках так і не записалось.

Покажіть скрін історії сигналів по цим ОНУ.
Записується в базу тільки при зміні рівня на 0,2 дБ чи більше. Якшо рівень не мінявся - то нічого і не писалось.

 

38 минут назад, Tarik89 сказав:

Наподобі як в понконтролі?
17:32 сигнал -19
18:00 сигнал -19,5
...
20:00 сигнал -20

Мені б таке підійшло

І коли ви матимете 10-20 ОЛТ з повним набором ОНУ - то база з їх історією буде рости просто як на дріжжях :)

Ссылка на сообщение
Поделиться на других сайтах

Завантажити: pm_v1.5.1.zip

Версія 1.5.1 від 08.06.2023

1.5.1 08.06.2023: Усунено виявлену проблему з SQL Injection, оновлено файл auth_user.php

  • Thanks 1
Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, VitalyMoiseev сказал:

Записується в базу тільки при зміні рівня на 0,2 дБ чи більше. Якшо рівень не мінявся - то нічого і не писалось.

О, оце вже цікаво. Цього не знав, але думка така була, що може сигнал не мінявся. Понаблюдаю за цим

Зайшов вечором , і сигнали вже з'явились. Сигнал пишеться при зміні в 0,1дб

Дивно що в день в історії їх не було

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, Tarik89 сказав:

Сигнал пишеться при зміні в 0,1дб

точно, глянув - пишеться при будь-якій зміні
То просто у нас в робочий системі для зменшення обсягу бази пишеться тільки при зміні більше, чим на 0,2

Ссылка на сообщение
Поделиться на других сайтах
  • 5 months later...

Якщо раптом комусь цікаво - є можливість додати інтеграцію з VictoriaMetrics(Prometheus)/Grafana

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

image.thumb.png.41ecf2be8b531629909eecbd6c260375.png

 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, VitalyMoiseev сказав:

Якщо раптом комусь цікаво - є можливість додати інтеграцію з VictoriaMetrics(Prometheus)/Grafana

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

image.thumb.png.41ecf2be8b531629909eecbd6c260375.png

 

у мене було реалізовано з zabbix просто картинку парсило)) там і швидкість можна виводити з забіксу і історію сигналів)

Ссылка на сообщение
Поделиться на других сайтах
21 час назад, Інет.укр сказав:

у мене було реалізовано з zabbix просто картинку парсило)) там і швидкість можна виводити з забіксу і історію сигналів)

Ну, картинка - це не те :)
Тут живий дашборд з графани, з усіма функціями
Трафік також є:

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

image.thumb.png.92f583a797c241647147d4fe0a8f29dd.png

Плюс тут Pon Monitor є і експортером для VictoriaMetrics

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
  • 6 months later...
В 22.11.2023 в 19:27, VitalyMoiseev сказав:

Якщо раптом комусь цікаво - є можливість додати інтеграцію з VictoriaMetrics(Prometheus)/Grafana

  Відновити прихований контент

image.thumb.png.41ecf2be8b531629909eecbd6c260375.png

 

Цікаво викладіть будь ласка)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...
В 09.06.2023 в 13:56, VitalyMoiseev сказал:

точно, глянув - пишеться при будь-якій зміні
То просто у нас в робочий системі для зменшення обсягу бази пишеться тільки при зміні більше, чим на 0,2

 

Віталій, підкажіть де в скриптах можна змінити, щоб сигнал писався постійно, навіть якщо сигнал не міняється.

Ссылка на сообщение
Поделиться на других сайтах
В 18.07.2024 в 19:20, romanset сказав:

Цікаво викладіть будь ласка)

Можу викласти тільки частину коду з приватної системи (частина якої і є пон монітор), якщо хтось захоче це додати в Pon Monitor
https://github.com/VitalyMoiseev/ponmonitor/tree/master/grafana
 

 

6 часов назад, Небесный сказав:

Віталій, підкажіть де в скриптах можна змінити, щоб сигнал писався постійно, навіть якщо сигнал не міняється.

в файлі /scripts/check_onu.php замінити:
 

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

####### ONU pwr history

# read last powers
    $table = $tbl_pref.'onu_pwr_history';
    $query = "SELECT * FROM $table WHERE stoptime IS NULL";
    if (!$result = $mysqli_wb->query($query)){
        $file_log = $mysqli_wb->error."\n";
        echo $file_log;
        file_put_contents($log_file, $file_log, FILE_APPEND);
        exit();
    }
    $query = "DELETE FROM $table WHERE stoptime < (NOW() - INTERVAL $PwrHistTerm);";
    if($result->num_rows == 0 ){
        foreach ($pwrs_macs as $mac => $pwr) {
            $pwr = str_replace(",", ".", $pwr);
            $query .= "INSERT INTO $table (mac, pwr, starttime) VALUES ('$mac', $pwr, NOW());\n";
        }
    }else{
        while( $row = $result->fetch_array(MYSQLI_ASSOC) ){
            $pwr_old[$row['mac']] = floatval($row['pwr']);
            $hist_ids[$row['mac']] = $row['Id'];
        }
        foreach ($pwrs_macs as $mac => $pwr) {
            if (array_key_exists($mac, $pwr_old)){
                $pwr = $pwr + 0;
                if($pwr_old[$mac] != $pwr){
                    $h_id = $hist_ids[$mac];
                    $pwr = str_replace(",", ".", $pwr);
                    $query .= "UPDATE $table SET stoptime=NOW() WHERE Id=$h_id;\n";
                    $query .= "INSERT INTO $table (mac, pwr, starttime) VALUES ('$mac', $pwr, NOW());\n";
                }
            }else{
                $pwr = str_replace(",", ".", $pwr);
                $query .= "INSERT INTO $table (mac, pwr, starttime) VALUES ('$mac', $pwr, NOW());\n";
            }
        }
    }

 

на
 

####### ONU pwr history

    $query = "DELETE FROM $table WHERE stoptime < (NOW() - INTERVAL $PwrHistTerm);";
        foreach ($pwrs_macs as $mac => $pwr) {
            $pwr = str_replace(",", ".", $pwr);
            $query .= "INSERT INTO $table (mac, pwr, starttime, stoptime) VALUES ('$mac', $pwr, NOW(), NOW());\n";
        }

(код не перевірений)

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

У вільний час трохи оновлюю. Додано підтримку GPON BDCOM. Версія ще тестова, працює частково.

 

https://github.com/VitalyMoiseev/ponmonitor/tree/v2_GPON

 

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

image.thumb.png.547a11dc79487542c7fabb8447d21793.png

 

Якщо комусь це ще потрібно чи цікаво - можна ще щось додати або змінити

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
  • 3 weeks later...

Установил версию 2 ,  есть ошибки:

Ругается на отсутствующую таблицу :
pon_error.thumb.png.94748393aeb774a7690ea2e79c1f59b4.png

 

Закоменировал строки в check_onu.php , появилась другая ошибка :
pon_error1.thumb.png.842f8ca1a199c6a05931b924ad38dba2.png

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент


×
×
  • Створити нове...