Available solutions
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.
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
-
Set the hostname or IP address of the Hikvision ISAPI host in the
{$HIKVISION_ISAPI_HOST}macro. -
Set the user name and password in the
{$PASSWORD}and{$USER}macros. -
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
|
|
| Boot loader version | Dependent item | hikvision_cam.boot_version Preprocessing
|
|
| CPU utilization | CPU utilization in % |
Dependent item | hikvision_cam.cpu.util Preprocessing
|
| Current device time | Dependent item | hikvision_cam.current_device_time Preprocessing
|
|
| Device description | Dependent item | hikvision_cam.device_description Preprocessing
|
|
| Device ID | Dependent item | hikvision_cam.device_id Preprocessing
|
|
| Device location | Dependent item | hikvision_cam.device_location Preprocessing
|
|
| Device name | Dependent item | hikvision_cam.device_name Preprocessing
|
|
| Device type | Dependent item | hikvision_cam.device_type Preprocessing
|
|
| Encoder released date | Dependent item | hikvision_cam.encoder_released_date Preprocessing
|
|
| Encoder version | Dependent item | hikvision_cam.encoder_version Preprocessing
|
|
| Firmware released date | Dependent item | hikvision_cam.firmware_released_date Preprocessing
|
|
| Firmware version | Dependent item | hikvision_cam.firmware_version Preprocessing
|
|
| Get device info | Used to get the device information |
HTTP agent | hikvision_cam.get_info Preprocessing
|
| Get device info: Login status | Dependent item | hikvision_cam.get_info.login_status Preprocessing
|
|
| Get system status | It is used to get the status information of the device |
HTTP agent | hikvision_cam.get_status Preprocessing
|
| Get system status: Login status | Dependent item | hikvision_cam.get_status.login_status Preprocessing
|
|
| Get streaming channels | Used to get the properties of streaming channels for the device |
HTTP agent | hikvision_cam.get_streaming Preprocessing
|
| Get streaming channels: Login status | Dependent item | hikvision_cam.get_streaming.login_status Preprocessing
|
|
| Hardware version | Dependent item | hikvision_cam.hardware_version Preprocessing
|
|
| MACaddress | Dependent item | hikvision_cam.mac_address Preprocessing
|
|
| Memory utilization | Memory utilization in % |
Dependent item | hikvision_cam.memory.usage Preprocessing
|
| Model | Dependent item | hikvision_cam.model Preprocessing
|
|
| Serial number | Dependent item | hikvision_cam.serial_number Preprocessing
|
|
| Supported beep | Dependent item | hikvision_cam.support_beep Preprocessing
|
|
| Supported video loss | Dependent item | hikvision_cam.support_video_loss Preprocessing
|
|
| System contact | Dependent item | hikvision_cam.system_contact Preprocessing
|
|
| Telecontrol ID | Dependent item | hikvision_cam.telecontrol_id Preprocessing
|
|
| 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: 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
|
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
|
|
| 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
|
| 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: 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: 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: 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 |
|---|---|---|---|---|
| Hikvision: Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters | expected: {$HIKVISION_STREAM_WIDTH} px x {$HIKVISION_STREAM_HEIGHT} px |
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