NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: grimnir on December 01, 2012, 07:57:17 AM

Title: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 01, 2012, 07:57:17 AM
Добрый день!

Почему-то netxmsd не может получить по SNMP таблицу MAC-адресов с цисковских коммутаторов.

Ситуация такая:
Есть гетерогенная сеть, где присутствуют коммутаторы уровня доступа от разных производителей: Cisco, Nortel, HP. При добавлении нового коммутатора указываю в его свойствах SNMP community, отключаю использование nxagentd и делаю сначала status poll, потом configuration poll и topology poll.

При этом нормально происходит определение имён интерфейсов, списка VLANов, CDP-соседей, но таблица МАС-адресов с коммутатора, судя по всему, не импортируется. В итоге, если сделать поиск устройства (по МАС или IP-адресу), подключенного в цисковский каталист, то в результате получаем "indirectly connected" где-нибудь на нортеловском коммутаторе.

При этом для коммутаторов Nortel (baystack 470) и HP (A5120-48G EI) всё работает хорошо.

Цисковские коммутаторы - C2960G-48TC-L, IOS - 15.0(1)SE1.

Netxms - версии 1.2.4, скомпилирован под FreeBSD  8.3 amd64:

FreeBSD 8.3-RELEASE-p3 #0: Tue Jun 12 00:39:29 UTC 2012     [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

Подскажите, пожалуйста, в какую сторону копать...
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on December 03, 2012, 12:57:05 PM
Пришлите пожалуйста результат SNMP WALK для следующих объектов:

.1.3.6.1.2.1.17.1.4.1.2
.1.3.6.1.2.1.17.7.1.2.2.1.2
.1.3.6.1.2.1.17.4.3.1.1
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 04, 2012, 04:36:02 PM
Quote from: Victor Kirhenshtein on December 03, 2012, 12:57:05 PM
Пришлите пожалуйста результат SNMP WALK для следующих объектов:

.1.3.6.1.2.1.17.1.4.1.2
.1.3.6.1.2.1.17.7.1.2.2.1.2
.1.3.6.1.2.1.17.4.3.1.1

Нет объектов с такими OID'ами, говорит:

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXXX 192.168.255.196 .1.3.6.1.2.1.17.1.4.1.2

SNMPv2-SMI::mib-2.17.1.4.1.2 = No Such Instance currently exists at this OID

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXXX 192.168.255.196 .1.3.6.1.2.1.17.7.1.2.2.1.2

SNMPv2-SMI::mib-2.17.7.1.2.2.1.2 = No Such Object available on this agent at this OID

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXXX 192.168.255.196 .1.3.6.1.2.1.17.4.3.1.1

SNMPv2-SMI::mib-2.17.4.3.1.1 = No Such Instance currently exists at this OID

Доступ по SNMP с сервера к коммутаторам точно есть, snmpwalk по другим OID'ам отрабатывает.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on December 04, 2012, 06:46:39 PM
Нашел такое примечание на сайте Cisco (http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_55_se/configuration/guide/swmibs.html (http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_55_se/configuration/guide/swmibs.html)):

The BRIDGE-MIB supports the context of a single VLAN. By default, SNMP messages using the configured community string always provide information for VLAN 1. To obtain the BRIDGE-MIB information for other VLANs, for example VLAN x, use this community string in the SNMP message: configured community string @x.

Если у вас не VLAN 1, поробуйте community@vlan в SNMP WALK.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 04, 2012, 07:50:53 PM
Quote from: Victor Kirhenshtein on December 04, 2012, 06:46:39 PM
Нашел такое примечание на сайте Cisco (http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_55_se/configuration/guide/swmibs.html (http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_55_se/configuration/guide/swmibs.html)):

The BRIDGE-MIB supports the context of a single VLAN. By default, SNMP messages using the configured community string always provide information for VLAN 1. To obtain the BRIDGE-MIB information for other VLANs, for example VLAN x, use this community string in the SNMP message: configured community string @x.

Если у вас не VLAN 1, поgробуйте community@vlan в SNMP WALK.

Да, спасибо за ссылку - так snmpwalk отрабатывает по двум OID'ам, по крайней мере (VLAN'ов там куча, действительно, вот вывод для 153-го):

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXX@153 192.168.255.196 .1.3.6.1.2.1.17.1.4.1.2

SNMPv2-SMI::mib-2.17.1.4.1.2.1 = INTEGER: 10101
SNMPv2-SMI::mib-2.17.1.4.1.2.4 = INTEGER: 10104
SNMPv2-SMI::mib-2.17.1.4.1.2.5 = INTEGER: 10105
SNMPv2-SMI::mib-2.17.1.4.1.2.6 = INTEGER: 10106
SNMPv2-SMI::mib-2.17.1.4.1.2.7 = INTEGER: 10107
SNMPv2-SMI::mib-2.17.1.4.1.2.9 = INTEGER: 10109
SNMPv2-SMI::mib-2.17.1.4.1.2.10 = INTEGER: 10110
SNMPv2-SMI::mib-2.17.1.4.1.2.11 = INTEGER: 10111
SNMPv2-SMI::mib-2.17.1.4.1.2.12 = INTEGER: 10112
SNMPv2-SMI::mib-2.17.1.4.1.2.15 = INTEGER: 10115
SNMPv2-SMI::mib-2.17.1.4.1.2.16 = INTEGER: 10116
SNMPv2-SMI::mib-2.17.1.4.1.2.17 = INTEGER: 10117
SNMPv2-SMI::mib-2.17.1.4.1.2.18 = INTEGER: 10118
SNMPv2-SMI::mib-2.17.1.4.1.2.19 = INTEGER: 10119
SNMPv2-SMI::mib-2.17.1.4.1.2.20 = INTEGER: 10120
SNMPv2-SMI::mib-2.17.1.4.1.2.23 = INTEGER: 10123
SNMPv2-SMI::mib-2.17.1.4.1.2.24 = INTEGER: 10124
SNMPv2-SMI::mib-2.17.1.4.1.2.25 = INTEGER: 10125
SNMPv2-SMI::mib-2.17.1.4.1.2.27 = INTEGER: 10127
SNMPv2-SMI::mib-2.17.1.4.1.2.29 = INTEGER: 10129
SNMPv2-SMI::mib-2.17.1.4.1.2.31 = INTEGER: 10131
SNMPv2-SMI::mib-2.17.1.4.1.2.32 = INTEGER: 10132
SNMPv2-SMI::mib-2.17.1.4.1.2.36 = INTEGER: 10136
SNMPv2-SMI::mib-2.17.1.4.1.2.38 = INTEGER: 10138
SNMPv2-SMI::mib-2.17.1.4.1.2.39 = INTEGER: 10139
SNMPv2-SMI::mib-2.17.1.4.1.2.40 = INTEGER: 10140
SNMPv2-SMI::mib-2.17.1.4.1.2.43 = INTEGER: 10143
SNMPv2-SMI::mib-2.17.1.4.1.2.44 = INTEGER: 10144
SNMPv2-SMI::mib-2.17.1.4.1.2.45 = INTEGER: 10145
SNMPv2-SMI::mib-2.17.1.4.1.2.48 = INTEGER: 10148
SNMPv2-SMI::mib-2.17.1.4.1.2.64 = INTEGER: 5001

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXX@153 192.168.255.196 .1.3.6.1.2.1.17.4.3.1.1

SNMPv2-SMI::mib-2.17.4.3.1.1.0.3.153.136.63.220 = Hex-STRING: 00 03 99 88 3F DC
SNMPv2-SMI::mib-2.17.4.3.1.1.0.4.118.224.203.144 = Hex-STRING: 00 04 76 E0 CB 90
SNMPv2-SMI::mib-2.17.4.3.1.1.0.21.93.0.126.126 = Hex-STRING: 00 15 5D 00 7E 7E
SNMPv2-SMI::mib-2.17.4.3.1.1.0.21.93.0.126.127 = Hex-STRING: 00 15 5D 00 7E 7F
SNMPv2-SMI::mib-2.17.4.3.1.1.0.21.199.54.244.192 = Hex-STRING: 00 15 C7 36 F4 C0
SNMPv2-SMI::mib-2.17.4.3.1.1.0.22.118.5.23.179 = Hex-STRING: 00 16 76 05 17 B3
SNMPv2-SMI::mib-2.17.4.3.1.1.0.24.254.125.160.80 = Hex-STRING: 00 18 FE 7D A0 50
SNMPv2-SMI::mib-2.17.4.3.1.1.0.28.192.149.94.187 = Hex-STRING: 00 1C C0 95 5E BB
SNMPv2-SMI::mib-2.17.4.3.1.1.0.28.196.216.212.22 = Hex-STRING: 00 1C C4 D8 D4 16
SNMPv2-SMI::mib-2.17.4.3.1.1.0.31.208.162.112.128 = Hex-STRING: 00 1F D0 A2 70 80
SNMPv2-SMI::mib-2.17.4.3.1.1.0.37.131.95.232.47 = Hex-STRING: 00 25 83 5F E8 2F
SNMPv2-SMI::mib-2.17.4.3.1.1.0.38.24.68.188.218 = Hex-STRING: 00 26 18 44 BC DA
SNMPv2-SMI::mib-2.17.4.3.1.1.0.64.140.133.235.155 = Hex-STRING: 00 40 8C 85 EB 9B
SNMPv2-SMI::mib-2.17.4.3.1.1.0.64.140.133.235.164 = Hex-STRING: 00 40 8C 85 EB A4
SNMPv2-SMI::mib-2.17.4.3.1.1.0.64.140.133.235.168 = Hex-STRING: 00 40 8C 85 EB A8
SNMPv2-SMI::mib-2.17.4.3.1.1.0.64.140.133.235.192 = Hex-STRING: 00 40 8C 85 EB C0
SNMPv2-SMI::mib-2.17.4.3.1.1.28.111.101.209.148.184 = Hex-STRING: 1C 6F 65 D1 94 B8
SNMPv2-SMI::mib-2.17.4.3.1.1.48.70.154.74.209.193 = STRING: "0F Jяа"
SNMPv2-SMI::mib-2.17.4.3.1.1.60.74.146.196.1.165 = Hex-STRING: 3C 4A 92 C4 01 A5
SNMPv2-SMI::mib-2.17.4.3.1.1.108.240.73.229.165.33 = STRING: "lПIЕ╔!"
SNMPv2-SMI::mib-2.17.4.3.1.1.120.227.181.251.75.101 = STRING: "xЦ╣ШKe"
SNMPv2-SMI::mib-2.17.4.3.1.1.132.201.178.118.133.153 = STRING: "└и╡v┘≥"
SNMPv2-SMI::mib-2.17.4.3.1.1.216.48.98.127.196.51 = Hex-STRING: D8 30 62 7F C4 33
SNMPv2-SMI::mib-2.17.4.3.1.1.240.180.121.1.69.66 = Hex-STRING: F0 B4 79 01 45 42

Для OID .1.3.6.1.2.1.17.7.1.2.2.1.2 всё равно - "no such object":

netxms# /usr/local/bin/snmpwalk -v 2c -c XXXXXXX@153 192.168.255.196 .1.3.6.1.2.1.17.7.1.2.2.1.2
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2 = No Such Object available on this agent at this OID
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on December 04, 2012, 09:48:11 PM
Похоже придется делать отдельный драйвер для 2960, который будет корректно обрабатывать эту ситуацию.
То, что нет информации под  .1.3.6.1.2.1.17.7.1.2.2.1.2 - это нормально.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 05, 2012, 03:59:06 AM
Понятно...
Если что-то потестировать нужно будет - буду рад оказаться полезен.
Самостоятельно я вряд ли смогу драйвер написать, увы.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 07, 2012, 05:20:49 PM
Хотя, могу попробовать написать драйвер.
Правда, я почитал код - имеющиеся драйверы однотипны, и, насколько я понимаю, необходимость получать таблицу МАС-адресов "поVLANно" приведёт к необхдимости переписки и кода, отвественного за взаимодействие с драйвером?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on December 10, 2012, 05:58:23 PM
С таблицами MAC адресов посложнее - сейчас есть только универсальный код. Его надо будет перенести в GENERIC драйвер, добавив новую точку входа, и тогда уже сделать новый для 2960, который будет правильно обрабатывать FDB для конкретной модели. Кстати, а какой драйвер сервер выбрал для 2960 (это видно на закладке Overview в панели Object Details)?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 10, 2012, 06:37:59 PM
Сейчас сервер выбирает CATALYST-GENERIC, насколько я понимаю, это src/server/drivers/catalyst.

Не очень понял про generic-драйвер "вообще" (я новичок в NetXMS, простите),  это в каком файле посмотреть можно?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on December 10, 2012, 10:15:25 PM
GENERIC - это драйвер, который есть всегда. Его код встроен в libnxsrv: src/server/libnxsrv/ndd.cpp. Он используется как базовый класс для всех драйверов и как драйвер по умолчанию.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on December 12, 2012, 05:07:21 PM
Quote from: Victor Kirhenshtein on December 10, 2012, 10:15:25 PM
GENERIC - это драйвер, который есть всегда. Его код встроен в libnxsrv: src/server/libnxsrv/ndd.cpp. Он используется как базовый класс для всех драйверов и как драйвер по умолчанию.

Посмотрел, подумал, но пожалуй ndd.cpp я не возьмусь переписывать нахрапом...

P.S. не по теме, но ещё с одной проблемой столкнулся сегодня:  попытался добавить в список устройств коммутатор из состава blade-системы Fujitsu (Fujitsu PY CB Eth Switch 1Gb 36/8+2, Runtime Code 4.12, OS - VxWorks 6.5), отключил использование nxagent, указал SNMP-community. При попытке сделать configuration poll устройство пропало из списка, и на консоли непрерывно стали возникать сообщения "Access denied", хотя сервер доступ по SNMP к устройству получил (sysID определил). Драйвер при этом выбрал GENERIC. Пришлось базу фиксить с помощью nxdbmgr и вычищать все объекты, связанные с этим коммутатором...
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: zolg on February 27, 2013, 09:04:17 AM
Quote from: Victor Kirhenshtein on December 04, 2012, 09:48:11 PMПохоже придется делать отдельный драйвер для 2960, который будет корректно обрабатывать эту ситуацию.
Это похоже особенность не только 2960, но и остальных каталистов. По крайней мере 3750G, 3750 и 35xx ведут себя точно так же.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: zolg on February 27, 2013, 11:30:09 AM
копнул проблему чуть глубже, вот что нарисовалось:
Cisco не возвращает в dot1dTpFdbTable FDB для всех VLAN'ов потому что это невозможно корректно сделать в принципе.
В dot1dTpFdbTable не предусмотрено отдельного поля для vlan'а к которому принадлежит mac-адрес, а т.к. в разных vlan'ах теоретически могут присутствовать различные устройства с одинаковыми физическими адресами, то FDB, построенная с игнорированием vlan'ов будет некорректна.
Те вендоры, которые выдают в dot1dTpFdbTable все mac-адреса, на самом деле поступают не очень здорово (хотя на первый взгляд это и удобно) (еще хуже то, что известны случаи подобных упрощений и обобщений в реальной, используемой при коммутации, FDB).
Ситуация совпадения mac'ов в мирное время крайне маловероятна, однако ж если кто-то решил в сети развлечься (или китайский рабочий накосячил) может иметь место быть.

В циске ситуацию разрулили snmp-контекстами. На свитче для каждого vlan'а определен контекст vlan-XXX (где XXX - vlanid), в случае использования snmp версий ниже 3 обращение к контексту происходит путем добавления @ и его номера к коммунити. т.е. чтобы получить все мак-адреса из 555 vlan'а необходимо

для snmpv3:
snmpwalk -v3 -n vlan-555 -u testuser 172.31.0.1 .1.3.6.1.2.1.17.4.3.1.1

для snmpv2:
snmpwalk -v2c -c testcommunity@555 172.31.0.1 .1.3.6.1.2.1.17.4.3.1.1

единственная претензия к цисковцам, что они не реализовали проприетарный аналог dot1dTpFdbTable, но с блекджеком со всей таблицей мак-адресов и полем под vlan.

ps:
хорошая новость: OID оказывается уже есть, причем не проприетарный. .1.3.6.1.2.1.17.4.3 dot1qTpFdbTable
плохая новость: циской не поддерживается.

Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on February 27, 2013, 11:58:22 AM
Спасибо за детальный разбор! Сделал ишшую в баг трекере, чтобы не потерялось: https://www.radensolutions.com/chiliproject/issues/242 (https://www.radensolutions.com/chiliproject/issues/242). В 1.2.7 добавлю поддержку FDB по VLAN'ам.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: zolg on February 28, 2013, 08:51:31 AM
Спасибо за внимание к проблеме!
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 07, 2013, 11:05:10 AM
Спасибо за детальный "разбор полётов"!
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 07, 2013, 11:06:57 AM
Quote from: Victor Kirhenshtein on February 27, 2013, 11:58:22 AM
В 1.2.7 добавлю поддержку FDB по VLAN'ам.

О, огромное спасибо! Это будет просто здорово... Если могу помочь с тестированием (есть c2960, c3650, c3750, c6509) - то с удовольствием.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 07, 2013, 01:26:56 PM
Quote from: grimnir on March 07, 2013, 11:06:57 AM
О, огромное спасибо! Это будет просто здорово... Если могу помочь с тестированием (есть c2960, c3650, c3750, c6509) - то с удовольствием.

Я вроде как сделал, но тестировать мне не начем особо, так что было бы очень здорово. Я могу сделать сборку текущих исходников или билд для Windows, смотря что надо.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 11, 2013, 06:13:16 AM
Quote from: Victor Kirhenshtein on March 07, 2013, 01:26:56 PM
Я вроде как сделал, но тестировать мне не начем особо, так что было бы очень здорово. Я могу сделать сборку текущих исходников или билд для Windows, смотря что надо.

У меня платформа - FreeBSD, я портирую каждую новую версию из исходников под неё. Так что если есть tarball с исходниками, как обычно Вы в релизах выкладываете, то не вопрос - прямо сегодня могу протестировать.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 11, 2013, 09:09:46 PM
Выложил: https://www.netxms.org/download/rc/netxms-1.2.7-m2.tar.gz (https://www.netxms.org/download/rc/netxms-1.2.7-m2.tar.gz). Эта версия потребует апгрейд базы, так что надо будет делать копию на случай если потребуется вернутся обратно на 1.2.6.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 12, 2013, 09:29:10 AM
Quote from: Victor Kirhenshtein on March 11, 2013, 09:09:46 PM
Выложил: https://www.netxms.org/download/rc/netxms-1.2.7-m2.tar.gz (https://www.netxms.org/download/rc/netxms-1.2.7-m2.tar.gz). Эта версия потребует апгрейд базы, так что надо будет делать копию на случай если потребуется вернутся обратно на 1.2.6.

Что-то с апгрейдом БД не заладилось:

12 11:03:47 netxms netxmsd[32102]: SQL query failed (Query = "UPDATE raw_dci_values SET raw_value=?,transformed_value=?,last_poll_time=? WHERE item_id=?"): Prepared statement needs to be re-prepared     
Mar 12 11:03:47 netxms netxmsd[32102]: SQL query failed (Query = "SELECT id FROM interfaces WHERE id=?"): Prepared statement needs to be re-prepared                                                           
Mar 12 11:03:47 netxms netxmsd[32102]: SQL query failed (Query = "INSERT INTO interfaces (ip_addr,ip_netmask,node_id,if_type,if_index,mac_addr,flags,required_polls,bridge_port,phy_slot,phy_port,peer_node_id,
peer_if_id,description,admin_state,oper_state,dot1x_pae_state,dot1x_backend_state,id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"): Duplicate entry '5290' for key 'PRIMARY'
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 12, 2013, 10:28:17 AM
Похожая ситуация описана здесь: http://bugs.mysql.com/bug.php?id=42041 (http://bugs.mysql.com/bug.php?id=42041). В конце есть описание изменений в настройках MySQL, которые вроде как помогли:

Not sure if this helps, but we seemed to solve the issue on our servers by changing some db settings.

table_open_cache 128=>16384
table_definition_cache 1024=>16384
tmp_table_size 32M=>64M
join_buffer_size 256k=>512k
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 12, 2013, 11:09:23 AM
Quote from: Victor Kirhenshtein on March 12, 2013, 10:28:17 AM
Похожая ситуация описана здесь: http://bugs.mysql.com/bug.php?id=42041 (http://bugs.mysql.com/bug.php?id=42041). В конце есть описание изменений в настройках MySQL, которые вроде как помогли:


Нет, там что-то хитрее, nxdbmgr reindex вот что выдаёт:

NetXMS Database Manager Version 1.2.7-m2

Reindexing table raw_dci_values by (item_id)...
SQL query failed (Duplicate key name 'idx_raw_dci_values_item_id'):
ESC[33;1mCREATE INDEX idx_raw_dci_values_item_id ON raw_dci_values(item_id)ESC[0m
Reindexing table event_log by (event_timestamp)...
SQL query failed (Duplicate key name 'idx_event_log_event_timestamp'):
ESC[33;1mCREATE INDEX idx_event_log_event_timestamp ON event_log(event_timestamp)ESC[0m
Reindexing table thresholds by (item_id)...
SQL query failed (Duplicate key name 'idx_thresholds_item_id'):
ESC[33;1mCREATE INDEX idx_thresholds_item_id ON thresholds(item_id)ESC[0m
Reindexing table thresholds by (sequence_number)...
SQL query failed (Duplicate key name 'idx_thresholds_sequence'):
ESC[33;1mCREATE INDEX idx_thresholds_sequence ON thresholds(sequence_number)ESC[0m
Reindexing table alarm_notes by (alarm_id)...
SQL query failed (Duplicate key name 'idx_alarm_notes_alarm_id'):
ESC[33;1mCREATE INDEX idx_alarm_notes_alarm_id ON alarm_notes(alarm_id)ESC[0m
Reindexing table syslog by (msg_timestamp)...
SQL query failed (Duplicate key name 'idx_syslog_msg_timestamp'):
ESC[33;1mCREATE INDEX idx_syslog_msg_timestamp ON syslog(msg_timestamp)ESC[0m
Reindexing table snmp_trap_log by (trap_timestamp)...
SQL query failed (Duplicate key name 'idx_snmp_trap_log_trap_timestamp'):
ESC[33;1mCREATE INDEX idx_snmp_trap_log_trap_timestamp ON snmp_trap_log(trap_timestamp)ESC[0m
Reindexing table address_lists by (list_type)...
SQL query failed (Duplicate key name 'idx_address_lists_list_type'):
ESC[33;1mCREATE INDEX idx_address_lists_list_type ON address_lists(list_type)ESC[0m
Reindexing table idata_100
SQL query failed (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM idata_100' at line 1):
ESC[33;1mDROP INDEX idata_100 FROM idata_100ESC[0m
SQL query failed (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM idata_100' at line 1):
ESC[33;1mDROP INDEX idata_100 FROM idata_100ESC[0m
SQL query failed (Duplicate key name 'idx_idata_100_id_timestamp'):
ESC[33;1mCREATE INDEX idx_idata_100_id_timestamp ON idata_100(item_id,idata_timestamp)ESC[0m
Reindexing table idata_106

ну и т.д.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 12, 2013, 11:31:37 AM
nxdbmgr reindex сам по себе один большой баг. Он был сделан очень давно для решения каких-то специфических проблем, и сейчас вроде как не нужен. Я пересмотрю этот код и решу что с ним делать. Пока лучше не использовать.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 12, 2013, 11:56:58 AM
Quote from: Victor Kirhenshtein on March 12, 2013, 11:31:37 AM
nxdbmgr reindex сам по себе один большой баг. Он был сделан очень давно для решения каких-то специфических проблем, и сейчас вроде как не нужен. Я пересмотрю этот код и решу что с ним делать. Пока лучше не использовать.

ОК, понял, спасибо за преупреждение :-)

На данный момент сервер стартует без ошибок:

root@netxms:/var/log # nxdbmgr check
NetXMS Database Manager Version 1.2.7-m2

Checking database (excluding collected data):
* Checking zone objects...                                            [PASSED]
* Checking node objects...                                            [PASSED]
* Checking interface objects...                                       [PASSED]
* Checking network service objects...                                 [PASSED]
* Checking cluster objects...                                         [PASSED]
* Checking template to node mapping...                                [PASSED]
* Checking object properties...                                       [PASSED]
* Checking event processing policy...                                 [PASSED]
Database doesn't contain any errors
Database check completed
root@netxms:/var/log # /usr/local/etc/rc.d/netxmsd start
Starting netxmsd.
NetXMS Database Manager Version 1.2.7-m2

Checking database (excluding collected data):
* Checking zone objects...                                            [PASSED]
* Checking node objects...                                            [PASSED]
* Checking interface objects...                                       [PASSED]
* Checking network service objects...                                 [PASSED]
* Checking cluster objects...                                         [PASSED]
* Checking template to node mapping...                                [PASSED]
* Checking object properties...                                       [PASSED]
* Checking event processing policy...                                 [PASSED]
Database doesn't contain any errors
Database check completed

В логе тоже всё хорошо:

Mar 12 11:19:09 netxms nxagentd[47829]: NetXMS Agent started                                                                                                                                                   
Mar 12 11:19:46 netxms netxmsd[47818]: Listening for SNMP traps on UDP socket 0.0.0.0:162                                                                                                                     
Mar 12 11:19:46 netxms netxmsd[47818]: NetXMS Server started                                                                                                                                                   
Mar 12 11:19:46 netxms netxmsd[47818]: Listening for client connections on TCP socket 0.0.0.0:4701                                                                                                             
Mar 12 11:19:46 netxms netxmsd[47818]: Listening for mobile device connections on TCP socket 0.0.0.0:4747                                                                                                     
Mar 12 12:00:24 netxms netxmsd[48001]: Platform subagent "/usr/local/lib/libnsm_freebsd.so" successfully loaded                                                                                               
Mar 12 12:00:24 netxms netxmsd[48001]: Database driver "/usr/local/lib/libnxddr_mysql.so" loaded and initialized successfully                                                                                 
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "BAYSTACK" loaded successfully                                                                                                                   
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "CATALYST-2900XL" loaded successfully                                                                                                             
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "CATALYST-GENERIC" loaded successfully                                                                                                           
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "CISCO-ESW" loaded successfully                                                                                                                   
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "DELL-PWC" loaded successfully                                                                                                                   
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "DLINK" loaded successfully                                                                                                                       
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "ERS8000" loaded successfully                                                                                                                     
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "NETSCREEN" loaded successfully                                                                                                                   
Mar 12 12:00:24 netxms netxmsd[48001]: Network device driver "PROCURVE" loaded successfully                                                                                                                   
Mar 12 12:01:12 netxms netxmsd[48001]: Listening for SNMP traps on UDP socket 0.0.0.0:162                                                                                                                     
Mar 12 12:01:13 netxms netxmsd[48001]: NetXMS Server started                                                                                                                                                   
Mar 12 12:01:13 netxms netxmsd[48001]: Listening for mobile device connections on TCP socket 0.0.0.0:4747                                                                                                     
Mar 12 12:01:13 netxms netxmsd[48001]: Listening for client connections on TCP socket 0.0.0.0:4701

Но, при этом, FDB с каталистов всё равно не получается...
Пытаюсь сделать Tools->Info->Switch forwarding database, ничего не выводится. То же самое для Baystack 470 успешно отображает таблицу МАСов.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 12, 2013, 09:47:13 PM
FDB таблица из Object Tools - это конкретный SNMP OID. Здесь ничего не изменилось. Но есть FDB, которую знает сам сервер (она используется для построения топологии 2-го уровня) - там должна быть полная информация. Попробуйте функцию "Find switch port" для хостов в разных VLAN-ах - она должна работать корректно.
Й в следующем релизе заменю FDB из Object Tools на показ той таблицы, которую знает сервер.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 13, 2013, 10:57:29 AM
Quote from: Victor Kirhenshtein on March 12, 2013, 09:47:13 PM
FDB таблица из Object Tools - это конкретный SNMP OID. Здесь ничего не изменилось. Но есть FDB, которую знает сам сервер (она используется для построения топологии 2-го уровня) - там должна быть полная информация. Попробуйте функцию "Find switch port" для хостов в разных VLAN-ах - она должна работать корректно.
Й в следующем релизе заменю FDB из Object Tools на показ той таблицы, которую знает сервер.

Не нашёл в меню "Find switch port", но, судя по всему, FDB с каталистов он не получает-таки: моя рабочая станция подключена напрямую в catalyst 2960, но ни через "Find IP address", ни через "Find MAC address" я себя не нахожу. Может, можно какой debug включить?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: glebofff on March 14, 2013, 07:44:34 AM
А вывод Poll->Topology при этом какой?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 14, 2013, 08:38:51 AM
Quote from: glebofff on March 14, 2013, 07:44:34 AM
А вывод Poll->Topology при этом какой?

Хм, любопытно - говорит, что всё хорошо (тот же коммутатор, к которому я подключен; WS-C2960G-48TC-L, IOS 15.0(1)SE1):

[14.03.2013 06:33:36] **** Poll request sent to server ****
[14.03.2013 06:33:37] Poll request accepted
[14.03.2013 06:33:37] Starting topology poll for node STC-102
[14.03.2013 06:33:37] VLAN list successfully retrieved from node
[14.03.2013 06:33:41] Switch forwarding database retrieved
[14.03.2013 06:33:41] Updating peer information on interfaces
[14.03.2013 06:33:41] Link layer topology retrieved (1 connections found)
[14.03.2013 06:33:41] Finished topology poll for node STC-102
[14.03.2013 06:33:41]    Local interface Gi0/48 (Uplink) linked to remote interface TC-112-5:Gi0/47 (Downlink to 406)
[14.03.2013 06:33:41] Link layer topology processed
[14.03.2013 06:33:41] **** Poll completed successfully ****

Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on March 14, 2013, 09:36:44 AM
Я добавлю дополнительный дебаг и выложу новые исходники. Пока-что посмортите правильно ли VLAN'ы собрались с этого коммутатора.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: grimnir on March 14, 2013, 09:46:37 AM
Quote from: Victor Kirhenshtein on March 14, 2013, 09:36:44 AM
Я добавлю дополнительный дебаг и выложу новые исходники. Пока-что посмортите правильно ли VLAN'ы собрались с этого коммутатора.

По "Show VLANs" выдаёт ошибку:

Cannot get VLAN list from node: No context available outside of the request processing.
No context available outside of the request processing.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: glebofff on May 16, 2013, 06:30:04 AM
Ok, issue 242 (https://www.radensolutions.com/chiliproject/issues/242) вроде как решён:

[16-May-2013 09:26:19.303] Started topology poll for node ter_switch [508]
[16-May-2013 09:26:19.753] VLAN list retrieved from node ter_switch [508]
[16-May-2013 09:26:19.760] FDB: 0 entries read from dot1qTpFdbTable
[16-May-2013 09:26:19.762] FDB: 0 entries read from dot1dTpFdbTable
[16-May-2013 09:26:19.764] FDB: 0 entries read from dot1dTpFdbTable in context 1
[16-May-2013 09:26:19.808] FDB: 8 entries read from dot1dTpFdbTable in context 3
[16-May-2013 09:26:20.216] FDB: 82 entries read from dot1dTpFdbTable in context 10
[16-May-2013 09:26:20.316] FDB: 19 entries read from dot1dTpFdbTable in context 18
[16-May-2013 09:26:20.354] FDB: 6 entries read from dot1dTpFdbTable in context 20
[16-May-2013 09:26:20.360] FDB: 0 entries read from dot1dTpFdbTable in context 21
[16-May-2013 09:26:20.370] FDB: 0 entries read from dot1dTpFdbTable in context 22
[16-May-2013 09:26:20.376] FDB: 0 entries read from dot1dTpFdbTable in context 23
[16-May-2013 09:26:20.379] FDB: 0 entries read from dot1dTpFdbTable in context 1002
[16-May-2013 09:26:20.383] FDB: 0 entries read from dot1dTpFdbTable in context 1003
[16-May-2013 09:26:20.386] FDB: 0 entries read from dot1dTpFdbTable in context 1004
[16-May-2013 09:26:20.390] FDB: 0 entries read from dot1dTpFdbTable in context 1005
[16-May-2013 09:26:20.390] Switch forwarding database retrieved for node ter_switch [508]


В контекстном меню консоли Tools -> Info -> FDB - пустой вывод. Соответственно l2 topology рисует только cdp-соседей.

Те мак-адреса, что в первом влане - отображаются, и карта рисуется. Но так было и в 1.2.6.
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: Victor Kirhenshtein on May 23, 2013, 09:41:51 AM
Tools -> Info -> FDB в консоли показывает SNMP таблицу прямо с устройства, не FDB собранную сервером по разным VLAN'ам, так что это не показатель. Я это переделаю к следующему релизу, чтобы можно было видеть, какую информацию сервер получил. Не рисуется именно карта, или поиск MAC адресов тоже не работает?
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: glebofff on May 27, 2013, 09:31:59 AM
Quote from: Victor Kirhenshtein on May 23, 2013, 09:41:51 AM
Tools -> Info -> FDB в консоли показывает SNMP таблицу прямо с устройства, не FDB собранную сервером по разным VLAN'ам, так что это не показатель. Я это переделаю к следующему релизу, чтобы можно было видеть, какую информацию сервер получил. Не рисуется именно карта, или поиск MAC адресов тоже не работает?

Поиск мак-адресов дал в результате "indirectly connected" на d-link в том же влане. Когда железо в первом влане каталистов, всё ищется и рисуется прекрасно. А так - видно по логам, что вроде бы куда-то всё собирается, а куда - непонятно. :-)
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: alexander on September 06, 2013, 10:06:01 AM
Доброго времени суток!

Я так понимаю, что проблема осталась нерешённой (версия 1.2.8).

:(
Title: Re: Получение таблицы MAC-адресов с Cisco
Post by: glebofff on September 09, 2013, 09:46:23 AM
Да, всё по-прежнему.