# Hikvision camera by HTTP ## Overview Sample device overview page: https://www.hikvision.com/en/products/IP-Products/Network-Cameras/ ## 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](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup Define macros according to your camera configuration ### 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`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Hikvision camera: Boot loader released date||Dependent item|hikvision_cam.boot_released_date

**Preprocessing**

| |Hikvision camera: Boot loader version||Dependent item|hikvision_cam.boot_version

**Preprocessing**

| |Hikvision camera: CPU utilization|

CPU utilization in %

|Dependent item|hikvision_cam.cpu.util

**Preprocessing**

| |Hikvision camera: Current device time||Dependent item|hikvision_cam.current_device_time

**Preprocessing**

| |Hikvision camera: Device description||Dependent item|hikvision_cam.device_description

**Preprocessing**

| |Hikvision camera: Device ID||Dependent item|hikvision_cam.device_id

**Preprocessing**

| |Hikvision camera: Device location||Dependent item|hikvision_cam.device_location

**Preprocessing**

| |Hikvision camera: Device name||Dependent item|hikvision_cam.device_name

**Preprocessing**

| |Hikvision camera: Device type||Dependent item|hikvision_cam.device_type

**Preprocessing**

| |Hikvision camera: Encoder released date||Dependent item|hikvision_cam.encoder_released_date

**Preprocessing**

| |Hikvision camera: Encoder version||Dependent item|hikvision_cam.encoder_version

**Preprocessing**

| |Hikvision camera: Firmware released date||Dependent item|hikvision_cam.firmware_released_date

**Preprocessing**

| |Hikvision camera: Firmware version||Dependent item|hikvision_cam.firmware_version

**Preprocessing**

| |Hikvision camera: Get device info|

Used to get the device information

|HTTP agent|hikvision_cam.get_info

**Preprocessing**

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

**Preprocessing**

| |Hikvision camera: Get system status|

It is used to get the status information of the device

|HTTP agent|hikvision_cam.get_status

**Preprocessing**

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

**Preprocessing**

| |Hikvision camera: Get streaming channels|

Used to get the properties of streaming channels for the device

|HTTP agent|hikvision_cam.get_streaming

**Preprocessing**

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

**Preprocessing**

| |Hikvision camera: Hardware version||Dependent item|hikvision_cam.hardware_version

**Preprocessing**

| |Hikvision camera: MACaddress||Dependent item|hikvision_cam.mac_address

**Preprocessing**

| |Hikvision camera: Memory utilization|

Memory utilization in %

|Dependent item|hikvision_cam.memory.usage

**Preprocessing**

| |Hikvision camera: Model||Dependent item|hikvision_cam.model

**Preprocessing**

| |Hikvision camera: Serial number||Dependent item|hikvision_cam.serial_number

**Preprocessing**

| |Hikvision camera: Supported beep||Dependent item|hikvision_cam.support_beep

**Preprocessing**

| |Hikvision camera: Supported video loss||Dependent item|hikvision_cam.support_video_loss

**Preprocessing**

| |Hikvision camera: System contact||Dependent item|hikvision_cam.system_contact

**Preprocessing**

| |Hikvision camera: Telecontrol ID||Dependent item|hikvision_cam.telecontrol_id

**Preprocessing**

| |Hikvision camera: Uptime|

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

|Dependent item|hikvision_cam.uptime

**Preprocessing**

| ### 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**

| ### 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**

| |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**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

| ### 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: 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**:
| |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**

| ### 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**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

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

**Preprocessing**

| ### 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`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)