Ad Widget

Collapse

Мониторинг доступности камер на регистраторе hikvision

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Leonid2377
    Junior Member
    • Nov 2022
    • 3

    #1

    Мониторинг доступности камер на регистраторе hikvision

    Всем привет! очень нужна помощь, сразу говорю, в стандартном темплейте по мониторингу hikvision нет такого отслеживания по статусу online именно с регистратора
    Проблема такая, получаю данные с регистратора hikvision через zabbix и мне нужно выловить поле true и как на основе этого поля сделать аллерт, если поле true то все ок если <online>false</online> то не ок
    но так же мне нужно в разных случаях обрабатывать не все поля.
    есть где в регистратор вставлено 3 камеры из восьми и мне нужно ок только с трех камер, остальные порты отслеживать не нужно.

    вот данные которые получаю по ISAPI:

    запрос: http://ipадресс/ISAPI/ContentMgmt/In...hannels/status

    Ответ: (для удобства выделил строки online)

    {"InputProxyChannelStatusList":{"@version":"1.0 "," InputProxyChannelStatus":[{"@version":"1.0","id":"1","sourceInputPortDesc rip tor":{"proxyProtocol":"HIKVISION","addressingForm a tType":"ipaddress","ipAddress":"192.168.254.2","ma nagePortNo":"8000","srcInputPort":"1","userName":" admin","connMode":"plugplay","streamType":"auto"," deviceID":null},"online":"true","streamingProxyCha nnelIdList":{"streamingProxyChannelId":"101"},"rel atedIOProxy":{"inputProxyPortIdList":{"inputProxyP ortId":"I-101"},"outputProxyPortIdList":{"outputProxyPortId " :"O-101"}},"chanDetectResult":"connect","url":"http://192.168.1.74:65001","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"2","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.3","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65002","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"3","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.4","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65003","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"4","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.5","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65004","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"5","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.6","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65005","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"6","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.7","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65006","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"7","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.8","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65007","SecurityStatus":{"PasswordSta tus":"invalid"}},{"@version":"1.0","id":"8","sour c eInputPortDescriptor":{"proxyProtocol":"HIKVISION" ,"addressingFormatType":"ipaddress","ipAddress" :"1 92.168.254.9","managePortNo":"8000","srcInputPort" :"1","userName":"admin","connMode":"plugplay"," str eamType":"auto","deviceID":null},"online":"false", "streamingProxyChannelIdList":"\n","relatedIOP roxy ":{"inputProxyPortIdList":"\n","outputProxyPor tIdL ist":"\n"},"chanDetectResult":"notExist","url":"h t tp://192.168.1.74:65008","SecurityStatus":{"PasswordSta tus":"invalid"}}]}}​
    Last edited by Leonid2377; 18-11-2022, 19:13.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    На этом форуме есть возможность форматирования текста - когда вбиваете ответ, то в правом верхнем углу поля ввода кнопкой "A" можно включить/выключить панель инструментов, а в этой панели кнопкой "#" пометить кусок кода, и тогда форумный движок не будет считать его обычным текстом и пытаться вставлять пробелы в самые неожиданные места.

    По сути.
    Я не знаю ничего насчёт упомянутого шаблона, но предполагаю, что в ответ на HTTP-запрос можо получить процитированный ответ, который, если пренебречь погрешностями форматирования, является валидным JSON-ом. В этом случае я бы делал так:
    • оформил бы этот HTTP-вызов как отдельный элемент данных с типом "HTTP agent", типом данных "Text" и коротким временем хранения истории (1 час);
    • для упрощения дальнейших вычислений сразу добавил бы в правила предобработки для этого элемента данных шаг "JSONPath" с таким параметром:
      Code:
      $.InputProxyChannelStatusList.InputProxyChannelStatus
    • для каждого из интересующих каналов сделать свой дополнительный элемент данных, извлекающий нужный кусочек из полученного JSON-а с помощью предобработки; примерно следующим образом:
      • тип элемента данных - Dependent, в качестве master-item-а выбрать исходный (получающий JSON по HTTP);
      • ключ у каждого должен быть уникальным; лучше всего уникальную часть убрать в параметры. Например, для первого канала (для IP-адреса 192.168.254.2) сделать так:
        Code:
        InputProxyChannelStatus.online[192.168.254.2]
      • первым шагом предобработки - с помощью шага "JSONPath" извлекать нужный фрагмент исходного JSON-а. Например, для первого канала:
        Code:
        $[?(@.sourceInputPortDescriptor.ipAddress == "192.168.254.2")].online
      • для эффективности хранения в базе можно ещё добавить второй шаг предобработки: Boolean to decimal, а тип данных для элемента данных выбрать "Numeric (unsigned)". Тогда значение "false" будет преобразовано в ноль, а "true" - в единицу.
    • далее для каждого канала добавить свой триггер и оповещения по вкусу.
    ​Если таких устройств много, то, вероятно, имеет смысл разобраться с тем, как работает LLD и шаблонизировать это дело, создавая нужные элементы данных и триггеры через LLD только для нужных каналов; при этом список "нужных" (или, наоборот, "ненужных"), вероятно, можно вынести в пользовательские макросы, которые переопределять на уровне хоста.
    Хотя подозреваю, что, наверное, в упомянутом вами шаблоне так и сделано.
    Last edited by Kos; 28-11-2022, 12:49.

    Comment

    • CrashXRu
      Junior Member
      • Nov 2022
      • 8

      #3
      Hikvision умеет по SNMP работать, у них есть богатый функционал
      для IP камер можно отслеживать сами камеры, для аналоговых мониторить каналы (порты) на регах, так же можно мониторить HDD
      если чего то нет, в SNMP пишите им в саппорт, они допилят

      делал свой шаблон для AXIS, LTV при этом тесно общался с представителем, на предт исправления проблем в SNMP камер, кое что исправили, что не смогли увы осталось
      например бесит 32 битный счетчик uptime

      Comment

      Working...