Monitoring Hikvision DS-2CD2365G1-I Camera Via SNMP with Nagios

We can view what MIB/OID information is available to pull via SNMP by running the below command.


[root@localhost objects]# snmpwalk -c public -v 2c 192.168.1.21 1.3.6.1.4.1

Information we can pull into Nagios via the check_snmp service is shown.

[root@localhost objects]# snmpwalk -c public -v 2c 192.168.1.21 1.3.6.1.4.1
SNMPv2-SMI::enterprises.39165.1.1.0 = STRING: "DS-2CD2365G1-I"
SNMPv2-SMI::enterprises.39165.1.2.0 = STRING: "0"
SNMPv2-SMI::enterprises.39165.1.3.0 = STRING: "V5.5.83 build 190221"
SNMPv2-SMI::enterprises.39165.1.4.0 = STRING: "68-6d-bc-20-a3-28"
SNMPv2-SMI::enterprises.39165.1.5.0 = STRING: "88"
SNMPv2-SMI::enterprises.39165.1.6.0 = STRING: "Hikvision"
SNMPv2-SMI::enterprises.39165.1.7.0 = STRING: "75 PERCENT"
SNMPv2-SMI::enterprises.39165.1.8.0 = STRING: "218.6 GB"
SNMPv2-SMI::enterprises.39165.1.9.0 = STRING: "27 PERCENT"
SNMPv2-SMI::enterprises.39165.1.10.0 = STRING: "512 MB"
SNMPv2-SMI::enterprises.39165.1.11.0 = STRING: "98 PERCENT"
SNMPv2-SMI::enterprises.39165.1.12.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.13.0 = IpAddress: 192.168.1.21
SNMPv2-SMI::enterprises.39165.1.14.0 = IpAddress: 255.255.255.0
SNMPv2-SMI::enterprises.39165.1.15.0 = IpAddress: 192.168.1.1
SNMPv2-SMI::enterprises.39165.1.16.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.39165.1.17.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.39165.1.18.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.39165.1.19.0 = STRING: "2019-12-18 18:49:20"
SNMPv2-SMI::enterprises.39165.1.20.0 = INTEGER: 1
SNMPv2-SMI::enterprises.39165.1.21.0 = STRING: "H.265"
SNMPv2-SMI::enterprises.39165.1.22.0 = STRING: "H.264"
SNMPv2-SMI::enterprises.39165.1.23.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.24.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.25.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.26.0 = INTEGER: 1
SNMPv2-SMI::enterprises.39165.1.27.0 = INTEGER: 1
SNMPv2-SMI::enterprises.39165.1.28.0 = INTEGER: 1
SNMPv2-SMI::enterprises.39165.1.29.0 = STRING: "ETHERNET"
SNMPv2-SMI::enterprises.39165.1.30.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.31.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.32.0 = IpAddress: 0.0.0.0
SNMPv2-SMI::enterprises.39165.1.33.0 = ""
SNMPv2-SMI::enterprises.39165.1.34.0 = INTEGER: 0
SNMPv2-SMI::enterprises.39165.1.34.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

Lets change to our libexec folder to confirm results before adding a new host.

/usr/local/nagios/libexec

We can run the below command to verify we are getting the correct MIB/OID information. In this example i am requesting information from the enterprises.39165.1.13.0 OID.

./check_snmp 192.168.1.21 -C public -o .enterprises.39165.1.13.0  -P 1
SNMP OK - IpAddress: 192.168.1.21 |

The IP address of my CCTV camera is verified.

Next we need to define the host lets create a new host in our objects directory.

/usr/local/nagios/etc/objects

define host {
 use linux-server
 host_name hikvision
 alias Hikvision
 notes Hikvision
 address 192.168.1.21
 }


define service {
 use generic-service
 host_name hikvision
 service_description Ip Address
 check_command check_snmp! -C public -o .enterprises.39165.1.13.0 -P 1
}

We then need to add our host to our nagios.cfg file

/usr/local/nagios/etc/

cfg_file=/usr/local/nagios/etc/objects/mikrotik.cfg
cfg_file=/usr/local/nagios/etc/objects/hikvision.cfg

Lets verify our config before restarting nagios to avoid errors. All looks GOOD !

[root@localhost objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.4.5
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2019-08-20
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
        Checked 50 services.
        Checked 9 hosts.
        Checked 7 host groups.
        Checked 5 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 26 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 9 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

service nagios reload

Lets run a quick status check

[root@localhost objects]# service nagios status
Redirecting to /bin/systemctl status nagios.service
● nagios.service - Nagios Core 4.4.5
   Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-16 12:01:34 EST; 2 days ago
     Docs: https://www.nagios.org/documentation
  Process: 25153 ExecReload=/usr/bin/kill -s HUP ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 4040 (nagios)
    Tasks: 6 (limit: 11512)
   Memory: 28.5M
   CGroup: /system.slice/nagios.service
           ├─ 4040 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─ 4045 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─25154 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─25155 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─25156 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           └─25157 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh

Dec 18 13:49:09 localhost.localdomain nagios[4040]: SERVICE FLAPPING ALERT: pi_livingroom;PING;STARTED; Service appea>
Dec 18 13:49:40 localhost.localdomain nagios[25154]: job 0 (pid=25158): read() returned error 11
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: Core Worker 25154: job 0 (pid=25158) timed out. Killing it
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: CHECK job 0 from worker Core Worker 25154 timed out after >
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc:   host=pi_livingroom; service=(null);
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc:   early_timeout=1; exited_ok=0; wait_status=0; error_code=>
Dec 18 13:49:40 localhost.localdomain nagios[4040]: Warning: Check of host 'pi_livingroom' timed out after 30.01 seco>
Dec 18 13:49:40 localhost.localdomain nagios[4040]: HOST ALERT: pi_livingroom;DOWN;SOFT;1;(Host check timed out after>
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: Core Worker 25154: job 0 (pid=25158): Dormant child reaped
Dec 18 13:50:41 localhost.localdomain nagios[4040]: HOST ALERT: pi_livingroom;UP;SOFT;1;PING OK - Packet loss = 0%, R>
lines 1-26/26 (END)...skipping...
● nagios.service - Nagios Core 4.4.5
   Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-16 12:01:34 EST; 2 days ago
     Docs: https://www.nagios.org/documentation
  Process: 25153 ExecReload=/usr/bin/kill -s HUP ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 4040 (nagios)
    Tasks: 6 (limit: 11512)
   Memory: 28.5M
   CGroup: /system.slice/nagios.service
           ├─ 4040 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─ 4045 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─25154 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─25155 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─25156 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           └─25157 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh

Dec 18 13:49:09 localhost.localdomain nagios[4040]: SERVICE FLAPPING ALERT: pi_livingroom;PING;STARTED; Service appears to have started flapping (26.>
Dec 18 13:49:40 localhost.localdomain nagios[25154]: job 0 (pid=25158): read() returned error 11
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: Core Worker 25154: job 0 (pid=25158) timed out. Killing it
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: CHECK job 0 from worker Core Worker 25154 timed out after 30.01s
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc:   host=pi_livingroom; service=(null);
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc:   early_timeout=1; exited_ok=0; wait_status=0; error_code=62;
Dec 18 13:49:40 localhost.localdomain nagios[4040]: Warning: Check of host 'pi_livingroom' timed out after 30.01 seconds
Dec 18 13:49:40 localhost.localdomain nagios[4040]: HOST ALERT: pi_livingroom;DOWN;SOFT;1;(Host check timed out after 30.01 seconds)
Dec 18 13:49:40 localhost.localdomain nagios[4040]: wproc: Core Worker 25154: job 0 (pid=25158): Dormant child reaped
Dec 18 13:50:41 localhost.localdomain nagios[4040]: HOST ALERT: pi_livingroom;UP;SOFT;1;PING OK - Packet loss = 0%, RTA = 0.66 ms
~

Looks like my PI might have a power issue, this may explain why i have had SD card corruption issues

We can see below that the host is up and we are successfully monitoring, our camera.

About the Author

Leave a Reply

Your email address will not be published. Required fields are marked *