Objects discovery

Проверяет существование хостов в указанных сетях различными методами

Описание Objects discovery

Сборщик позволяет организовать обнаружение хостов в сетях для автоматического формирования системы мониторинга для инфраструктуры.

Параметры

  • IP addresses ranges, separated by comma - Список диапазонов IPv4 или IPv6 адресов для обнаружения хостов в формате <firstIP1>-<lastID1>, <firstIP2>-<lastID2>, <IP3>, ... Например, 192.168.0.1-192.168.0.252, 192.168.0.254, 172.10.0.1-172.10.5.254
  • Sleep time between query to the new IP in the range in sec - Пауза в секундах между попытками поиска хостов. Служит для распределения задач по времени. В случае обнаружения нескольких объектов подряд, если за паузу задачи для обработки данных выполниться не успели, они продолжат выполняться вместе с задачами, запущенными после обнаружения следующего хоста. Нагрузка может возрасти, что может привести к задержкам в работе системы. Для того, чтобы этого избежать, рекомендуется устанавливать временные паузы между обнаружениями новых хостов.
  • Time (in sec) to repeat scan after completed - Пауза в секундах между повторным сканированием диапазона. 0 - сканировать один раз
  • Use ICMP echo reply (PING) for scan - Проверять доступность хоста по протоколу ICMP (ping). Для проверки отправляется 2 пакета, используется внешняя программа ping
  • Resolve host name for each IP using OS resolve method - Пытаться определить имя хоста
  • Use zabbix-agent query for scan - Пытаться выполнить запрос к Zabbix агенту, установленному на хосте
    • Zabbix-agent TCP port - TCP порт Zabbix агента
    • Comma separated Zabbix items with parameters - Список ключей и параметров через запятую, по которым будут запрашиваться данные у Zabbix агентов
  • Use SNMP query for scan - Пытаться сделать запрос к хосту по протоколу SNMP
    • SNMP community - SNMP community (обычно public)
    • Comma separated SNMP OIDs. Result will ba a string for one OID and object {: , : } for multiple - OID или несколько OID'ов SNMP, перечисленных через запятую

Настройки

Настройки сборщика хранятся в файле settings.json

  • discoveryIP - путь до файлов в которых сохраняется текущее состояние счетчиков. В качестве суффикса к файлам добавляется идентификатор objectCounterID счетчиков.

Возвращаемое значение

Сборщик последовательно опрашивает каждый IP адрес из диапазонов и возвращает объект, содержащий найденную информацию о каждом хосте:

  • hostname - если указан параметр getHostname и удалось определить название хоста, то параметр будет содержать название хоста
  • SNMP - если указан useSNMP и от хоста пришел ответ на SNMP запрос, параметр будет содержать этот ответ. Если SNMP OID было несколько, то параметр будет содержать объект, где в качестве ключей будут OID'ы, а в качестве их значений - полученные по SNMP ответы.
  • zabbix - если указан useZabbix и от хоста пришел ответ на запрос к Zabbix агенту, параметр будет содержать этот ответ. Если ключей для Zabbix агента было несколько, то параметр будет содержать объект, где в качестве ключей будут ключи Zabbix агента, а в качестве их значений - полученные от Zabbix агента ответы.
  • ping - если указан параметр usePing, то 1 если хост ответил на ping, 0 если нет.
  • IP - IP адрес проверяемого хоста

По окончанию сканирования диапазона адресов сборщик возвратит объект: {"scanTime": <Время сканирования в миллисекундах>}

Пример возвращаемого значения для следующих настроек сканирования:

{
    "hostname": "alepiz.com",
    "SNMP": "Hardware: Intel64 Family 6 Model 85 Stepping 4 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 14393 Multiprocessor Free)",
    "zabbix": {
        "system.hostname": "ALEPIZ",
        "system.uname": "Windows ALEPIZ 10.0.14393 Microsoft Windows Server 2016 Standard x64"
    },
    "ping": 1,
    "IP": "192.168.0.1"
}

В работать с полученным объектом JSON, можно с помощью встроенной в ALEPIZ функции getValueFromJSOMStr(JSONStr, keys):

  • getValueFromJSONStr(%:PARENT_VALUE:%, "hostname") = alepiz.com
  • getValueFromJSONStr(%:PARENT_VALUE:%, "IP") = 192.168.0.1
  • getValueFromJSONStr(%:PARENT_VALUE:%, 'zabbix:system.hostname') = ALEPIZ