Ad Widget

Collapse

Потеря данных.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Krot
    Junior Member
    • Dec 2008
    • 25

    #1

    Потеря данных.

    произвольно и переодически теряю данные от устройства. ZBX-1.6.4. В логах имею следующее:

    x:x:x Item [XXX:tem[t2]] error: Get value from agent failed
    ZBX_TCP_READ() failed [Interrupted system call]
    x:x:x Host [XXX]: first network error, wait for 15 seconds
    x:x:x Parameter [tem[t2]] will be checked after 240 seconds

    хотелось понять причину. Коллизии или другая беда и как с этим бороться средствами Zbx.
  • noname
    Senior Member
    • Jan 2008
    • 120

    #2
    Бороться с этим средствами zabbix нельзя, так как это общая проблема сети. К примеру, если выполнить 100 раз команду host для некого домена, то можно увидеть, что иногда host не будет возвращать значение, так как утилита не смогла получить значения. Думаю, тут ошибка того же рода.

    P.S. Сам постоянно сталкиваюсь с этой ситуацией при мониторинге свитчей (снятие данных по snmp)

    Comment

    • Krot
      Junior Member
      • Dec 2008
      • 25

      #3
      Это понятно, локалка шумит переодически весьма сильно. Я просто хотел узнать у разработчика, после каких ситуаций zbx_tcp_read() вылетает на этоту ошибку.

      Comment

      • noname
        Senior Member
        • Jan 2008
        • 120

        #4
        Извини, но ничего лучше на твой вопрос предложить не смогу (ниже вырезка из сырцов):

        Code:
                if (SUCCEED == (ret = zbx_tcp_connect(&s, CONFIG_SOURCE_IP, addr, item->port, 0)))
                {
                        zbx_snprintf(buffer, sizeof(buffer), "%s\n", item->key);
                        zabbix_log(LOG_LEVEL_DEBUG, "Sending [%s]", buffer);
        
                        /* Send requests using old protocol */
                        if (SUCCEED == (ret = zbx_tcp_send_raw(&s, buffer)))
                                ret = zbx_tcp_recv_ext(&s, &buf, ZBX_TCP_READ_UNTIL_CLOSE);
                }
        
                if (SUCCEED == ret)
                {
                        zbx_rtrim(buf, " \r\n");
                        zbx_ltrim(buf, " ");
        
                        zabbix_log(LOG_LEVEL_DEBUG, "Get value from agent result: '%s'", buf);
        
                        if (0 == strcmp(buf, "ZBX_NOTSUPPORTED"))
                        {
                                zbx_snprintf(buffer, sizeof(buffer), "Not supported by ZABBIX agent");
                                SET_MSG_RESULT(result, strdup(buffer));
                                ret = NOTSUPPORTED;
                        }
                        else if (0 == strcmp(buf, "ZBX_ERROR"))
                        {
                                zbx_snprintf(buffer, sizeof(buffer), "ZABBIX agent non-critical error");
                                SET_MSG_RESULT(result, strdup(buffer));
                                ret = AGENT_ERROR;
                        }
                        else if ('\0' == *buf)  /* The section should be improved */
                        {
                                zbx_snprintf(buffer, sizeof(buffer), "Got empty string from [%s]. Assuming that agent dropped connection because of access permissions",
                                                item->useip ? item->host_ip : item->host_dns);
                                SET_MSG_RESULT(result, strdup(buffer));
                                ret = NETWORK_ERROR;
                        }
                        else if (SUCCEED != set_result_type(result, item->value_type, buf))
                                ret = NOTSUPPORTED;
                }
                else
                {
                        zbx_snprintf(buffer, sizeof(buffer), "Get value from agent failed: %s",
                                        zbx_tcp_strerror());
                        SET_MSG_RESULT(result, strdup(buffer));
                        ret = NETWORK_ERROR;
                }
        - Это из src/zabbix_server/poller/checks_agent.c
        - А вопрос, который ты направляешь разработчикам, вряд ли к ним имеет отношение.

        Comment

        • Krot
          Junior Member
          • Dec 2008
          • 25

          #5
          Никаких проблем, я видел это место. Найти в исходникак пунк действия не проблема, а вот разбираться с кодом-лишнее, в моем случае. Есно, если нужда слишком сильно не заставит...
          Успехов, спасибо.

          Comment

          Working...