m-erhardt / check-synology-plugins

Collection of Icinga / Nagios plugins to monitor Synology DSM NAS devices
GNU General Public License v3.0
7 stars 3 forks source link

disks script not working #4

Closed UrbanDavid closed 2 years ago

UrbanDavid commented 2 years ago

Dear Mr, thank you for the scripts, but the script for check disks is not working. I received error: UNKNOWN - SNMP error: No SNMP response received before timeout

But all scripts working well, mem, volume, cpu.

I have two Synology NAS. RS2421RP+ and RS2818RP+ Script for disks are working on RS2421RP+, but not working RS2818RP+ I tried to increase the timeout value but no effect.

m-erhardt commented 2 years ago

Hi,

this message indicates that the snmp daemon on the NAS did not respond to the SNMP GETNEXT command within the defined timeout. As the other plugins work fine we can expect that communication via UDP/161 is working and SNMPv3 is configured correctly.

There might be an issue with the snmp daemon on the NAS when trying to get values for these OIDs. As a first measure I'd recommend to reboot the NAS to see if that fixes the issue.

Additionally you could try to query the SNMP daemon on the NAS manually to check if any values for these OIDs are returned.

Here's an example on how to do that with snmpwalk on Linux:

# Query SYNOLOGY-DISK-MIB::diskID OID
snmpwalk -v3 -u '<your SNMPv3 user>' \
      -a SHA -A '<your SNMPv3 auth pass>' \
      -l authPriv \
      -x AES -X '<your SNMPv3 priv pass>' \
      <your.nas.ip> .1.3.6.1.4.1.6574.2.1.1.2

# Query SYNOLOGY-DISK-MIB::diskStatus OID
snmpwalk -v3 -u '<your SNMPv3 user>' \
      -a SHA -A '<your SNMPv3 auth pass>' \
      -l authPriv \
      -x AES -X '<your SNMPv3 priv pass>' \
      <your.nas.ip> .1.3.6.1.4.1.6574.2.1.1.5
UrbanDavid commented 2 years ago

I got fast response via snmpwalk

snmpwalk -v3 -u 'monitoring' -a SHA -A '' -l authPriv -x AES -X '' x.x.x.x .1.3.6.1.4.1.6574.2.1.1.2 SNMPv2-SMI::enterprises.6574.2.1.1.2.0 = STRING: "Drive 1" SNMPv2-SMI::enterprises.6574.2.1.1.2.1 = STRING: "Drive 2" SNMPv2-SMI::enterprises.6574.2.1.1.2.2 = STRING: "Drive 3" SNMPv2-SMI::enterprises.6574.2.1.1.2.3 = STRING: "Drive 4" SNMPv2-SMI::enterprises.6574.2.1.1.2.4 = STRING: "Drive 5" SNMPv2-SMI::enterprises.6574.2.1.1.2.5 = STRING: "Drive 6" SNMPv2-SMI::enterprises.6574.2.1.1.2.6 = STRING: "Drive 7" SNMPv2-SMI::enterprises.6574.2.1.1.2.7 = STRING: "Drive 8" SNMPv2-SMI::enterprises.6574.2.1.1.2.8 = STRING: "Drive 9" SNMPv2-SMI::enterprises.6574.2.1.1.2.9 = STRING: "Drive 10" SNMPv2-SMI::enterprises.6574.2.1.1.2.10 = STRING: "Drive 11" SNMPv2-SMI::enterprises.6574.2.1.1.2.11 = STRING: "Drive 12" SNMPv2-SMI::enterprises.6574.2.1.1.2.12 = STRING: "Drive 13" SNMPv2-SMI::enterprises.6574.2.1.1.2.13 = STRING: "Drive 14" SNMPv2-SMI::enterprises.6574.2.1.1.2.14 = STRING: "Drive 15" SNMPv2-SMI::enterprises.6574.2.1.1.2.15 = STRING: "Drive 16"

snmpwalk -v3 -u 'monitoring' -a SHA -A '*' -l authPriv -x AES -X '' x.x.x.x .1.3.6.1.4.1.6574.2.1.1.5 SNMPv2-SMI::enterprises.6574.2.1.1.5.0 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.1 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.2 = INTEGER: 3 SNMPv2-SMI::enterprises.6574.2.1.1.5.3 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.4 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.5 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.6 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.7 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.8 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.9 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.10 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.11 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.12 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.13 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.14 = INTEGER: 1 SNMPv2-SMI::enterprises.6574.2.1.1.5.15 = INTEGER: 1

The second synology have only 7 disks and script is working.

m-erhardt commented 2 years ago

This is really strange. There is no obvious reason why the plugin times out.

The error is thrown by functions from the pysnmp package, could you check which version of pysnmp is running on your system (pip3 show pysnmp)? I'm running pysnmp in version 4.4.12 and never experienced this issue so far.

I guess this issue could be related to https://github.com/etingof/pysnmp/issues/201. Unfortunately there is no known reason of fix for this bug yet.

UrbanDavid commented 2 years ago

I have version:

Name: pysnmp Version: 4.4.12 Summary: SNMP library for Python Home-page: https://github.com/etingof/pysnmp Author: Ilya Etingof Author-email: etingof@gmail.com License: BSD Location: /usr/local/lib/python3.6/site-packages Requires: pysmi, pycryptodomex, pyasn1

UrbanDavid commented 2 years ago

Hi, I added a new parameter to the script, maxRows=40, when I set when bigger value than 46, the script is not working. Default value is 0 - unlimited

if args.v3mode == "authPriv":
    iterator = bulkCmd(
        SnmpEngine(),
        UsmUserData(args.user, args.authkey, args.privkey,
                    authProtocol=authprot[args.authmode],
                    privProtocol=privprot[args.privmode]),
        UdpTransportTarget((args.host, args.port), timeout=args.timeout),
        ContextData(),
        0, 50,
        ObjectType(ObjectIdentity(table_oid)),
    maxRows=40,
        lexicographicMode=False,
        lookupMib=False
    )