Добрый день. Не могу получить ip узла в zabbix по его hostid. Использую запрос вида "SELECT ip FROM hosts,interface WHERE hosts.hostid =10228;" где 10228 это конкретный хост, почему-то выдаёт массив узлов. Пытаюсь реализовать метод из этого поста https://www.zabbix.com/forum/showthread.php?t=12916
Ad Widget
Collapse
Получить ip узла в zabbix через sql запрос
Collapse
X
-
Если не ошибаюсь, со второй версии заббикса ip хранится в таблице interface, а не в hosts
mysql> select ip from interface where hostid = '10090';
+--------------+
| ip |
+--------------+
| 10.16.199.20 |
+--------------+
1 row in set (0.00 sec)
mysql>
Как то так. Zabbix 2.0.3 -
hosts.hostid = interface.hostid and hosts.host = 'myhost'
Но ты все равно можешь получить "таблицу", так как интерфейсом может быть больше одного. Дополнительно можешь ограничить по типу интерфейса:
and interface.type = 1
тип интерфейса 1 это агент, 2 это SNMP, 3+ не знаю, не использую. Есть еще признак "default" интерфейса, не знаю где он в базе.Last edited by Jimson; 12-03-2013, 08:47.Comment
-
Где то такДобрый день. Не могу получить ip узла в zabbix по его hostid. Использую запрос вида "SELECT ip FROM hosts,interface WHERE hosts.hostid =10228;" где 10228 это конкретный хост, почему-то выдаёт массив узлов. Пытаюсь реализовать метод из этого поста https://www.zabbix.com/forum/showthread.php?t=12916
Code:select interface.ip from hosts left join interface on interface.hostid = hosts.hostid and interface.main = 1 where hosts.hostid = ...
Comment
-
Дефолтный по одному типу будет только один, можно в условие еще тип добавить.
А вот с лимитом ИМХО можно пролететь на порядке если без сортировки.Code:... left join interface on interface.hostid = hosts.hostid and interface.main = 1 and interface.type = 1 where ...
Comment
Comment