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