Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cctv/hikvision?at=release/6.4
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 Overrides: trigger disabled non main channels |
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: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Boot loader released date | - |
DEPENDENT | hikvision_cam.boot_released_date Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Boot loader version | - |
DEPENDENT | hikvision_cam.boot_version Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Current device time | - |
DEPENDENT | hikvision_cam.current_device_time Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
Hikvision camera | Hikvision camera: Device description | - |
DEPENDENT | hikvision_cam.device_description Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Device ID | - |
DEPENDENT | hikvision_cam.device_id Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Device location | - |
DEPENDENT | hikvision_cam.device_location Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Device name | - |
DEPENDENT | hikvision_cam.device_name Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Device type | - |
DEPENDENT | hikvision_cam.device_type Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Encoder released date | - |
DEPENDENT | hikvision_cam.encoder_released_date Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Encoder version | - |
DEPENDENT | hikvision_cam.encoder_version Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Firmware released date | - |
DEPENDENT | hikvision_cam.firmware_released_date Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Firmware version | - |
DEPENDENT | hikvision_cam.firmware_version Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Hardware version | - |
DEPENDENT | hikvision_cam.hardware_version Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: MACaddress | - |
DEPENDENT | hikvision_cam.mac_address Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Model | - |
DEPENDENT | hikvision_cam.model Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Serial number | - |
DEPENDENT | hikvision_cam.serial_number Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Supported beep | - |
DEPENDENT | hikvision_cam.support_beep Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Supported video loss | - |
DEPENDENT | hikvision_cam.support_video_loss Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: System contact | - |
DEPENDENT | hikvision_cam.system_contact Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Hikvision camera | Hikvision camera: Telecontrol ID | - |
DEPENDENT | hikvision_cam.telecontrol_id Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Memory | Hikvision camera: Memory utilization | Memory utilization in % |
DEPENDENT | hikvision_cam.memory.usage Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
PTZ | Channel "{#PTZ_CHANNEL_ID}": Absolute zoom | - |
DEPENDENT | hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
PTZ | Channel "{#PTZ_CHANNEL_ID}": Azimuth | - |
DEPENDENT | hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
PTZ | Channel "{#PTZ_CHANNEL_ID}": Elevation | - |
DEPENDENT | hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Status | Hikvision camera: Get device info: Login status | - |
DEPENDENT | hikvision_cam.get_info.login_status Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Status | Hikvision camera: Get system status: Login status | - |
DEPENDENT | hikvision_cam.get_status.login_status Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Status | Hikvision camera: Get streaming channels: Login status | - |
DEPENDENT | hikvision_cam.get_streaming.login_status Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
Status | Hikvision camera: Uptime | System uptime in 'N days, hh:mm:ss' format. |
DEPENDENT | hikvision_cam.uptime Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
Streaming Channel | Channel "{#CHANNEL_ID}": Constant bitRate | - |
DEPENDENT | hikvision_cam.constant_bit_rate[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Fixed quality | - |
DEPENDENT | hikvision_cam.fixed_quality[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": GovLength | - |
DEPENDENT | hikvision_cam.gov_length[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": H264Profile | - |
DEPENDENT | hikvision_cam.h264Profile[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Key frame interval | - |
DEPENDENT | hikvision_cam.key_frame_interval[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Frame rate (max) | - |
DEPENDENT | hikvision_cam.max_frame_rate[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - MULTIPLIER: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Smoothing | - |
DEPENDENT | hikvision_cam.smoothing[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Snapshot image type | - |
DEPENDENT | hikvision_cam.snap_shot_image_type[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": VBR lower | - |
DEPENDENT | hikvision_cam.vbr_lower_cap[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": VBR upper | - |
DEPENDENT | hikvision_cam.vbr_upper_cap[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: |
Streaming Channel | Channel "{#CHANNEL_ID}": Video codec type | - |
DEPENDENT | hikvision_cam.video_codec_type[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Video quality control type | - |
DEPENDENT | hikvision_cam.video_quality_control_type[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Resolution height | - |
DEPENDENT | hikvision_cam.video_resolution_height[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Resolution width | - |
DEPENDENT | hikvision_cam.video_resolution_width[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Streaming Channel | Channel "{#CHANNEL_ID}": Video scan type | - |
DEPENDENT | hikvision_cam.video_scan_type[{#CHANNEL_ID}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
Zabbix raw items | Hikvision camera: Get device info | Used to get the device information |
HTTP_AGENT | hikvision_cam.get_info Preprocessing: - CHECK_NOT_SUPPORTED: ⛔️ON_FAIL: |
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: ⛔️ON_FAIL: |
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: ⛔️ON_FAIL: |
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: - DISCARD_UNCHANGED_HEARTBEAT: |
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: ⛔️ON_FAIL: |
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