помогите с SQL
-
Виктор, добрый день. Помогите немножко.
Вобщем, есть много свичей в сети, сейчас на основе данных из Netxms нужно выбрать из базы некоторые параметры.
В частности IP - Наименование - Модель - snmp_description - MAC - VLAN
Сейчас выбирается это следующим скриптом
SELECT n.primary_ip AS `IP`, o.name AS `наименование`, n.uname AS `Модель`, n.snmp_sys_name AS `snmp description`, n.bridge_base_addr AS `MAC адрес`, GROUP_CONCAT(REPLACE(i.description, 'VLAN ID', '') ORDER BY i.description) AS `vlan` FROM nodes AS n LEFT JOIN object_properties AS o ON n.id = o.object_id LEFT JOIN interfaces AS i ON n.id = i.node_id AND i.description like '%vlan%' GROUP BY n.id ORDER BY n.primary_ipИ все хорошо.
Также с коммутаторов через темплейты(разные модели - разные темплейты - разные Snmp запросы) и DCI и SNMP собирается параметр "Серийный номер устройства"
Вопрос - Как выбрать: IP - Наименование - Модель - snmp_description - MAC - VLAN - Serial Number
Есть ли такая возможность и как нужно модифицировать запрос? А то не совсем понятна логика табличных взаимосвязей в базе NETXMS.
-
Сначала надо найти DCI ID по имени и node ID:
SELECT item_id FROM items WHERE node_id=<node id> AND name='<snmp oid>';
теперь можно прочитать последнее собранное значение:
SELECT transformed_value FROM raw_dci_values WHERE item_id=<dci id>;
Для Oracle у меня получился такой запрос:
SELECT n.primary_ip IP, o.name NAME, n.uname MODEL, n.snmp_sys_name SNMP_DESCR, n.bridge_base_addr MAC_ADDR, i.description VLAN, r.transformed_value SERIAL FROM nodes n LEFT JOIN object_properties o ON n.id = o.object_id LEFT JOIN interfaces i ON n.id = i.node_id AND i.description like '%vlan%' LEFT JOIN items t ON t.node_id=n.id AND T.NAME='.1.3.6.1.2.1.1.1.0' LEFT JOIN raw_dci_values r ON r.item_id=t.item_id ORDER BY n.primary_ip;OID неправильный конечно. Можно вместо items.name использовать items.description.
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login