UNIVIEW SNMP

Sir_Prikol

n3wb
Dec 21, 2020
1
0
Russia
Good day. Has anyone found MIB files for UNIVIEW registrars on the Internet?

Technical support sent me something, but they are not processed, zero answer.

If anyone can get the data on this OID, I will be grateful
 

Attachments

In attach MIB for DAHUA. It's just example
Your excel data needs to be processed into a similar format depending on the needs

Of couse, maybe exist already complete file but it's not in my hand now ;)
 

Attachments

5 years after the original post(!) I'll leave my experience here to save time for others.

Uniview's snmp support is basic. This is snmpwalk from one of their latest -IQ NVR's:

Code:
UNIVIEW-NVR-MIB::deviceInfo = STRING: DevName:  MYNVR   DevModel: NVR502-16B-IQ   SoftwareVersion: NVR-B3615.39.76.240914   DevSeqNumber: MYSERIALNUMBER   Manufacture:  UNIVIEW

UNIVIEW-NVR-MIB::diskGeneralInfo = STRING: Disk  General description:     DiskTotalNum:  2    DiskTotalCapacity:  933133(KB)     DiskRemainCapacity: 0(KB)

UNIVIEW-NVR-MIB::diskIndividualInfo = STRING: Disk  Individual Description :     DiskID:  1:   Disk Space:  933133(KB)   Remaining Space:  0(KB)   Status:  3   DiskID:  2:   Disk Space:  0(KB)   Remaining Space:  0(KB)   Status:  0

UNIVIEW-NVR-MIB::ipcInfo = STRING: IPC Information:   IPC.NO:  1  IPC.Name:  IP Camera 01  IPC.IP:  192.168.0.113  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  UV-IPC-T124-APF28  IPC.Software:  DIPC-B1213.10.5.L02.250224  IPC.NO:  2  IPC.Name:  IP Camera 02  IPC.IP:  192.168.0.120  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  UV-IPC-T124-APF28  IPC.Software:  DIPC-B1213.10.5.L02.250224  IPC.NO:  3  IPC.Name:  IP Camera 03  IPC.IP:  192.168.0.121  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  Uho-B1R-M2F3  IPC.Software:  DIPC-B1226.6.3.C00003.230906  IPC.NO:  4  IPC.Name:  PlantaCam  IPC.IP:  192.168.0.188  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  Uho-B1R-M2F3  IPC.Software:  DIPC-B1226.6.3.C00003.230906  IPC.NO:  5  IPC.Name:  Contenedor  IPC.IP:  192.168.0.151  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  UV-IPC-D124-PF28  IPC.Software:  DIPC-B1213.10.5.L02.250224  IPC.NO:  6  IPC.Name:  Zona Ocio  IPC.IP:  192.168.0.139  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  IPC3628LE-ADF28K-WP  IPC.Software:  GIPC-B6218.1.77.241113  IPC.NO:  7  IPC.Name:  Deposito 2  IPC.IP:  192.168.0.153  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  UV-IPC-B124-APF28  IPC.Software:  DIPC-B1213.10.5.L02.250224  IPC.NO:  9  IPC.Name:  Contenedor 2  IPC.IP:  192.168.0.155  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  UV-IPC-B124-APF28  IPC.Software:  DIPC-B1213.10.5.L02.250224  IPC.NO:  10  IPC.Name:  Contenedores 2  IPC.IP:  192.168.0.184  IPC.Port:  80  IPC.Status:  ONLINE  IPC.Model:  IPC3624LE-ADF28K-WP  IPC.Software:  GIPC-B6215.1.93.241018

UNIVIEW-NVR-MIB::channelEncodingInfo = STRING: Channel Encoding Info:   CHLID: 1  Encode Type: H265  Bit Rate: 2176(kbps)  CHLID: 2  Encode Type: H265  Bit Rate: 2176(kbps)  CHLID: 3  Encode Type: H265  Bit Rate: 1024(kbps)  CHLID: 4  Encode Type: H265  Bit Rate: 1024(kbps)  CHLID: 5  Encode Type: H265  Bit Rate: 1024(kbps)  CHLID: 6  Encode Type: H265  Bit Rate: 2944(kbps)  CHLID: 7  Encode Type: H265  Bit Rate: 2176(kbps)  CHLID: 9  Encode Type: H265  Bit Rate: 2176(kbps)  CHLID: 10  Encode Type: H265  Bit Rate: 2176(kbps)

UNIVIEW-NVR-MIB::systemOperationTime = STRING: System Operation Time: 84552900(ms)

UNIVIEW-NVR-MIB::memoryUtilization = STRING:  MemUtilization:  0.44% MemTotal:  1431328(kb) MemFree:  800096(kb)

UNIVIEW-NVR-MIB::cpuUtilization = STRING: " CPU: 8.46%"

So, unlike the Dahua NVR's, where all the snmp information uses well defined datatypes, the Uniview NVR's use strings for everything exposed. I guess that's why they don't bother publishing a MIB.

The MIB would be something like this:

Code:
UNIVIEW-NVR-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC;

univiewNvrMIB MODULE-IDENTITY
    LAST-UPDATED "202503030000Z"  -- March 03, 2025
    ORGANIZATION "Uniview"
    CONTACT-INFO
        "Uniview Technologies
         Email: gav@ipcamtalk"
    DESCRIPTION
        "This MIB module defines objects for monitoring Uniview NVR devices."
    REVISION "202503030000Z"
    DESCRIPTION
        "Initial version of the Uniview NVR MIB with specific data types."
    ::= { enterprises 25506 20 }

-- Object definitions

deviceInfo OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..255))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "General device information including device name, model, software version, serial number, and manufacturer.
         Example: 'DevName: MIRLOS1NVR DevModel: NVR502-16B-IQ SoftwareVersion: NVR-B3615.39.76.240914 DevSeqNumber: 210235UBML3249000092 Manufacture: UNIVIEW'"
    ::= { univiewNvrMIB 1 0 }

diskGeneralInfo OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..255))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "General disk information including total number of disks, total capacity, and remaining capacity.
         Example: 'DiskTotalNum: 2 DiskTotalCapacity: 933133(KB) DiskRemainCapacity: 0(KB)'"
    ::= { univiewNvrMIB 2 0 }

diskIndividualInfo OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..512))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Individual disk details including disk ID, space, remaining space, and status.
         Example: 'DiskID: 1: Disk Space: 933133(KB) Remaining Space: 0(KB) Status: 3 DiskID: 2: Disk Space: 0(KB) Remaining Space: 0(KB) Status: 0'"
    ::= { univiewNvrMIB 3 0 }

...

But that wouldn't help very much, to add a Uniview NVR to prometheus+grafana for example, you would still need to use regular expressions to extract the data from the strings manually (in snmp_exporter config).

Code:
      diskIndividualInfo:
        regex_extracts:
          DiskSpace:
            - regex: 'DiskID: (\d+): Disk Space: (\d+)(?:\(KB\))'
              value: '$2'
              type: gauge
              labels:
                disk_id: '$1'
          RemainingSpace:
            - regex: 'DiskID: (\d+):.*Remaining Space: (\d+)(?:\(KB\))'
              value: '$2'
              type: gauge
              labels:
                disk_id: '$1'
...


Gav
 
Last edited: