Получение таблицы MAC-адресов с Cisco

Started by grimnir, December 01, 2012, 07:57:17 AM

Previous topic - Next topic

zolg

Спасибо за внимание к проблеме!

grimnir

Спасибо за детальный "разбор полётов"!

grimnir

Quote from: Victor Kirhenshtein on February 27, 2013, 11:58:22 AM
В 1.2.7 добавлю поддержку FDB по VLAN'ам.

О, огромное спасибо! Это будет просто здорово... Если могу помочь с тестированием (есть c2960, c3650, c3750, c6509) - то с удовольствием.

Victor Kirhenshtein

Quote from: grimnir on March 07, 2013, 11:06:57 AM
О, огромное спасибо! Это будет просто здорово... Если могу помочь с тестированием (есть c2960, c3650, c3750, c6509) - то с удовольствием.

Я вроде как сделал, но тестировать мне не начем особо, так что было бы очень здорово. Я могу сделать сборку текущих исходников или билд для Windows, смотря что надо.

grimnir

Quote from: Victor Kirhenshtein on March 07, 2013, 01:26:56 PM
Я вроде как сделал, но тестировать мне не начем особо, так что было бы очень здорово. Я могу сделать сборку текущих исходников или билд для Windows, смотря что надо.

У меня платформа - FreeBSD, я портирую каждую новую версию из исходников под неё. Так что если есть tarball с исходниками, как обычно Вы в релизах выкладываете, то не вопрос - прямо сегодня могу протестировать.

Victor Kirhenshtein

Выложил: https://www.netxms.org/download/rc/netxms-1.2.7-m2.tar.gz. Эта версия потребует апгрейд базы, так что надо будет делать копию на случай если потребуется вернутся обратно на 1.2.6.

grimnir

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. Эта версия потребует апгрейд базы, так что надо будет делать копию на случай если потребуется вернутся обратно на 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'

Victor Kirhenshtein

Похожая ситуация описана здесь: 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

grimnir

Quote from: Victor Kirhenshtein on March 12, 2013, 10:28:17 AM
Похожая ситуация описана здесь: 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

ну и т.д.

Victor Kirhenshtein

nxdbmgr reindex сам по себе один большой баг. Он был сделан очень давно для решения каких-то специфических проблем, и сейчас вроде как не нужен. Я пересмотрю этот код и решу что с ним делать. Пока лучше не использовать.

grimnir

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 успешно отображает таблицу МАСов.

Victor Kirhenshtein

FDB таблица из Object Tools - это конкретный SNMP OID. Здесь ничего не изменилось. Но есть FDB, которую знает сам сервер (она используется для построения топологии 2-го уровня) - там должна быть полная информация. Попробуйте функцию "Find switch port" для хостов в разных VLAN-ах - она должна работать корректно.
Й в следующем релизе заменю FDB из Object Tools на показ той таблицы, которую знает сервер.

grimnir

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 включить?

glebofff

А вывод Poll->Topology при этом какой?

grimnir

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 ****