mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
Added support for HikVision-DS Cameras (#9980)
* Added support for HikVision-DS Cameras clean up removed pointless file, cleaned up code fixed failing unit tests, a bit of cleanup WIP - will rebase split hikvision into hikvision-nvr an hikvision-cam * removed unneeded comment and rec file
This commit is contained in:
parent
54893b9c4e
commit
7bfe0bc831
8
includes/definitions/discovery/hikvision-cam.yaml
Normal file
8
includes/definitions/discovery/hikvision-cam.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
mib: HIK-DEVICE-MIB:HIKVISION-MIB
|
||||
modules:
|
||||
processors:
|
||||
data:
|
||||
-
|
||||
oid: cpuPercent
|
||||
num_oid: '.1.3.6.1.4.1.39165.1.7.{{ $index }}'
|
||||
index: 0
|
14
includes/definitions/hikvision-cam.yaml
Normal file
14
includes/definitions/hikvision-cam.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
os: hikvision-cam
|
||||
text: 'Hikvision Camera'
|
||||
type: network
|
||||
icon: hikvision
|
||||
mib_dir:
|
||||
- hikvision
|
||||
over:
|
||||
- { graph: device_processor, text: 'CPU Usage' }
|
||||
- { graph: device_mempool, text: 'Memory Usage' }
|
||||
discovery:
|
||||
- snmpget:
|
||||
oid: .1.3.6.1.4.1.39165.1.1.0
|
||||
op: starts
|
||||
value: 'DS-'
|
14
includes/definitions/hikvision-nvr.yaml
Normal file
14
includes/definitions/hikvision-nvr.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
os: hikvision-nvr
|
||||
text: 'Hikvision NVR'
|
||||
type: network
|
||||
icon: hikvision
|
||||
mib_dir:
|
||||
- hikvision
|
||||
over:
|
||||
- { graph: device_mempool, text: 'Memory Usage' }
|
||||
- { graph: device_uptime, text: 'Device Uptime' }
|
||||
discovery:
|
||||
- sysObjectID:
|
||||
- .1.3.6.1.4.1.50001
|
||||
- sysDescr:
|
||||
- 'Hikvision company products'
|
@ -1,8 +0,0 @@
|
||||
os: hikvision
|
||||
text: Hikvision
|
||||
type: network
|
||||
icon: hikvision
|
||||
over:
|
||||
- { graph: device_uptime, text: 'Device Uptime' }
|
||||
discovery:
|
||||
- sysObjectID: .1.3.6.1.4.1.50001
|
34
includes/discovery/mempools/hikvision-cam.inc.php
Normal file
34
includes/discovery/mempools/hikvision-cam.inc.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* hikvision-cam.inc.php
|
||||
*
|
||||
* LibreNMS mempool discovery module for hikvision-cam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package LibreNMS
|
||||
* @link http://librenms.org
|
||||
* @copyright 2019 Spencer Butler
|
||||
* @author Spencer Butler <github@crooked.app>
|
||||
*/
|
||||
|
||||
if ($device['os'] === 'hikvision-cam') {
|
||||
echo 'hikvision-cam:';
|
||||
|
||||
$index = 0;
|
||||
$type = 'hikvision-cam';
|
||||
$descr = 'Memory';
|
||||
$precision = '1';
|
||||
discover_mempool($valid_mempool, $device, $index, $type, $descr, $precision, null, null);
|
||||
}
|
34
includes/discovery/mempools/hikvision-nvr.inc.php
Normal file
34
includes/discovery/mempools/hikvision-nvr.inc.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* hikvision-nvr.inc.php
|
||||
*
|
||||
* LibreNMS mempool discovery module for hikvision-nvr
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package LibreNMS
|
||||
* @link http://librenms.org
|
||||
* @copyright 2019 Spencer Butler
|
||||
* @author Spencer Butler <github@crooked.app>
|
||||
*/
|
||||
|
||||
if ($device['os'] === 'hikvision-nvr') {
|
||||
echo 'hikvision-nvr:';
|
||||
|
||||
$index = 0;
|
||||
$type = 'hikvision-nvr';
|
||||
$descr = 'Memory';
|
||||
$precision = '1';
|
||||
discover_mempool($valid_mempool, $device, $index, $type, $descr, $precision, null, null);
|
||||
}
|
36
includes/discovery/storage/hikvision-cam.inc.php
Normal file
36
includes/discovery/storage/hikvision-cam.inc.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* hikvision-cam.inc.php
|
||||
*
|
||||
* LibreNMS storage discovery module for hikvision-cam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package LibreNMS
|
||||
* @link http://librenms.org
|
||||
* @copyright 2019 Spencer Butler
|
||||
* @author Spencer Butler <github@crooked.app>
|
||||
*/
|
||||
|
||||
if ($device['os'] === 'hikvision-cam') {
|
||||
echo 'hikvision-cam:';
|
||||
|
||||
$size = snmp_get($device, 'diskSize.0', '-Ovq', 'HIK-DEVICE-MIB');
|
||||
$used = snmp_get($device, 'diskPercent.0', '-Ovq', 'HIK-DEVICE-MIB');
|
||||
$index = 0;
|
||||
$fstype = 'hikvision-cam';
|
||||
$mib = 'HIK-DEVICE-MIB';
|
||||
$descr = 'Storage';
|
||||
discover_storage($valid_storage, $device, $index, $fstype, $mib, $descr, $size, null, $used);
|
||||
}
|
36
includes/discovery/storage/hikvision-nvr.inc.php
Normal file
36
includes/discovery/storage/hikvision-nvr.inc.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* hikvision-nvr.inc.php
|
||||
*
|
||||
* LibreNMS storage discovery module for hikvision-nvr
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @package LibreNMS
|
||||
* @link http://librenms.org
|
||||
* @copyright 2019 Spencer Butler
|
||||
* @author Spencer Butler <github@crooked.app>
|
||||
*/
|
||||
|
||||
if ($device['os'] === 'hikvision-nvr') {
|
||||
echo 'hikvision-nvr:';
|
||||
|
||||
$size = snmp_get($device, 'hikDiskCapability.1.0', '-Ovq', 'HIKVISION-MIB');
|
||||
$free = snmp_get($device, 'hikDiskFreeSpace.1.0', '-Ovq', 'HIKVISION-MIB');
|
||||
$index = 0;
|
||||
$type = 'hikvision-nvr';
|
||||
$descr = 'Storage';
|
||||
$mib = 'HIKVISION-MIB';
|
||||
discover_storage($valid_storage, $device, $index, $type, $mib, $descr, 0, size, null);
|
||||
}
|
10
includes/polling/os/hikvision-cam.inc.php
Normal file
10
includes/polling/os/hikvision-cam.inc.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
$temp_data = snmp_get_multi_oid($device, ['softwVersion.0', 'deviceType.0', 'videoEncode.0', 'videoNetTrans.0'], '-OUQs', 'HIK-DEVICE-MIB');
|
||||
|
||||
$version = $temp_data['softwVersion.0'];
|
||||
$hardware = $temp_data['deviceType.0'];
|
||||
$features = $temp_data['videoEncode.0'];
|
||||
$features .= '-' . $temp_data['videoNetTrans.0'];
|
||||
|
||||
unset($temp_data);
|
10
includes/polling/os/hikvision-nvr.inc.php
Normal file
10
includes/polling/os/hikvision-nvr.inc.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
$temp_data = snmp_get_multi_oid($device, ['hikEntity.101.0', 'hikEntityType.0', 'hikEntityIndex.0'], '-OUQs', 'HIKVISION-MIB');
|
||||
|
||||
$hostname =
|
||||
$version = $temp_data['hikEntity.101.0'];
|
||||
$hardware = $temp_data['hikEntityType.0'];
|
||||
$serial = $temp_data['hikEntityIndex.0'];
|
||||
|
||||
unset($temp_data);
|
@ -1,4 +0,0 @@
|
||||
<?php
|
||||
|
||||
$version = trim(snmp_get($device, '.1.3.6.1.4.1.39165.1.3.0', '-OQv', '', ''), '"');
|
||||
$hardware = trim(snmp_get($device, '.1.3.6.1.4.1.39165.1.1.0', '-OQv', '', ''), '"');
|
285
mibs/hikvision/HIK-DEVICE-MIB
Normal file
285
mibs/hikvision/HIK-DEVICE-MIB
Normal file
@ -0,0 +1,285 @@
|
||||
HIK-DEVICE-MIB DEFINITIONS ::=BEGIN
|
||||
|
||||
IMPORTS
|
||||
|
||||
enterprises, OBJECT-TYPE, Integer32,
|
||||
IpAddress FROM SNMPv2-SMI;
|
||||
|
||||
test OBJECT IDENTIFIER ::= { enterprises 39165}
|
||||
devicemib OBJECT IDENTIFIER ::= { test 1 }
|
||||
|
||||
deviceType OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of device."
|
||||
::= { devicemib 1 }
|
||||
|
||||
hardwVersion OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The version of hardware in this device."
|
||||
::= { devicemib 2 }
|
||||
|
||||
softwVersion OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The version of software in this device"
|
||||
::= { devicemib 3 }
|
||||
|
||||
macAddr OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The MAC address of the device."
|
||||
::= { devicemib 4 }
|
||||
|
||||
deviceID OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The code name of manufacturer of this device."
|
||||
::= { devicemib 5 }
|
||||
|
||||
manufacturer OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The manufacturer of this device."
|
||||
::= { devicemib 6 }
|
||||
|
||||
cpuPercent OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Percentage of cpu used on the device."
|
||||
::= { devicemib 7 }
|
||||
|
||||
|
||||
diskSize OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The tatol size of the disk."
|
||||
::= { devicemib 8 }
|
||||
|
||||
diskPercent OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"Percentage of space used on disk."
|
||||
::= { devicemib 9 }
|
||||
|
||||
memSize OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The memory size on the device."
|
||||
::= { devicemib 10 }
|
||||
|
||||
memUsed OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The memory used on the device."
|
||||
::= { devicemib 11 }
|
||||
|
||||
restartDev OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The support of restarting the device."
|
||||
::= { devicemib 12 }
|
||||
|
||||
dynIpAddr OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The dynamic IP address."
|
||||
::= { devicemib 13 }
|
||||
|
||||
dynNetMask OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The dynamic subnet mask associated with the IP address."
|
||||
::= { devicemib 14 }
|
||||
|
||||
dynGateway OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The dynamic gateway address."
|
||||
::= { devicemib 15 }
|
||||
|
||||
staticIpAddr OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The static IP address."
|
||||
::= { devicemib 16 }
|
||||
|
||||
staticNetMask OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The static subnet mask associated with the IP address."
|
||||
::= { devicemib 17 }
|
||||
|
||||
staticGateway OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The static Gateway."
|
||||
::= { devicemib 18 }
|
||||
|
||||
sysTime OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The host's notion of the local date and time of day."
|
||||
::= { devicemib 19 }
|
||||
|
||||
|
||||
videoInChanNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The number of video input channels."
|
||||
::= { devicemib 20 }
|
||||
|
||||
videoEncode OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of video coding."
|
||||
::= { devicemib 21 }
|
||||
|
||||
videoNetTrans OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of video network transmission."
|
||||
::= { devicemib 22 }
|
||||
|
||||
audioAbility OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The ability of audio."
|
||||
::= { devicemib 23 }
|
||||
|
||||
audioInNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The number of audio input."
|
||||
::= { devicemib 24 }
|
||||
|
||||
videoOutNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The number of video output."
|
||||
::= { devicemib 25 }
|
||||
|
||||
clarityChanNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The number of clarity channels."
|
||||
::= { devicemib 26 }
|
||||
|
||||
localStorage OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The support of local storage."
|
||||
::= { devicemib 27 }
|
||||
|
||||
rtspPlayBack OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The support of RTSP lookback."
|
||||
::= { devicemib 28 }
|
||||
|
||||
netAccessType OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The type of network access supported."
|
||||
::= { devicemib 29 }
|
||||
|
||||
alarmInChanNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The num of input channel for alarming."
|
||||
::= { devicemib 30 }
|
||||
|
||||
alarmOutChanNum OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-only
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The num of output channel for alarming."
|
||||
::= { devicemib 31 }
|
||||
|
||||
manageServAddr OBJECT-TYPE
|
||||
SYNTAX IpAddress
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The address of network manage host."
|
||||
::= { devicemib 32 }
|
||||
|
||||
managePort OBJECT-TYPE
|
||||
SYNTAX Integer32
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The port of network manage host."
|
||||
::= { devicemib 34 }
|
||||
|
||||
ntpServIpAddr OBJECT-TYPE
|
||||
SYNTAX OCTET STRING (SIZE (0..255))
|
||||
MAX-ACCESS read-write
|
||||
STATUS current
|
||||
DESCRIPTION
|
||||
"The IP address of NTP server."
|
||||
::= { devicemib 33 }
|
||||
|
||||
END
|
319
mibs/hikvision/HIKVISION-MIB
Normal file
319
mibs/hikvision/HIKVISION-MIB
Normal file
@ -0,0 +1,319 @@
|
||||
HIKVISION-MIB DEFINITIONS ::= BEGIN
|
||||
|
||||
IMPORTS
|
||||
enterprises,
|
||||
Counter
|
||||
FROM RFC1155-SMI
|
||||
OBJECT-TYPE
|
||||
FROM SNMPv2-SMI;
|
||||
|
||||
hikvision OBJECT IDENTIFIER ::= { enterprises 50001 }
|
||||
|
||||
|
||||
hikEntity OBJECT IDENTIFIER ::= { hikvision 1 }
|
||||
|
||||
-- hikvision persistent property
|
||||
|
||||
hikIp OBJECT-TYPE
|
||||
SYNTAX NetworkAddress
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"hikvision device valid ip address"
|
||||
::= { hikEntity 1 }
|
||||
|
||||
hikPort OBJECT-TYPE
|
||||
SYNTAX INTEGER(1..65535)
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"hikvision device valid manager port,default is 8000"
|
||||
::= { hikEntity 2 }
|
||||
|
||||
hikEntityIndex OBJECT-TYPE
|
||||
SYNTAX DisplayString (SIZE (0..128))
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"hikvision device unique index, for DVR this is serial NO."
|
||||
::= { hikEntity 3 }
|
||||
|
||||
hikEntityType OBJECT IDENTIFIER ::= { hikEntity 100 }
|
||||
|
||||
hikEntityType OBJECT-TYPE
|
||||
SYNTAX INTEGER {
|
||||
DVR(1),
|
||||
NVR(2),
|
||||
IPC(3),
|
||||
Unknown(255)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"hikvision products type"
|
||||
::= { hikEntity 100 }
|
||||
|
||||
|
||||
-- these throw errors and prevent translation, spencerbutler 20190319
|
||||
-- hikEntitySubType OBJECT-TYPE
|
||||
-- SYNTAX INTEGER {
|
||||
-- DVR_70xx(1),
|
||||
-- DVR_71xx(2),
|
||||
-- DVR_80xx(20),
|
||||
-- DVR_81xx(21),
|
||||
-- DVR_90xx(40),
|
||||
-- DVR_91xx(41),
|
||||
-- NVR(200),
|
||||
-- IPC(400),
|
||||
-- Unknown(65535)
|
||||
-- }
|
||||
-- ACCESS read-only
|
||||
-- STATUS mandatory
|
||||
-- DESCRIPTION
|
||||
-- "hikvision product sub type"
|
||||
-- ::= { hikEntity 101 }
|
||||
|
||||
hikOnline OBJECT-TYPE
|
||||
SYNTAX INTEGER {
|
||||
Online(1),
|
||||
Absent(2),
|
||||
Unknown(255)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product online status"
|
||||
::= { hikEntity 102 }
|
||||
|
||||
hikService OBJECT-TYPE
|
||||
SYNTAX INTEGER {
|
||||
Unknown(255)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product service type, now dvr will return Unknown"
|
||||
::= { hikEntity 103 }
|
||||
|
||||
hikCMSDefType OBJECT-TYPE
|
||||
SYNTAX INTEGER {
|
||||
Unknown(255)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product defined CMS type, now dvr will return Unknown"
|
||||
::= { hikEntity 104 }
|
||||
|
||||
hikObjectID OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product object ID, now dvr do not need this will return 0"
|
||||
::= { hikEntity 105 }
|
||||
|
||||
hikObjectName OBJECT-TYPE
|
||||
SYNTAX DisplayString (SIZE (0..128))
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product object Name, now dvr do not need this will return nothing"
|
||||
::= { hikEntity 106 }
|
||||
|
||||
hikTrapHostIp1 OBJECT-TYPE
|
||||
SYNTAX DisplayString (SIZE (0..128))
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product 1st trap host ip address "
|
||||
::= { hikEntity 110}
|
||||
|
||||
|
||||
|
||||
|
||||
--hik cpu info
|
||||
hikCPUNum OBJECT-TYPE
|
||||
SYNTAX INTEGER(1..512)
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the number of hikvision product's cpu "
|
||||
::= { hikEntity 200}
|
||||
|
||||
hikCPUFrequency OBJECT-TYPE
|
||||
SYNTAX DisplayString (SIZE (0..32))
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the frequency of hikvision product's cpu, format like ¡°2000MHZ¡± "
|
||||
::= { hikEntity 201}
|
||||
|
||||
--hik memery info
|
||||
hikMemoryCapability OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the size of Memory"
|
||||
::= { hikEntity 220}
|
||||
|
||||
hikMemoryUsage OBJECT-TYPE
|
||||
SYNTAX INTEGER(0..100)
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the Usage of hikvision product's Memory, value scope is (0-100)"
|
||||
::= { hikEntity 221}
|
||||
|
||||
hikDeviceStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER{
|
||||
Online(1),
|
||||
Absent(2),
|
||||
Unknown(255)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"display hikvision product status"
|
||||
::= { hikEntity 230}
|
||||
|
||||
-- malformed definitions
|
||||
-- hikDeviceLanguage OBJECT-TYPE
|
||||
-- SYNTAX INTEGER {
|
||||
-- English(1),
|
||||
-- Simple Chinese(2),
|
||||
-- Traditional Chinese(3),
|
||||
-- Japanese(4),
|
||||
-- Korea(5),
|
||||
-- Unknown(255)
|
||||
-- }
|
||||
-- ACCESS read-only
|
||||
-- STATUS mandatory
|
||||
-- DESCRIPTION
|
||||
-- "display hikvision product language"
|
||||
-- ::= { hikEntity 231}
|
||||
|
||||
-- hikvision disk info --
|
||||
|
||||
hikDiskNum OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the number of hikvision device local disks"
|
||||
::= { hikEntity 240}
|
||||
-- the disk table
|
||||
|
||||
hikDiskTable OBJECT-TYPE
|
||||
SYNTAX SEQUENCE OF hikDiskEntry
|
||||
ACCESS not-accessible
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"A list of disk entries. The number of
|
||||
entries is given by the value of hikDiskNum."
|
||||
::= { hikEntity 241 }
|
||||
|
||||
hikDiskEntry OBJECT-TYPE
|
||||
SYNTAX HikDiskEntry
|
||||
ACCESS not-accessible
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"A disk entry containing objects at local disk status."
|
||||
INDEX { hikDiskIndex }
|
||||
::= { hikDiskTable 1 }
|
||||
|
||||
HikDiskEntry ::=
|
||||
SEQUENCE {
|
||||
hikDiskIndex
|
||||
INTEGER,
|
||||
hikDiskVolume
|
||||
DisplayString,
|
||||
hikDiskStatus
|
||||
INTEGER,
|
||||
hikDiskFreeSpace
|
||||
INTEGER,
|
||||
hikDiskCapability
|
||||
INTEGER
|
||||
}
|
||||
|
||||
hikDiskIndex OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"An unique value for each local disk entry. Its value
|
||||
ranges between 1 and the value of ifNumber."
|
||||
::= { hikDiskEntry 1 }
|
||||
|
||||
hikDiskVolume OBJECT-TYPE
|
||||
SYNTAX DisplayString(SIZE (0..32))
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"A textual string containing information about local
|
||||
disk"
|
||||
::= { hikDiskEntry 2 }
|
||||
|
||||
hikDiskStatus OBJECT-TYPE
|
||||
SYNTAX INTEGER{
|
||||
Normal(0),
|
||||
Unformatted(1),
|
||||
Abnormal(2),
|
||||
Smartfailed(3),
|
||||
Mismatch(4),
|
||||
Idle(5),
|
||||
NotOnline(6),
|
||||
Reparing(10),
|
||||
Formatting(11)
|
||||
}
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"local disk status"
|
||||
::= { hikDiskEntry 3 }
|
||||
|
||||
hikDiskFreeSpace OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the size of local disk entry free space,
|
||||
if we get 100, means free space is 100M"
|
||||
::= { hikDiskEntry 4 }
|
||||
|
||||
hikDiskCapability OBJECT-TYPE
|
||||
SYNTAX INTEGER
|
||||
ACCESS read-only
|
||||
STATUS mandatory
|
||||
DESCRIPTION
|
||||
"the size of local disk entry all space,
|
||||
if we get 100, means all space is 100M"
|
||||
::= { hikDiskEntry 5 }
|
||||
|
||||
|
||||
-- hikvisoin trap define
|
||||
|
||||
-- these throw errors
|
||||
--power status trap
|
||||
-- Power_PowerOn TRAP-TYPE
|
||||
-- ENTERPRISE hikvision
|
||||
-- DESCRIPTION
|
||||
-- "hikvision device power on"
|
||||
-- ::= 1
|
||||
--
|
||||
-- Power_PowerOff TRAP-TYPE
|
||||
-- ENTERPRISE hikvision
|
||||
-- DESCRIPTION
|
||||
-- "hikvision device shut down"
|
||||
-- ::= 2
|
||||
--
|
||||
-- Power_ReBoot TRAP-TYPE
|
||||
-- ENTERPRISE hikvision
|
||||
-- DESCRIPTION
|
||||
-- "hikvision device reboot"
|
||||
-- ::= 3
|
||||
|
||||
|
||||
END
|
||||
|
101
tests/data/hikvision-cam.json
Normal file
101
tests/data/hikvision-cam.json
Normal file
@ -0,0 +1,101 @@
|
||||
{
|
||||
"os": {
|
||||
"discovery": {
|
||||
"devices": [
|
||||
{
|
||||
"sysName": "",
|
||||
"sysObjectID": null,
|
||||
"sysDescr": null,
|
||||
"sysContact": null,
|
||||
"version": null,
|
||||
"hardware": null,
|
||||
"features": null,
|
||||
"os": "hikvision-cam",
|
||||
"type": "network",
|
||||
"serial": null,
|
||||
"icon": "hikvision.png",
|
||||
"location": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": {
|
||||
"devices": [
|
||||
{
|
||||
"sysName": "",
|
||||
"sysObjectID": null,
|
||||
"sysDescr": null,
|
||||
"sysContact": null,
|
||||
"version": "V5.5.3 build 171025",
|
||||
"hardware": "DS-2CD2185FWD-I",
|
||||
"features": "H.264-MJPEG",
|
||||
"os": "hikvision-cam",
|
||||
"type": "network",
|
||||
"serial": null,
|
||||
"icon": "hikvision.png",
|
||||
"location": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"processors": {
|
||||
"discovery": {
|
||||
"processors": [
|
||||
{
|
||||
"entPhysicalIndex": 0,
|
||||
"hrDeviceIndex": 0,
|
||||
"processor_oid": ".1.3.6.1.4.1.39165.1.7.0",
|
||||
"processor_index": "0",
|
||||
"processor_type": "hikvision-cam",
|
||||
"processor_usage": 15,
|
||||
"processor_descr": "Processor",
|
||||
"processor_precision": 1,
|
||||
"processor_perc_warn": 75
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": "matches discovery"
|
||||
},
|
||||
"mempools": {
|
||||
"discovery": {
|
||||
"mempools": [
|
||||
{
|
||||
"mempool_index": "0",
|
||||
"entPhysicalIndex": null,
|
||||
"hrDeviceIndex": null,
|
||||
"mempool_type": "hikvision-cam",
|
||||
"mempool_precision": 1,
|
||||
"mempool_descr": "Memory",
|
||||
"mempool_perc": 0,
|
||||
"mempool_used": 0,
|
||||
"mempool_free": 0,
|
||||
"mempool_total": 0,
|
||||
"mempool_largestfree": null,
|
||||
"mempool_lowestfree": null,
|
||||
"mempool_deleted": 0,
|
||||
"mempool_perc_warn": 75
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": "matches discovery"
|
||||
},
|
||||
"storage": {
|
||||
"discovery": {
|
||||
"storage": [
|
||||
{
|
||||
"storage_mib": "HIK-DEVICE-MIB",
|
||||
"storage_index": "0",
|
||||
"storage_type": "hikvision-cam",
|
||||
"storage_descr": "Storage",
|
||||
"storage_size": 0,
|
||||
"storage_units": 0,
|
||||
"storage_used": 0,
|
||||
"storage_free": 0,
|
||||
"storage_perc": 0,
|
||||
"storage_perc_warn": 60,
|
||||
"storage_deleted": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": "matches discovery"
|
||||
}
|
||||
}
|
63
tests/data/hikvision-nvr.json
Normal file
63
tests/data/hikvision-nvr.json
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"os": {
|
||||
"discovery": {
|
||||
"devices": [
|
||||
{
|
||||
"sysName": "<private>",
|
||||
"sysObjectID": ".1.3.6.1.4.1.50001",
|
||||
"sysDescr": "Hikvision company products",
|
||||
"sysContact": null,
|
||||
"version": null,
|
||||
"hardware": null,
|
||||
"features": null,
|
||||
"os": "hikvision-nvr",
|
||||
"type": "network",
|
||||
"serial": null,
|
||||
"icon": "hikvision.png",
|
||||
"location": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": {
|
||||
"devices": [
|
||||
{
|
||||
"sysName": "<private>",
|
||||
"sysObjectID": ".1.3.6.1.4.1.50001",
|
||||
"sysDescr": "Hikvision company products",
|
||||
"sysContact": "<private>",
|
||||
"version": "200",
|
||||
"hardware": "NVR",
|
||||
"features": null,
|
||||
"os": "hikvision-nvr",
|
||||
"type": "network",
|
||||
"serial": "0820160719AARR624053979WCVU",
|
||||
"icon": "hikvision.png",
|
||||
"location": "<private>"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"mempools": {
|
||||
"discovery": {
|
||||
"mempools": [
|
||||
{
|
||||
"mempool_index": "0",
|
||||
"entPhysicalIndex": null,
|
||||
"hrDeviceIndex": null,
|
||||
"mempool_type": "hikvision-nvr",
|
||||
"mempool_precision": 1,
|
||||
"mempool_descr": "Memory",
|
||||
"mempool_perc": 0,
|
||||
"mempool_used": 0,
|
||||
"mempool_free": 0,
|
||||
"mempool_total": 0,
|
||||
"mempool_largestfree": null,
|
||||
"mempool_lowestfree": null,
|
||||
"mempool_deleted": 0,
|
||||
"mempool_perc_warn": 75
|
||||
}
|
||||
]
|
||||
},
|
||||
"poller": "matches discovery"
|
||||
}
|
||||
}
|
9
tests/snmpsim/hikvision-cam.snmprec
Normal file
9
tests/snmpsim/hikvision-cam.snmprec
Normal file
@ -0,0 +1,9 @@
|
||||
1.3.6.1.4.1.39165.1.1.0|4|DS-2CD2185FWD-I
|
||||
1.3.6.1.4.1.39165.1.3.0|4|V5.5.3 build 171025
|
||||
1.3.6.1.4.1.39165.1.7.0|4|15 PERCENT
|
||||
1.3.6.1.4.1.39165.1.8.0|4|0.0 GB
|
||||
1.3.6.1.4.1.39165.1.9.0|4|0 PERCENT
|
||||
1.3.6.1.4.1.39165.1.10.0|4|512 MB
|
||||
1.3.6.1.4.1.39165.1.11.0|4|83 PERCENT
|
||||
1.3.6.1.4.1.39165.1.21.0|4|H.264
|
||||
1.3.6.1.4.1.39165.1.22.0|4|MJPEG
|
14
tests/snmpsim/hikvision-nvr.snmprec
Normal file
14
tests/snmpsim/hikvision-nvr.snmprec
Normal file
@ -0,0 +1,14 @@
|
||||
1.3.6.1.2.1.1.1.0|4|Hikvision company products
|
||||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.50001
|
||||
1.3.6.1.2.1.1.3.0|67|85447143
|
||||
1.3.6.1.2.1.1.4.0|4|<private>
|
||||
1.3.6.1.2.1.1.5.0|4|<private>
|
||||
1.3.6.1.2.1.1.6.0|4|<private>
|
||||
1.3.6.1.4.1.50001.1.1.0|64|192.168.80.94
|
||||
1.3.6.1.4.1.50001.1.3.0|4|0820160719AARR624053979WCVU
|
||||
1.3.6.1.4.1.50001.1.100.0|2|2
|
||||
1.3.6.1.4.1.50001.1.101.0|2|200
|
||||
1.3.6.1.4.1.50001.1.220.0|2|169
|
||||
1.3.6.1.4.1.50001.1.221.0|2|5
|
||||
1.3.6.1.4.1.50001.1.241.1.4.1.0|2|2715648
|
||||
1.3.6.1.4.1.50001.1.241.1.5.1.0|2|3815447
|
Loading…
Reference in New Issue
Block a user