Ad Widget

Collapse

"SNMP response from host contains too few variable bindings"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • eric_at_2037
    replied
    Hello,

    It seems to be a problem with the auto-discovery mechanism.

    If you have a look at the host regarding this problem, you will see new items with strange name. You have to identify the root cause.

    In my case it seems to be a bug with zabbix_proxy 4.2.7

    zabbix_proxy -V
    zabbix_proxy (Zabbix) 4.2.7
    Revision 624fb7497b 2 October 2019, compilation time: Oct 2 2019 13:40:30

    Copyright (C) 2019 Zabbix SIA
    License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
    This is free software: you are free to change and redistribute it according to
    the license. There is NO WARRANTY, to the extent permitted by law.

    This product includes software developed by the OpenSSL Project
    for use in the OpenSSL Toolkit (http://www.openssl.org/).

    Compiled with OpenSSL 1.1.1 FIPS 11 Sep 2018
    Running with OpenSSL 1.1.1 FIPS 11 Sep 2018
    Last edited by eric_at_2037; 08-10-2019, 12:37.

    Leave a comment:


  • Kozik
    commented on 's reply
    I also have a similar problem on the DGS-3420-28

  • stum
    replied
    Hello.
    I have same log events. What is it?
    Code:
      9280:20190523:134908.576 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings
      9280:20190523:135808.069 SNMP response from host "DES-3052P-2-CO" contains too few variable bindings
      9282:20190523:135809.535 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings
      9280:20190523:140404.147 SNMP response from host "DES-3052P-1-CO" contains too few variable bindings
      9283:20190523:140408.617 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings
      9282:20190523:140409.331 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings
      9281:20190523:140409.478 SNMP response from host "DES-3052P-2-CO" contains too few variable bindings
      9282:20190523:140703.584 SNMP response from host "DES-3052P-1-CO" contains too few variable bindings
      9281:20190523:141009.659 SNMP response from host "DES-3052P-2-CO" contains too few variable bindings
      9283:20190523:141308.370 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings
      9284:20190523:141308.619 SNMP response from host "DGS-3450-Stack-CO" contains too few variable bindings

    Leave a comment:


  • kernbug
    replied
    No sure, maybe someone more experienced will answer more precise:

    Code from sources:
    Code:
     
      1251 static int  zbx_snmp_get_values(struct snmp_session *ss, const DC_ITEM *items, char oids[][ITEM_SNMP_OID_LEN_MAX],  1252         AGENT_RESULT *results, int *errcodes, unsigned char *query_and_ignore_type, int num, int level,  1253         char *error, size_t max_error_len, int *max_succeed, int *min_fail)  1254 {  1255     const char      *__function_name = "zbx_snmp_get_values";  1256   1257     int         i, j, status, ret = SUCCEED;  1258     int         mapping[MAX_SNMP_ITEMS], mapping_num = 0;  1259     oid         parsed_oids[MAX_SNMP_ITEMS][MAX_OID_LEN];  1260     size_t          parsed_oid_lens[MAX_SNMP_ITEMS];  1261     struct snmp_pdu     *pdu, *response;  1262     struct variable_list    *var;  
      if (STAT_SUCCESS == status && SNMP_ERR_NOERROR == response->errstat)  1316     {  1317         for (i = 0, var = response->variables;; i++, var = var->next_variable)  1318         {  1319             /* check that response variable binding matches the request variable binding */  1320   1321             if (i == mapping_num)  1322             {  1323                 if (NULL != var)  1324                 {  1325                     zabbix_log(LOG_LEVEL_WARNING, "SNMP response from host \"%s\" contains"  1326                             " too many variable bindings", items[0].host.host);  1327   1328                     if (1 != mapping_num)   /* give device a chance to handle a smaller request */  1329                         goto halve;  1330   1331                     zbx_strlcpy(error, "Invalid SNMP response: too many variable bindings.",  1332                             max_error_len);  1333   1334                     ret = NOTSUPPORTED;  1335                 }  1336   1337                 break;  1338             }  1339   
     halve:  1476         if (*min_fail > mapping_num)  1477             *min_fail = mapping_num;  1478   1479         if (0 == level)  1480         {  1481             /* halve the number of items */  1482   1483             int base;  1484   1485             ret = zbx_snmp_get_values(ss, items, oids, results, errcodes, query_and_ignore_type, num / 2,  1486                     level + 1, error, max_error_len, max_succeed, min_fail);  1487   1488             if (SUCCEED != ret)  1489                 goto exit;  1490   1491             base = num / 2;  1492   1493             ret = zbx_snmp_get_values(ss, items + base, oids + base, results + base, errcodes + base,  1494                     NULL == query_and_ignore_type ? NULL : query_and_ignore_type + base, num - base,  1495                     level + 1, error, max_error_len, max_succeed, min_fail);  1496         }  1497         else if (1 == level)  1498         {  1499             /* resort to querying items one by one */  1500   1501             for (i = 0; i < num; i++)  1502             {  1503                 if (SUCCEED != errcodes[i])  1504                     continue;  1505   1506                 ret = zbx_snmp_get_values(ss, items + i, oids + i, results + i, errcodes + i,  1507                         NULL == query_and_ignore_type ? NULL : query_and_ignore_type + i, 1,  1508                         level + 1, error, max_error_len, max_succeed, min_fail);  1509   1510                 if (SUCCEED != ret)  1511                     goto exit;  1512             }  1513         }  1514     }  1515     else  1516         ret = zbx_get_snmp_response_error(ss, &items[0].interface, status, response, error, max_error_len);  1517 exit:  1518     if (NULL != response)  1519         snmp_free_pdu(response);  1520 out:  1521     zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%s", __function_name, zbx_result_string(ret));  1522   1523     return ret;  1524 }
    The SNMP PDUs contain the command specifics and their operands. The fields are variable in length and end with strings of variable bindings, which are the pairs of objects and their current values the network management systems has asked to see. On the way to managed device, these bindings are typically filled in with the zero or blanks, and naturally they come back with the current values filled in.

    Leave a comment:


  • Linwood
    replied
    Did you ever find any cause of this? I'm getting it on DLink switches. I hoped it was an external check or something I had done, but it is not.

    I'm running 3.4.7 and get this periodically. Rather infrequently so I hate to turn on debug for everything for hours to try to see why, though that may be my only choice.

    Anyone else getting it?

    There are no unsupported items. All items have data (except some interface aliases that really do not). So whatever it's getting via SNMP is infrequently failing, or is something that doesn't show up obviously in looking at latest data. A full SNMPWALK doesn't show any errors.

    Leave a comment:


  • "SNMP response from host contains too few variable bindings"

    Hey guys,

    I'm seeing this on the Zabbix server log, in regards to a Netapp I am monitoring via SNMPv2. There doesn't appear to be an actual problem - I'm monitoring the device just fine - but I'm still wondering what this warning means and if there's anything I can do about it.

    Google unfortunately did not provide an answer

    Thanks

Announcement

Collapse
No announcement yet.
Working...
X