VOOZH about

URL: https://www.zabbix.com/integrations/hikvision

⇱ Hikvision monitoring and integration with Zabbix


Propose integration

Hikvision

Hikvision, is a Chinese partially state-owned manufacturer and supplier of video surveillance equipment for civilian and military purposes.

Available solutions




This template is for Zabbix version: 7.4

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/7.4

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn't require any external scripts.

Sample device overview page

Requirements

Zabbix version: 7.4 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ⛔️Custom on fail: Discard value

Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision: Camera has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Channel "{#PTZ_CHANNEL_ID}": Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision: Authorisation error
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision: Error receiving data
Hikvision: Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $.[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Hikvision: Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

This template is for Zabbix version: 7.2

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/7.2

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn't require any external scripts.

Sample device overview page

Requirements

Zabbix version: 7.2 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ⛔️Custom on fail: Discard value

Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision: Camera has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Channel "{#PTZ_CHANNEL_ID}": Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision: Authorisation error
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision: Error receiving data
Hikvision: Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $.[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Hikvision: Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

This template is for Zabbix version: 7.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/7.0

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn't require any external scripts.

Sample device overview page

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ⛔️Custom on fail: Discard value

Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision: Camera has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Channel "{#PTZ_CHANNEL_ID}": Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision: Authorisation error
Hikvision: Channel "{#PTZ_CHANNEL_ID}": Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision: Error receiving data
Hikvision: Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $.[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Hikvision: Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Hikvision: Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

This template is for Zabbix version: 6.4

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/6.4

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn't require any external scripts.

Sample device overview page

Requirements

Zabbix version: 6.4 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Hikvision camera: Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ⛔️Custom on fail: Discard value

Hikvision camera: Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Hikvision camera: Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision camera: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision camera: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision camera: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision camera: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision camera: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision camera: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision camera: has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Hikvision camera: Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision camera: Authorisation error on get PTZ channels

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision camera: Authorisation error
Hikvision camera: Error receiving data on PTZ channels

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision camera: Error receiving data
Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $.[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

This template is for Zabbix version: 6.2

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/6.2

Hikvision camera by HTTP

Overview

For Zabbix version: 6.2 and higher
Sample device overview page: https://www.hikvision.com/en/products/IP-Products/Network-Cameras/

This template was tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Setup

See Zabbix template operation for basic instructions.

Define macros according to your camera configuration

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$CPU.UTIL.CRIT}

-

90
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX}

-

95
{$PASSWORD}

-

1234
{$USER}

-

admin

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
PTZ discovery

-

HTTP_AGENT hikvision_cam.ptz.discovery

Preprocessing:

- XML_TO_JSON

- JAVASCRIPT

Streaming channels discovery

-

HTTP_AGENT hikvision_cam.streaming.discovery

Preprocessing:

- XML_TO_JSON

- JAVASCRIPT

Filter:

AND

- {#CHANNEL_ENABLED} MATCHES_REGEX true

Overrides:

trigger disabled non main channels
- {#CHANNEL_ID} NOT_MATCHES_REGEX {$HIKVISION_MAIN_CHANNEL_ID}
- TRIGGER_PROTOTYPE LIKE Invalid video stream resolution parameters - NO_DISCOVER

Items collected

Group Name Description Type Key and additional info
CPU Hikvision camera: CPU utilization

CPU utilization in %

DEPENDENT hikvision_cam.cpu.util

Preprocessing:

- JSONPATH: $.DeviceStatus.CPUList.CPU.cpuUtilization

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Hikvision camera Hikvision camera: Boot loader released date

-

DEPENDENT hikvision_cam.boot_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.bootReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Boot loader version

-

DEPENDENT hikvision_cam.boot_version

Preprocessing:

- JSONPATH: $.DeviceInfo.bootVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Current device time

-

DEPENDENT hikvision_cam.current_device_time

Preprocessing:

- JSONPATH: $.DeviceStatus.currentDeviceTime

⛔️ON_FAIL: DISCARD_VALUE ->

Hikvision camera Hikvision camera: Device description

-

DEPENDENT hikvision_cam.device_description

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceDescription

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Device ID

-

DEPENDENT hikvision_cam.device_id

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceID

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Device location

-

DEPENDENT hikvision_cam.device_location

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceLocation

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Device name

-

DEPENDENT hikvision_cam.device_name

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceName

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Hikvision camera Hikvision camera: Device type

-

DEPENDENT hikvision_cam.device_type

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceType

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Encoder released date

-

DEPENDENT hikvision_cam.encoder_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.encoderReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Encoder version

-

DEPENDENT hikvision_cam.encoder_version

Preprocessing:

- JSONPATH: $.DeviceInfo.encoderVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Firmware released date

-

DEPENDENT hikvision_cam.firmware_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.firmwareReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Firmware version

-

DEPENDENT hikvision_cam.firmware_version

Preprocessing:

- JSONPATH: $.DeviceInfo.firmwareVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Hardware version

-

DEPENDENT hikvision_cam.hardware_version

Preprocessing:

- JSONPATH: $.DeviceInfo.hardwareVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: MACaddress

-

DEPENDENT hikvision_cam.mac_address

Preprocessing:

- JSONPATH: $.DeviceInfo.macAddress

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Model

-

DEPENDENT hikvision_cam.model

Preprocessing:

- JSONPATH: $.DeviceInfo.model

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Serial number

-

DEPENDENT hikvision_cam.serial_number

Preprocessing:

- JSONPATH: $.DeviceInfo.serialNumber

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Supported beep

-

DEPENDENT hikvision_cam.support_beep

Preprocessing:

- JSONPATH: $.DeviceInfo.supportBeep

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Supported video loss

-

DEPENDENT hikvision_cam.support_video_loss

Preprocessing:

- JSONPATH: $.DeviceInfo.supportVideoLoss

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: System contact

-

DEPENDENT hikvision_cam.system_contact

Preprocessing:

- JSONPATH: $.DeviceInfo.systemContact

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision camera Hikvision camera: Telecontrol ID

-

DEPENDENT hikvision_cam.telecontrol_id

Preprocessing:

- JSONPATH: $.DeviceInfo.telecontrolID

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Memory Hikvision camera: Memory utilization

Memory utilization in %

DEPENDENT hikvision_cam.memory.usage

Preprocessing:

- JSONPATH: $.DeviceStatus.MemoryList.Memory.memoryUsage

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Absolute zoom

-

DEPENDENT hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.absoluteZoom

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.1

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Azimuth

-

DEPENDENT hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.azimuth

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.1

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Elevation

-

DEPENDENT hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.elevation

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.1

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status Hikvision camera: Get device info: Login status

-

DEPENDENT hikvision_cam.get_info.login_status

Preprocessing:

- JAVASCRIPT: var data = JSON.parse(value); if ("html" in data){ if (data.html.head.title === "Document Error: Unauthorized") {return 1} else if (data.html.head.title === "Connection error") {return 2} } return 0;

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status Hikvision camera: Get system status: Login status

-

DEPENDENT hikvision_cam.get_status.login_status

Preprocessing:

- JAVASCRIPT: var data = JSON.parse(value); if ("html" in data){ if (data.html.head.title === "Document Error: Unauthorized") {return 1} else if (data.html.head.title === "Connection error") {return 2} } return 0;

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status Hikvision camera: Get streaming channels: Login status

-

DEPENDENT hikvision_cam.get_streaming.login_status

Preprocessing:

- JAVASCRIPT: var data = JSON.parse(value); if ("html" in data){ if (data.html.head.title === "Document Error: Unauthorized") {return 1} else if (data.html.head.title === "Connection error") {return 2} } return 0;

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status Hikvision camera: Uptime

System uptime in 'N days, hh:mm:ss' format.

DEPENDENT hikvision_cam.uptime

Preprocessing:

- JSONPATH: $.DeviceStatus.deviceUpTime

⛔️ON_FAIL: DISCARD_VALUE ->

Streaming Channel Channel "{#CHANNEL_ID}": Constant bitRate

-

DEPENDENT hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.constantBitRate

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $.[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Fixed quality

-

DEPENDENT hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.fixedQuality

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": GovLength

-

DEPENDENT hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.GovLength

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": H264Profile

-

DEPENDENT hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.H264Profile

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Key frame interval

-

DEPENDENT hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.keyFrameInterval

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.01

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Frame rate (max)

-

DEPENDENT hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.maxFrameRate

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.01

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Smoothing

-

DEPENDENT hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.smoothing

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Snapshot image type

-

DEPENDENT hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.snapShotImageType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": VBR lower

-

DEPENDENT hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.vbrLowerCap

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": VBR upper

-

DEPENDENT hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.vbrUpperCap

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

Streaming Channel Channel "{#CHANNEL_ID}": Video codec type

-

DEPENDENT hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoCodecType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Video quality control type

-

DEPENDENT hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoQualityControlType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Resolution height

-

DEPENDENT hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoResolutionHeight

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Resolution width

-

DEPENDENT hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoResolutionWidth

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming Channel Channel "{#CHANNEL_ID}": Video scan type

-

DEPENDENT hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoScanType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Zabbix raw items Hikvision camera: Get device info

Used to get the device information

HTTP_AGENT hikvision_cam.get_info

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix raw items Hikvision camera: Get system status

It is used to get the status information of the device

HTTP_AGENT hikvision_cam.get_status

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix raw items Hikvision camera: Get streaming channels

Used to get the properties of streaming channels for the device

HTTP_AGENT hikvision_cam.get_streaming

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix raw items Hikvision camera: Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status

-

DEPENDENT hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JAVASCRIPT: var data = JSON.parse(value); if ("html" in data){ if (data.html.head.title === "Document Error: Unauthorized") {return 1} else if (data.html.head.title === "Connection error") {return 2} } return 0;

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Zabbix raw items Hikvision camera: Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP_AGENT hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision camera: High CPU utilization

CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} WARNING
Hikvision camera: Version has changed

Hikvision camera version has changed. Ack to close.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 INFO

Manual close: YES

Hikvision camera: Camera has been replaced

Camera serial number has changed. Ack to close

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 INFO

Manual close: YES

Hikvision camera: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} AVERAGE
Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) INFO

Manual close: YES

Hikvision camera: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 WARNING

Manual close: YES

Hikvision camera: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 WARNING

Manual close: YES

Hikvision camera: has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m INFO

Manual close: YES

Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px

received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} WARNING

Manual close: YES

Channel "{#CHANNEL_ID}": Parameters of video stream are changed

-

last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) INFO

Manual close: YES

Hikvision camera: Authorisation error on get PTZ channels

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 WARNING

Manual close: YES

Depends on:

- Hikvision camera: Authorisation error

Hikvision camera: Error receiving data on PTZ channels

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 WARNING

Manual close: YES

Depends on:

- Hikvision camera: Error receiving data

Feedback

Please report any issues with the template at https://support.zabbix.com

This template is for Zabbix version: 6.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/6.0

Hikvision camera by HTTP

Overview

This template is designed for the effortless deployment of Hikvision cameras monitoring by Zabbix via HTTP and doesn't require any external scripts.

Sample device overview page

Requirements

Zabbix version: 6.0 and higher.

Tested versions

This template has been tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Set the hostname or IP address of the Hikvision ISAPI host in the {$HIKVISION_ISAPI_HOST} macro.

  2. Set the user name and password in the {$PASSWORD} and {$USER} macros.

  3. Change other macros according to your camera configuration if necessary.

Macros used

Name Description Default
{$CPU.UTIL.CRIT} 90
{$HIKVISION_ISAPI_HOST}

The hostname or IP address of the Hikvision ISAPI host.

<SET ISAPI HOST>
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX} 95
{$PASSWORD} 1234
{$USER} admin

Items

Name Description Type Key and additional info
Hikvision camera: Boot loader released date Dependent item hikvision_cam.boot_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.bootReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Boot loader version Dependent item hikvision_cam.boot_version

Preprocessing

  • JSON Path: $.DeviceInfo.bootVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: CPU utilization

CPU utilization in %

Dependent item hikvision_cam.cpu.util

Preprocessing

  • JSON Path: $.DeviceStatus.CPUList.CPU.cpuUtilization

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Current device time Dependent item hikvision_cam.current_device_time

Preprocessing

  • JSON Path: $.DeviceStatus.currentDeviceTime

    ⛔️Custom on fail: Discard value

Hikvision camera: Device description Dependent item hikvision_cam.device_description

Preprocessing

  • JSON Path: $.DeviceInfo.deviceDescription

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device ID Dependent item hikvision_cam.device_id

Preprocessing

  • JSON Path: $.DeviceInfo.deviceID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device location Dependent item hikvision_cam.device_location

Preprocessing

  • JSON Path: $.DeviceInfo.deviceLocation

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Device name Dependent item hikvision_cam.device_name

Preprocessing

  • JSON Path: $.DeviceInfo.deviceName

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1d

Hikvision camera: Device type Dependent item hikvision_cam.device_type

Preprocessing

  • JSON Path: $.DeviceInfo.deviceType

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Encoder released date Dependent item hikvision_cam.encoder_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.encoderReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Encoder version Dependent item hikvision_cam.encoder_version

Preprocessing

  • JSON Path: $.DeviceInfo.encoderVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Firmware released date Dependent item hikvision_cam.firmware_released_date

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareReleasedDate

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Firmware version Dependent item hikvision_cam.firmware_version

Preprocessing

  • JSON Path: $.DeviceInfo.firmwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Get device info

Used to get the device information

HTTP agent hikvision_cam.get_info

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get device info: Login status Dependent item hikvision_cam.get_info.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get system status

It is used to get the status information of the device

HTTP agent hikvision_cam.get_status

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get system status: Login status Dependent item hikvision_cam.get_status.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get streaming channels

Used to get the properties of streaming channels for the device

HTTP agent hikvision_cam.get_streaming

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Hikvision camera: Get streaming channels: Login status Dependent item hikvision_cam.get_streaming.login_status

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Hardware version Dependent item hikvision_cam.hardware_version

Preprocessing

  • JSON Path: $.DeviceInfo.hardwareVersion

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: MACaddress Dependent item hikvision_cam.mac_address

Preprocessing

  • JSON Path: $.DeviceInfo.macAddress

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Memory utilization

Memory utilization in %

Dependent item hikvision_cam.memory.usage

Preprocessing

  • JSON Path: $.DeviceStatus.MemoryList.Memory.memoryUsage

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Model Dependent item hikvision_cam.model

Preprocessing

  • JSON Path: $.DeviceInfo.model

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Serial number Dependent item hikvision_cam.serial_number

Preprocessing

  • JSON Path: $.DeviceInfo.serialNumber

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Supported beep Dependent item hikvision_cam.support_beep

Preprocessing

  • JSON Path: $.DeviceInfo.supportBeep

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Supported video loss Dependent item hikvision_cam.support_video_loss

Preprocessing

  • JSON Path: $.DeviceInfo.supportVideoLoss

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: System contact Dependent item hikvision_cam.system_contact

Preprocessing

  • JSON Path: $.DeviceInfo.systemContact

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Telecontrol ID Dependent item hikvision_cam.telecontrol_id

Preprocessing

  • JSON Path: $.DeviceInfo.telecontrolID

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 24h

Hikvision camera: Uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Dependent item hikvision_cam.uptime

Preprocessing

  • JSON Path: $.DeviceStatus.deviceUpTime

    ⛔️Custom on fail: Discard value

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision camera: High CPU utilization

The CPU utilization is too high. The system might be slow to respond.

min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning
Hikvision camera: Version has changed

Hikvision camera version has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0 Info Manual close: Yes
Hikvision camera: Authorisation error

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 Warning Manual close: Yes
Hikvision camera: Error receiving data

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 Warning Manual close: Yes
Hikvision camera: High memory utilization

The system is running out of free memory.

min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX} Average
Hikvision camera: Camera has been replaced

Camera serial number has changed. Acknowledge to close the problem manually.

last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2) and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0 Info Manual close: Yes
Hikvision camera: has been restarted

Uptime is less than 10 minutes.

last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m Info Manual close: Yes

LLD rule PTZ discovery

Name Description Type Key and additional info
PTZ discovery HTTP agent hikvision_cam.ptz.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for PTZ discovery

Name Description Type Key and additional info
Hikvision camera: Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status Dependent item hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

  • Discard unchanged with heartbeat: 1h

Hikvision camera: Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP agent hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing

  • Check for not supported value:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

  • XML to JSON:

    ⛔️Custom on fail: Set value to: {"html":{"head":{"title":"Connection error"}}}

Channel "{#PTZ_CHANNEL_ID}": Absolute zoom Dependent item hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.absoluteZoom

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Azimuth Dependent item hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.azimuth

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#PTZ_CHANNEL_ID}": Elevation Dependent item hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing

  • JSON Path: $.PTZStatus.AbsoluteHigh.elevation

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.1

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for PTZ discovery

Name Description Expression Severity Dependencies and additional info
Hikvision camera: Authorisation error on get PTZ channels

Check the correctness of the authorization data

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1 Warning Manual close: Yes
Depends on:
  • Hikvision camera: Authorisation error
Hikvision camera: Error receiving data on PTZ channels

Check the availability of the HTTP port

last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2 Warning Manual close: Yes
Depends on:
  • Hikvision camera: Error receiving data
Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2) Info Manual close: Yes

LLD rule Streaming channels discovery

Name Description Type Key and additional info
Streaming channels discovery HTTP agent hikvision_cam.streaming.discovery

Preprocessing

  • XML to JSON:
  • JavaScript: The text is too long. Please see the template.

Item prototypes for Streaming channels discovery

Name Description Type Key and additional info
Channel "{#CHANNEL_ID}": Constant bitRate Dependent item hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $.[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Fixed quality Dependent item hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": GovLength Dependent item hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": H264Profile Dependent item hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Key frame interval Dependent item hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Frame rate (max) Dependent item hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Custom multiplier: 0.01

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Smoothing Dependent item hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Snapshot image type Dependent item hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR lower Dependent item hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": VBR upper Dependent item hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

Channel "{#CHANNEL_ID}": Video codec type Dependent item hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video quality control type Dependent item hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution height Dependent item hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Resolution width Dependent item hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Channel "{#CHANNEL_ID}": Video scan type Dependent item hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Discard value

  • JSON Path: $[0]

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Streaming channels discovery

Name Description Expression Severity Dependencies and additional info
Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px
received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} Warning Manual close: Yes
Channel "{#CHANNEL_ID}": Parameters of video stream are changed last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2) or last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2) Info Manual close: Yes

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

This template is for Zabbix version: 5.4

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/5.4

Hikvision camera by HTTP

Overview

For Zabbix version: 5.4 and higher
Sample device overview page: https://www.hikvision.com/en/products/IP-Products/Network-Cameras/

This template was tested on:

  • DS-I220
  • DS-I450
  • DS-2CD2620F-I
  • DS-2CD1631FWD-I
  • DS-2CD2020F-I
  • DS-2CD2042WD-I
  • DS-2CD2T43G0-I5
  • DS-2DF5286-AEL
  • DS-2CD2T25FWD-I5
  • DS-2CD4A35FWD-IZHS
  • DS-I200
  • DS-2CD1031-I
  • DS-2CD2125FWD-IS
  • DS-I122
  • DS-I203
  • DS-N201
  • DS-2CD2622FWD-IZS
  • DS-2CD2023G0-I

Setup

See Zabbix template operation for basic instructions.

Define macros according to your camera configuration

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$CPU.UTIL.CRIT}

-

90
{$HIKVISION_ISAPI_PORT}

ISAPI port on device

80
{$HIKVISION_MAIN_CHANNEL_ID}

Main video stream ID

101
{$HIKVISION_STREAM_HEIGHT}

Main video stream image height

1080
{$HIKVISION_STREAM_WIDTH}

Main video stream image width

1920
{$MEMORY.UTIL.MAX}

-

95
{$PASSWORD}

-

1234
{$USER}

-

admin

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
PTZ discovery

-

HTTP_AGENT hikvision_cam.ptz.discovery

Preprocessing:

- XML_TO_JSON: ``

- JAVASCRIPT: Text is too long. Please see the template.

Streaming channels discovery

-

HTTP_AGENT hikvision_cam.streaming.discovery

Preprocessing:

- XML_TO_JSON: ``

- JAVASCRIPT: Text is too long. Please see the template.

Filter:

AND

- A: {#CHANNEL_ENABLED} MATCHES_REGEX true

Items collected

Group Name Description Type Key and additional info
CPU Hikvision camera: CPU utilization

CPU utilization in %

DEPENDENT hikvision_cam.cpu.util

Preprocessing:

- JSONPATH: $.DeviceStatus.CPUList.CPU.cpuUtilization

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Hikvision_camera Hikvision camera: Get device info: Login status

-

DEPENDENT hikvision_cam.get_info.login_status

Preprocessing:

- JAVASCRIPT: Text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Hikvision_camera Hikvision camera: Get system status: Login status

-

DEPENDENT hikvision_cam.get_status.login_status

Preprocessing:

- JAVASCRIPT: Text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Hikvision_camera Hikvision camera: Get streaming channels: Login status

-

DEPENDENT hikvision_cam.get_streaming.login_status

Preprocessing:

- JAVASCRIPT: Text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Hikvision_camera Hikvision camera: Device name

-

DEPENDENT hikvision_cam.device_name

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceName

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Hikvision_camera Hikvision camera: Device ID

-

DEPENDENT hikvision_cam.device_id

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceID

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Device description

-

DEPENDENT hikvision_cam.device_description

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceDescription

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Device location

-

DEPENDENT hikvision_cam.device_location

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceLocation

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: System contact

-

DEPENDENT hikvision_cam.system_contact

Preprocessing:

- JSONPATH: $.DeviceInfo.systemContact

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Model

-

DEPENDENT hikvision_cam.model

Preprocessing:

- JSONPATH: $.DeviceInfo.model

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Serial number

-

DEPENDENT hikvision_cam.serial_number

Preprocessing:

- JSONPATH: $.DeviceInfo.serialNumber

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: MACaddress

-

DEPENDENT hikvision_cam.mac_address

Preprocessing:

- JSONPATH: $.DeviceInfo.macAddress

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Firmware version

-

DEPENDENT hikvision_cam.firmware_version

Preprocessing:

- JSONPATH: $.DeviceInfo.firmwareVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Firmware released date

-

DEPENDENT hikvision_cam.firmware_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.firmwareReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Encoder version

-

DEPENDENT hikvision_cam.encoder_version

Preprocessing:

- JSONPATH: $.DeviceInfo.encoderVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Encoder released date

-

DEPENDENT hikvision_cam.encoder_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.encoderReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Boot loader version

-

DEPENDENT hikvision_cam.boot_version

Preprocessing:

- JSONPATH: $.DeviceInfo.bootVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Boot loader released date

-

DEPENDENT hikvision_cam.boot_released_date

Preprocessing:

- JSONPATH: $.DeviceInfo.bootReleasedDate

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Hardware version

-

DEPENDENT hikvision_cam.hardware_version

Preprocessing:

- JSONPATH: $.DeviceInfo.hardwareVersion

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Device type

-

DEPENDENT hikvision_cam.device_type

Preprocessing:

- JSONPATH: $.DeviceInfo.deviceType

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Telecontrol ID

-

DEPENDENT hikvision_cam.telecontrol_id

Preprocessing:

- JSONPATH: $.DeviceInfo.telecontrolID

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Supported beep

-

DEPENDENT hikvision_cam.support_beep

Preprocessing:

- JSONPATH: $.DeviceInfo.supportBeep

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Supported video loss

-

DEPENDENT hikvision_cam.support_video_loss

Preprocessing:

- JSONPATH: $.DeviceInfo.supportVideoLoss

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 24h

Hikvision_camera Hikvision camera: Current device time

-

DEPENDENT hikvision_cam.current_device_time

Preprocessing:

- JSONPATH: $.DeviceStatus.currentDeviceTime

⛔️ON_FAIL: DISCARD_VALUE ->

Memory Hikvision camera: Memory utilization

Memory utilization in %

DEPENDENT hikvision_cam.memory.usage

Preprocessing:

- JSONPATH: $.DeviceStatus.MemoryList.Memory.memoryUsage

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Get PTZ info: Channel "{#PTZ_CHANNEL_ID}": Login status

-

DEPENDENT hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JAVASCRIPT: Text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Elevation

-

DEPENDENT hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.elevation

- MULTIPLIER: 0.1

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Azimuth

-

DEPENDENT hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.azimuth

- MULTIPLIER: 0.1

- DISCARD_UNCHANGED_HEARTBEAT: 1h

PTZ Channel "{#PTZ_CHANNEL_ID}": Absolute zoom

-

DEPENDENT hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.PTZStatus.AbsoluteHigh.absoluteZoom

- MULTIPLIER: 0.1

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status Hikvision camera: Uptime

System uptime in 'N days, hh:mm:ss' format.

DEPENDENT hikvision_cam.uptime

Preprocessing:

- JSONPATH: $.DeviceStatus.deviceUpTime

⛔️ON_FAIL: DISCARD_VALUE ->

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Video codec type

-

DEPENDENT hikvision_cam.video_codec_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoCodecType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Video scan type

-

DEPENDENT hikvision_cam.video_scan_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoScanType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Resolution width

-

DEPENDENT hikvision_cam.video_resolution_width[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoResolutionWidth

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Resolution height

-

DEPENDENT hikvision_cam.video_resolution_height[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoResolutionHeight

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Video quality control type

-

DEPENDENT hikvision_cam.video_quality_control_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.videoQualityControlType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Constant bitRate

-

DEPENDENT hikvision_cam.constant_bit_rate[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.constantBitRate

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Fixed quality

-

DEPENDENT hikvision_cam.fixed_quality[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.fixedQuality

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": VBR upper

-

DEPENDENT hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.vbrUpperCap

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": VBR lower

-

DEPENDENT hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.vbrLowerCap

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Frame rate (max)

-

DEPENDENT hikvision_cam.max_frame_rate[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.maxFrameRate

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.01

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Key frame interval

-

DEPENDENT hikvision_cam.key_frame_interval[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.keyFrameInterval

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- MULTIPLIER: 0.01

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Snapshot image type

-

DEPENDENT hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.snapShotImageType

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": H264Profile

-

DEPENDENT hikvision_cam.h264Profile[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.H264Profile

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": GovLength

-

DEPENDENT hikvision_cam.gov_length[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.GovLength

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Streaming_Channel_{#CHANNEL_ID} Channel "{#CHANNEL_ID}": Smoothing

-

DEPENDENT hikvision_cam.smoothing[{#CHANNEL_ID}]

Preprocessing:

- JSONPATH: $.StreamingChannelList.StreamingChannel[?(@.id=={#CHANNEL_ID})].Video.smoothing

⛔️ON_FAIL: DISCARD_VALUE ->

- JSONPATH: $[0]

⛔️ON_FAIL: DISCARD_VALUE ->

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Zabbix_raw_items Hikvision camera: Get device info

Used to get the device information

HTTP_AGENT hikvision_cam.get_info

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix_raw_items Hikvision camera: Get system status

It is used to get the status information of the device

HTTP_AGENT hikvision_cam.get_status

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix_raw_items Hikvision camera: Get streaming channels

Used to get the properties of streaming channels for the device

HTTP_AGENT hikvision_cam.get_streaming

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Zabbix_raw_items Hikvision camera: Get PTZ info

High precision positioning which is accurate to a bit after the decimal point

HTTP_AGENT hikvision_cam.get_ptz[{#PTZ_CHANNEL_ID}]

Preprocessing:

- CHECK_NOT_SUPPORTED: </p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}`</p><p>- XML_TO_JSON:

⛔️ON_FAIL: CUSTOM_VALUE -> {"html":{"head":{"title":"Connection error"}}}

Triggers

Name Description Expression Severity Dependencies and additional info
Hikvision camera: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)

CPU utilization is too high. The system might be slow to respond.

{TEMPLATE_NAME:hikvision_cam.cpu.util.min(5m)}>{$CPU.UTIL.CRIT} WARNING
Hikvision camera: Error receiving data

Check the availability of the HTTP port

{Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=2 or {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=2 or {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=2 WARNING

Manual close: YES

Hikvision camera: Authorisation error

Check the correctness of the authorization data

{Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=1 or {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=1 or {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=1 WARNING

Manual close: YES

Hikvision camera: Camera has been replaced (new serial number received)

Camera serial number has changed. Ack to close

{TEMPLATE_NAME:hikvision_cam.serial_number.diff()}=1 and {TEMPLATE_NAME:hikvision_cam.serial_number.strlen()}>0 INFO

Manual close: YES

Hikvision camera: Version has changed (new version: {ITEM.VALUE})

Hikvision camera version has changed. Ack to close.

{TEMPLATE_NAME:hikvision_cam.firmware_version.diff()}=1 and {TEMPLATE_NAME:hikvision_cam.firmware_version.strlen()}>0 INFO

Manual close: YES

Hikvision camera: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)

The system is running out of free memory.

{TEMPLATE_NAME:hikvision_cam.memory.usage.min(5m)}>{$MEMORY.UTIL.MAX} AVERAGE
Channel "{#PTZ_CHANNEL_ID}": Error receiving data

Check the availability of the HTTP port

{TEMPLATE_NAME:hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}].last()}=2 WARNING

Manual close: YES

Channel "{#PTZ_CHANNEL_ID}": Authorisation error

Check the correctness of the authorization data

{TEMPLATE_NAME:hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}].last()}=1 WARNING

Manual close: YES

Channel "{#PTZ_CHANNEL_ID}": PTZ position changed

The direction of the camera has changed

{TEMPLATE_NAME:hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}].diff()}=1 INFO

Manual close: YES

Hikvision camera: has been restarted (uptime < 10m)

Uptime is less than 10 minutes

{TEMPLATE_NAME:hikvision_cam.uptime.last()}<10m INFO

Manual close: YES

Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters

expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px

received: {ITEM.LASTVALUE2} x {ITEM.LASTVALUE1}

{TEMPLATE_NAME:hikvision_cam.video_resolution_height[{#CHANNEL_ID}].last()}<>{$HIKVISION_STREAM_HEIGHT} or {Hikvision camera by HTTP:hikvision_cam.video_resolution_width[{#CHANNEL_ID}].last()}<>{$HIKVISION_STREAM_WIDTH} WARNING

Manual close: YES

Channel "{#CHANNEL_ID}": Parameters of video stream are changed

-

{TEMPLATE_NAME:hikvision_cam.fixed_quality[{#CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.constant_bit_rate[{#CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.video_quality_control_type[{#CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.video_resolution_width[{#CHANNEL_ID}].diff()}=1 or {Hikvision camera by HTTP:hikvision_cam.video_resolution_height[{#CHANNEL_ID}].diff()}=1 INFO

Manual close: YES

Feedback

Please report any issues with the template at https://support.zabbix.com

Articles and documentation

+ Propose new article

Media

👁 Мониторинг камер HikVision с Zabbix
Мониторинг камер HikVision с Zabbix
👁 Image

Request custom integration

Zabbix integration team will develop custom integration based on your requirements and Zabbix best practices.

Request
👁 Image

Propose integration

Have you already developed high quality integration and want to submit to Zabbix integration repository?

Propose