Перейти к содержимому
Калькуляторы

Опыт использования и допилки LibreNMS

Коллеги, сейчас опять хочу вернуться к этому чудо софту http://0x1.tv/20150626F , поделитесь опытом использования и допилки LibreNMS

Поделиться сообщением


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

Я недавно изучал эту штуку - из коробки много что работает, но если надо что-то добавить чего нету, то это геморр.

 

Железяку (например коммутатор Eltex) со стандартными метриками ещё можно добавить, через создание описания /opt/librenms/includes/definitions/eltex.yaml

 

А чего-то новое, типа отображения на отдельной закладке ONT портов для gpon-терминала Eltex LTP, я сделал, но провозился неделю. По факту - это программирование на php.

 

Потом мне попались на глаза графики "Interface Non Unicast" и я увидел что они не правильные. Написал разрабам, они проигнорили. Теперь не планирую особо использовать LibreNMS.

 

В общем - ознакомился с продуктом.

 

P.S. Жалко, конечно, т.к. от интерфейса Zabbix'а меня тошнит - помойка метрик.

Поделиться сообщением


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

3 hours ago, Urs_ak said:

 

Потом мне попались на глаза графики "Interface Non Unicast" и я увидел что они не правильные. Написал разрабам, они проигнорили. Теперь не планирую особо использовать LibreNMS.

Ты им завели issue на github ?

 

3 hours ago, Urs_ak said:

А чего-то новое, типа отображения на отдельной закладке ONT портов для gpon-терминала Eltex LTP, я сделал, но провозился неделю. По факту - это программирование на php.

А можешь пояснить как или поделиться ?

Поделиться сообщением


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

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

А можешь пояснить как или поделиться ?

Я могу пояснить суть (на примере gpon-терминала Eltex LTP-4X), только без деталей, т.к. я охладел к LibreNMS на год-два точно

 

Но есть ли в этом смысл, если это добавление довольно муторно делается?

 

Из моих записей:

 

1. Добавить узнавание модели LTP-4X

 

librenms/includes/definitions/eltex-olt.yaml

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

discovery:
    - sysObjectID:
        - .1.3.6.1.4.1.35265.1.70

 

2. Скопировать MIB'ы для LTP-4X в librenms/mibs/eltex-my

 

3. Собирать свои метрики poller'ом, сохранять в rrd, также сохранять в mysql номера портов и их описание

 

librenms/includes/polling/eltex-pon.inc.php
 

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



use LibreNMS\RRD\RrdDefinition;

...

// Get metrics from ONT ports

$OLTmetrics        = array();
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateChannel',      $OLTmetrics, 'ELTEX-LTP8X', null, '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateID',           $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTConfigDescription', $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateState',        $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OeQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateDistance',     $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateTxPower',      $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateRxPower',      $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateTemperature',  $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');

// Get traffic from ONT ports

foreach ($OLTmetrics as $OLTmetricId=>$OLTmetric) {
    $snmp_query = "ltp8xONTCrossConnectDSCounterValue.$OLTmetricId.1.1 ltp8xONTCrossConnectUSCounterValue.$OLTmetricId.1.1";
    $OLTmetrics_traffic    = snmp_get_multi($device, $snmp_query, '-OQUsb', 'ELTEX-LTP8X', 'eltex-my');
    $OLTmetrics[$OLTmetricId]['ltp8xONTCrossConnectDSCounterValue'] = $OLTmetrics_traffic["$OLTmetricId.1.1"]['ltp8xONTCrossConnectDSCounterValue'];
    $OLTmetrics[$OLTmetricId]['ltp8xONTCrossConnectUSCounterValue'] = $OLTmetrics_traffic["$OLTmetricId.1.1"]['ltp8xONTCrossConnectUSCounterValue'];
}
...
сохранить в mysql номера портов и desc
...
// Generate RRD files
foreach ($OLTmetrics as $OLTmetricId=>$OLTmetric) {
        $ONTchannel  = $OLTmetric['ltp8xONTStateChannel'];
        $ONTstateid  = $OLTmetric['ltp8xONTStateID'];
        $ONTifname   = $ONTchannel.'/'.$ONTstateid;
        $ONTdesc     = $OLTmetric['ltp8xONTConfigDescription'];
        $ONTstate    = $OLTmetric['ltp8xONTStateState'];
        $ONTdistance = $OLTmetric['ltp8xONTStateDistance'];
        $ONTtxpower  = $OLTmetric['ltp8xONTStateTxPower'];
        $ONTrxpower  = $OLTmetric['ltp8xONTStateRxPower'];
        $ONTtemp     = $OLTmetric['ltp8xONTStateTemperature'];
        $ONTdownload = $OLTmetric['ltp8xONTCrossConnectDSCounterValue'];
        $ONTupload   = $OLTmetric['ltp8xONTCrossConnectUSCounterValue'];

        echo "* ONT Interface: ".  $ONTifname."\n";
        echo "  ONT Description: ".$ONTdesc."\n";
        echo "  ONT State: ".      $ONTstate."\n";
        echo "  ONT Distance: ".   $ONTdistance."\n";
        echo "  ONT TX Power: ".   $ONTtxpower."\n";
        echo "  ONT RX Power: ".   $ONTrxpower."\n";
        echo "  ONT Temperature: ".$ONTtemp."\n";
        echo "  ONT Download: ".   $ONTdownload."\n";
        echo "  ONT Upload: ".     $ONTupload."\n";

        $rrd_def = RrdDefinition::make()
            ->addDataset('state',    'GAUGE',     0)
            ->addDataset('distance', 'GAUGE',     0)
            ->addDataset('txpower',  'GAUGE',     0)
            ->addDataset('rxpower',  'GAUGE',  null)
            ->addDataset('temp',     'GAUGE',     0)
            ->addDataset('download', 'COUNTER',   0)
            ->addDataset('upload',   'COUNTER',   0);

        $fields = array(
            'state'    => $ONTstate,
            'distance' => $ONTdistance,
            'txpower'  => $ONTtxpower,
            'rxpower'  => $ONTrxpower,
            'temp'     => $ONTtemp,
            'download' => $ONTdownload,
            'upload'   => $ONTupload,
        );

        $tags = compact('rrd_def');

        $rrdfname = "ponport-".$ONTchannel.'-'.$ONTstateid;
        data_update($device, $rrdfname, $tags, $fields);

}

 


 

 

 

 

4. Проверочный запуск поллера

librenms/poller.php -h <ip> -m eltex-pon -d -v

 

5. Сделать свою закладку для устройства Eltex LTP

добавить код вызова закладки PON (122 строка) в страницу device

 

librenms/html/pages/device.inc.php

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

        if ($device['os'] == 'eltex-olt') {
            echo '<li role="presentation" '.$select['pon'].'>
                <a href="'.generate_device_url($device, array('tab' => 'pon')).'">
                <i class="fa fa-sitemap fa-lg icon-theme"  aria-hidden="true"></i> PON
                </a>
                </li>';
        }

 

6. Сделать отображение этой закладки, по аналогии с таблицей обычных портов

librenms/html/pages/device/pon.inc.php

 

Поделиться сообщением


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

36 minutes ago, Urs_ak said:

Но есть ли в этом смысл, если это добавление довольно муторно делается?

Оки , а чем не муторно ?

И еще пару вопросов :

  1. А где у тебя в коде вызывается сохраненение в mysql?
  2. И почему нельзя это плагином сделать , туда можно и функционал добавления, выключение ОНТ сделать ?

 

Да и спасибо за код

Изменено пользователем shafiev
Забыл добавить спасибо

Поделиться сообщением


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

5 минут назад, shafiev сказал:

А где у тебя в коде вызывается сохраненение в mysql?

Там и вызывается, в п. 3

Я это не расписывал, т.к. это замыливание сути - как LibreNMS получает метрики и сохраняет в rrd

Записи в mysql они больше нужны для вывода активных портов на закладке, для отображения

 

11 минут назад, shafiev сказал:

И почему нельзя это плагином сделать , туда можно и функционал добавления, выключение ОНТ сделать ?

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

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

Поделиться сообщением


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

2 minutes ago, Urs_ak said:

Я это не расписывал, т.к. это замыливание сути - как LibreNMS получает метрики и сохраняет в rrd

Да у них сейчас и в influxdb и в Prometheus тоже поддержка есть, что радует , ведь проект сам по себе развивается.

 

 

Поделиться сообщением


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

2 hours ago, Urs_ak said:

discovery:
    - sysObjectID:
        - .1.3.6.1.4.1.35265.1.70 

Если можно будет еще пару вопросов .Вот то что выше это запрос на все онт какие есть или уже готовый с ifindex интерфейса ? (Меня просто попросили помочь с OLT Huawei , там вначале спрашиваешь какие есть интерфейсы , потом выбираешь какие gpon ,чтобы потом получить как ONT ID к ним привязанны и дальше делаешь опросы ) ?

И ты где инфу по внутреннестям брал( на каких ресурсах , примерах , и/или кого то спрашивал ) ?

Поделиться сообщением


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

В 26.12.2018 в 11:17, Urs_ak сказал:

Потом мне попались на глаза графики "Interface Non Unicast" и я увидел что они не правильные. Написал разрабам, они проигнорили. Теперь не планирую особо использовать LibreNMS.

А патч-то приложили?

 

2 часа назад, Urs_ak сказал:

Я могу пояснить суть (на примере gpon-терминала Eltex LTP-4X), только без деталей, т.к. я охладел к LibreNMS на год-два точно

 

Но есть ли в этом смысл, если это добавление довольно муторно делается?

 

Из моих записей:

 

1. Добавить узнавание модели LTP-4X

 

librenms/includes/definitions/eltex-olt.yaml

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

discovery:
    - sysObjectID:
        - .1.3.6.1.4.1.35265.1.70

 

2. Скопировать MIB'ы для LTP-4X в librenms/mibs/eltex-my

 

3. Собирать свои метрики poller'ом, сохранять в rrd, также сохранять в mysql номера портов и их описание

 

librenms/includes/polling/eltex-pon.inc.php
 

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

 



use LibreNMS\RRD\RrdDefinition;

...

// Get metrics from ONT ports

$OLTmetrics        = array();
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateChannel',      $OLTmetrics, 'ELTEX-LTP8X', null, '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateID',           $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTConfigDescription', $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateState',        $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OeQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateDistance',     $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateTxPower',      $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateRxPower',      $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');
$OLTmetrics    = snmpwalk_cache_multi_oid($device, 'ltp8xONTStateTemperature',  $OLTmetrics, 'ELTEX-LTP8X', 'eltex-my', '-OQUsb');

// Get traffic from ONT ports

foreach ($OLTmetrics as $OLTmetricId=>$OLTmetric) {
    $snmp_query = "ltp8xONTCrossConnectDSCounterValue.$OLTmetricId.1.1 ltp8xONTCrossConnectUSCounterValue.$OLTmetricId.1.1";
    $OLTmetrics_traffic    = snmp_get_multi($device, $snmp_query, '-OQUsb', 'ELTEX-LTP8X', 'eltex-my');
    $OLTmetrics[$OLTmetricId]['ltp8xONTCrossConnectDSCounterValue'] = $OLTmetrics_traffic["$OLTmetricId.1.1"]['ltp8xONTCrossConnectDSCounterValue'];
    $OLTmetrics[$OLTmetricId]['ltp8xONTCrossConnectUSCounterValue'] = $OLTmetrics_traffic["$OLTmetricId.1.1"]['ltp8xONTCrossConnectUSCounterValue'];
}
...
сохранить в mysql номера портов и desc
...
// Generate RRD files
foreach ($OLTmetrics as $OLTmetricId=>$OLTmetric) {
        $ONTchannel  = $OLTmetric['ltp8xONTStateChannel'];
        $ONTstateid  = $OLTmetric['ltp8xONTStateID'];
        $ONTifname   = $ONTchannel.'/'.$ONTstateid;
        $ONTdesc     = $OLTmetric['ltp8xONTConfigDescription'];
        $ONTstate    = $OLTmetric['ltp8xONTStateState'];
        $ONTdistance = $OLTmetric['ltp8xONTStateDistance'];
        $ONTtxpower  = $OLTmetric['ltp8xONTStateTxPower'];
        $ONTrxpower  = $OLTmetric['ltp8xONTStateRxPower'];
        $ONTtemp     = $OLTmetric['ltp8xONTStateTemperature'];
        $ONTdownload = $OLTmetric['ltp8xONTCrossConnectDSCounterValue'];
        $ONTupload   = $OLTmetric['ltp8xONTCrossConnectUSCounterValue'];

        echo "* ONT Interface: ".  $ONTifname."\n";
        echo "  ONT Description: ".$ONTdesc."\n";
        echo "  ONT State: ".      $ONTstate."\n";
        echo "  ONT Distance: ".   $ONTdistance."\n";
        echo "  ONT TX Power: ".   $ONTtxpower."\n";
        echo "  ONT RX Power: ".   $ONTrxpower."\n";
        echo "  ONT Temperature: ".$ONTtemp."\n";
        echo "  ONT Download: ".   $ONTdownload."\n";
        echo "  ONT Upload: ".     $ONTupload."\n";

        $rrd_def = RrdDefinition::make()
            ->addDataset('state',    'GAUGE',     0)
            ->addDataset('distance', 'GAUGE',     0)
            ->addDataset('txpower',  'GAUGE',     0)
            ->addDataset('rxpower',  'GAUGE',  null)
            ->addDataset('temp',     'GAUGE',     0)
            ->addDataset('download', 'COUNTER',   0)
            ->addDataset('upload',   'COUNTER',   0);

        $fields = array(
            'state'    => $ONTstate,
            'distance' => $ONTdistance,
            'txpower'  => $ONTtxpower,
            'rxpower'  => $ONTrxpower,
            'temp'     => $ONTtemp,
            'download' => $ONTdownload,
            'upload'   => $ONTupload,
        );

        $tags = compact('rrd_def');

        $rrdfname = "ponport-".$ONTchannel.'-'.$ONTstateid;
        data_update($device, $rrdfname, $tags, $fields);

}

 

 

 

 

 

 

4. Проверочный запуск поллера

librenms/poller.php -h <ip> -m eltex-pon -d -v

 

5. Сделать свою закладку для устройства Eltex LTP

добавить код вызова закладки PON (122 строка) в страницу device

 

librenms/html/pages/device.inc.php

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

        if ($device['os'] == 'eltex-olt') {
            echo '<li role="presentation" '.$select['pon'].'>
                <a href="'.generate_device_url($device, array('tab' => 'pon')).'">
                <i class="fa fa-sitemap fa-lg icon-theme"  aria-hidden="true"></i> PON
                </a>
                </li>';
        }

 

6. Сделать отображение этой закладки, по аналогии с таблицей обычных портов

librenms/html/pages/device/pon.inc.php

 

 

Круто, но где merge request в сторону разработчиков? Если так постить на форумах, то продукт за счёт комьюнити не разовьётся?

Поделиться сообщением


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

4 часа назад, shafiev сказал:

Вот то что выше это запрос на все онт какие есть или уже готовый с ifindex интерфейса ? (Меня просто попросили помочь с OLT Huawei , там вначале спрашиваешь какие есть интерфейсы , потом выбираешь какие gpon ,чтобы потом получить как ONT ID к ним привязанны и дальше делаешь опросы ) ?

Ну у вас , видимо, начальный уровень по этой теме, раз такой вопрос :)

И наверно вы даже не читали это https://docs.librenms.org/Developing/os/Initial-Detection/ и вообще там всю ветку надо посмотреть

 

sysObjectID - это в SNMP уникальный идентификатор железки/модели, по нему NMS'ы определяют куда соотнести железку и какие метрики, в итоге, запрашивать

 

Запустите smpwalk на железку и полУчите этот код sysObjectID:

snmpwalk -Oqnv -v2c -c <community> <ip> 1.3.6.1.2.1.1.2

 

Сделайте файл, по аналогии с соседними, напр. librenms/includes/definitions/huawei-olt.yaml

и напишите туда полученный код sysObjectID

и далее, по прочитанному

 

Вот более простой пример, как добавить свою железку - коммутатор Eltex MES 3124F (это я себе заметку делал):

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

 

https://docs.librenms.org/#Developing/Support-New-OS/

 

/opt/librenms/includes/definitions/eltex.yaml                    - основной, с описанием железки
/opt/librenms/includes/polling/os/eltex.inc.php                 - переменные для морды и т.п.
/opt/librenms/includes/definitions/discovery/eltex.yaml     - свои счётчики

 

0)

Загрузка своих MIB
загрузить
wget https://eltex-co.ru/upload/iblock/12f/eltex_mib_2.5.48.zip
и разархивировать private в mibs/eltex

Пример обращений:
snmpwalk -v2c -c <community> -M mibs:mibs/eltex -m RADLAN-rndMng <ip> rlCpuUtilDuringLast5Minutes.0
snmpwalk -v2c -c <community> -M mibs:mibs/eltex <ip> RADLAN-rndMng::rlCpuUtilDuringLast5Minutes.0

 

1)
#/opt/librenms/includes/definitions/eltex.yaml
os: eltex                            - уникальное имя (+ будет mib'ы искать в папке с таким именем)
text: 'Eltex MES'
ifname: true
type: network
icon: eltex
mib_dir:
    - cisco                           - дополнительная папка с mib'ами
bad_ifXEntry:                     - подстройка, чтобы метрики правильно показывать
    - 'MES3124F'                  - модель
over:                                 - графики "над мышкой"
    - { graph: device_bits, text: 'Device Traffic' }
    - { graph: device_processor, text: 'CPU Usage' }        - processor - значит взять значения из modules->processors->data файла includes/definitions/discovery/eltex.yaml
poller_modules:
    bgp-peers: false
    hr-mib: false
    ntp: false
    ospf: false
    ucd-diskio: false
    ucd-mib: false
    wireless: false
discovery_modules:
    bgp-peers: false
    cisco-vrf-lite: false
    ntp: false
    ucd-diskio: false
    wireless: false
discovery:
    - sysObjectID:
            - .1.3.6.1.4.1.35265.1.30

 

2)

#/opt/librenms/includes/polling/os/eltex.inc.php
<?php

use LibreNMS\RRD\RrdDefinition;
$version = str_replace('"', '', snmp_get($device, '.1.3.6.1.4.1.89.2.4.0', '-Oqv'));
$hardware = str_replace('"', '', snmp_get($device, '.1.3.6.1.4.1.89.53.14.1.11.1', '-Oqv'));
- переменные, которые будут отображаться в описании устройства

* не обязательный
* $cpu_usage не заработал

 

3)

#/opt/librenms/includes/definitions/discovery/eltex.yaml
mib: RADLAN-rndMng
modules:
    processors:
          data:
              -
                  oid: rlCpuUtilDuringLast5Minutes
                  num_oid: '.1.3.6.1.4.1.89.1.9.{{ $index }}'

* не обязательный

 

4)
Проверка (для уже найденного уст-ва)
/opt/librenms/discovery.php -h <ip> -d -m os
/opt/librenms/poller.php -h <ip> -d -m processors

* если сбилось и определяется как Generic,то надо запустить discovery опять
/opt/librenms/discovery.php -h <ip> -d -v >lsd2 2>&1

 

 

 

Вообще в LibreNMS нету, на данный момент, инфраструктуры для нормального мониторинга OLT-терминалов.

На том что есть, можно добавить узнавание железки и мониторинг стандартных метрик - обычные интерфейсы, CPU и т.п.

Графики загрузки ONT портов вы так просто не получите.

 

Поделиться сообщением


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

2 minutes ago, Urs_ak said:

Графики загрузки ONT портов вы так просто не получите.

Вот я и хочу сделать все нормально , чтобы был автодетектинг ОНТ со всеми параметрами .

 

 

3 minutes ago, Urs_ak said:

Ну у вас , видимо, начальный уровень по этой теме, раз такой вопрос :)

ну дык я ее когда тыкал еще этих доков не было )
 

Вопрос в догонку я потом же эти полученные ОНТшки по их SNMP ID полученным ранее смогу в своем плагине оперировать и если да то через mysql ?

Поделиться сообщением


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

6 минут назад, shafiev сказал:

Вопрос в догонку я потом же эти полученные ОНТшки по их SNMP ID полученным ранее смогу в своем плагине оперировать и если да то через mysql ?

Про плугины меня не спрашивайте я туда не погружался. Почитайте доки, там видимо много они добавили информации.

 

Мне втемяшилось, что я хочу закладку "PON", рядом с Ports.

Чтобы там был список сконфигуренных ONT портов на железке

А по клику на выбранный ONT порт открывалась статистика для этого порта: UL/DL,уровень сигнала,расстояние и т.п.

 

HTML код для отображения полученных метрик, взял с закладки "Ports":

  librenms/html/pages/device/ports.inc.php
  librenms/html/pages/device/port.inc.php

  librenms/html/includes/graphs/port/
и сделал по аналогии

 

Поделиться сообщением


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

А для TR-69 у вас eltex.acs ?

Поделиться сообщением


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

Больше никто не работал с ним ?

Поделиться сообщением


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

Поставил поиграться librenms - проблема со старыми d-linkами 3028 - включен режим vlun trunk - соответственно librenms вываливает все 4к интерфейсов и пытается их опрашивать. Да и вообще, все эти интерфейсы же фиктивные на l2 свичах - как сделать, чтоб он добавлял только порты физические? отключение в global модуля ports и vlans  не помогает..Хотяб для 3028 длинка это поправить, а то десяток таких свитчей после автодискавери вешают виртуалку с либрой. Спасибо

Поделиться сообщением


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

Там можно настроить какие интерфейсы игнорировать

https://docs.librenms.org/Support/Configuration/#interfaces-to-be-ignored

 

Поделиться сообщением


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

Цитата

Examples:

Add entries to default arrays

lnms config:set bad_if.+ voip-null
lnms config:set bad_iftype.+ voiceEncap
lnms config:set bad_if_regexp.+ '/^lo[0-9].*/'    # loopback

 

Override default bad_if values

lnms config:set bad_if '["voip-null", "voiceEncap", "voiceFXO"]'

 

Create an OS specific array

lnms config:set os.iosxe.bad_iftype.+ macSecControlledIF
lnms config:set os.iosxe.bad_iftype.+ macSecUncontrolledIF

 

Various bad_if* selection options available

bad_if is matched against the ifDescr value.

bad_iftype is matched against the ifType value.

bad_if_regexp is matched against the ifDescr value as a regular expression.

bad_ifname_regexp is matched against the ifName value as a regular expression.

bad_ifalias_regexp is matched against the ifAlias value as a regular expression.

 

А можете подсказать, как по-правильному тут совместить условия  определения вендора\ оси d-link например и в них исключать интерфейсы

 802.1q encapsulation tag 0001, 802.1q encapsulation tag 0002, 802.1q encapsulation tag 0003, 802.1q encapsulation tag 0004, 802.1q encapsulation tag 0005, 802.1q encapsulation tag 0006, 802.1q encapsulation tag 0007, 802.1q encapsulation tag 0008, 802.1q encapsulation tag 

и т.д. 

 

Как я понял, нужно поправить файл 

dlink.yaml

 

Цитата

os: dlink
text: 'D-Link Switch'
type: network
icon: dlink
ifname: true
empty_ifdescr: true
discovery:
    -
        sysObjectID_except:
            - .1.3.6.1.4.1.171.10.37.
        sysObjectID:
            - .1.3.6.1.4.1.171.10.
good_if:
    - po
    - vlan

Но что добавлять? 

bad_if

-vlan 

или 

-dot1q

 

Спасибо


 

 

 

Изменено пользователем sinoptik

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.