Ad Widget

Collapse

Некорректно (?) работает SNMPv3 - возможно bag?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • 77dragon
    Junior Member
    • Feb 2010
    • 3

    #1

    Некорректно (?) работает SNMPv3 - возможно bag?

    Ситуация следующая.

    Установлен Debian, на него поставлен Zabbix 1.8.1 (из сырцов).
    Есть сеть цисок, которую он должен мониторить. Нагиос видит и мониторит ее нормально, у нас настроен SNMPv3.

    Настроил шаблон, отладил. Стал добавлять циски. А дальше началась полная чехарда. С одной циски все снимается корректно. С другой - пару раз данные снялись, и все заткнулось. С третьей нормально снимается только один параметр. С бОльшей части цисок - вообще тишина.

    Включил DebugLevel=4.

    У тех параметров, которые снимаются нормально, статус операции SUCCESED.
    У остальных NETWORK ERROR.

    Лезу в сниффер, и вижу, что циски отвечают ошибкой, а именно вместо запрошенного параметра в ответе идет usmStatsNotInTimeWindows (The total number of packets received by the SNMP engine which were dropped because they appeared outside of the authoritative SNMP engine's window).

    Останавливаю Zabbix.
    Запускаю сниффер, запускаю корректно работающий snmpget.
    Вижу в сниффере:
    1) запрос snmpget, параметры msgAuthoritativeEngineID, msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime установлены в 0.
    2) Циска отвечает: usmStatsNotInTimeWindows, однако в ее ответе эти параметры имеют конкретные значения (допустим, a1,b1,и с1).
    3) опять идет тот же snmpget, но указанные выше параметры в запросе установлены в значения a1,b1 и c1.
    4) идет snmpresponse c правильным значением запрошенного параметра.
    Все ОК.

    Запускаю Zabbix.
    Запускаю сниффер. В логах Zabbix появляется NetworkError, останавливаю сниффер, смотрю.
    1) запрос от Zabbix'а snmpget, параметры msgAuthoritativeEngineID, msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime установлены в 0.
    2) Циска отвечает: usmStatsNotInTimeWindows, однако в ее ответе эти параметры имеют конкретные значения (допустим, a2,b2,и с2).
    3) опять идет тот же snmpget, но указанные выше параметры в запросе установлены в ПРАВИЛЬНЫЕ значения a2,b2 и c2.
    4) идет snmpresponse c правильным значением запрошенного параметра.
    5) ОПЯТЬ запрос от Zabbix'а snmpget, параметры msgAuthoritativeEngineID, msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime установлены в 0.
    6) Циска отвечает: usmStatsNotInTimeWindows, однако в ее ответе эти параметры имеют конкретные значения (допустим, опять же a2,b2,и с2).
    7) опять идет тот же snmpget, но указанные выше параметры в запросе установлены в "полную ерунду", то есть там указаны цифры, не имеющие к этой Циске никакого отношения (х,у,z).
    8) Циска отвечает: usmStatsNotInTimeWindows.

    После ВСЕ запросы Zabbix'а на эту циску идут по пунктам 5) 6) 7) 8), то есть ВСЕ запросы к этой циске вызывают ошибку usmStatsNotInTimeWindows (потому что там идут какие-то х2,у2,z2...)

    Думаю, что параметры для запроса берутся не от этой циски, а от другой (одной реально работающей). То есть в теории она делает правильные запросы на EngineBoots и EngineTime, но правильные ответы (для ЭТОЙ циски) игнорирует.

    То ли я во что-то не врубаюсь, то ли это bag.

    Собственно, проверил.
    Выключил мониторинг работающей циски, включил другую. Она заработала.

    То есть, я так понимаю, Zabbix ловит первые попавшиеся EngineBoots и EngineTime, и все запросы на всю сеть делает с указателями на эти два конкретных параметра.

    То есть, получается, что из всех SNMPv3 цисок может одновременно мониториться только одна
  • 77dragon
    Junior Member
    • Feb 2010
    • 3

    #2
    Никто не использует SNMPv3?

    Проблема уже поднималась год назад: http://www.zabbix.com/forum/showthread.php?t=11855
    Last edited by 77dragon; 04-03-2010, 13:38.

    Comment

    • 77dragon
      Junior Member
      • Feb 2010
      • 3

      #3
      Timeliness

      Once a manager has learned the snmpEngineBoots and snmpEngineTime of an agent, the manager must maintain its own local notion of what these values are supposed to be. This requires the manager to increment the learned snmpEngineTime every second so the value will be very close to the master values maintained by the agent. If the snmpEngineTime rolls over, then the snmpEngineBoots must be incremented. A manager must keep local notions of these values for each agent in which it wishes to communicate.

      The timeliness checks by an agent are considered part of the authentication process and are done right after the received packet has been authenticated. If the msgAuthoritativeEngineBoots is different than the agent's current value of the snmpEngineBoots, the packet is discarded and a discovery packet is sent back to the manager. If that check passes, then the msgAuthoritativeEngineTime is checked against the agent's current value of the snmpEngineTime. If the difference between the two is more or less than 150 seconds, the packet is discarded and a discovery packet is sent back to the manager. If both of the checks pass, then the packet is considered to have been received in a timely manner and processing continues.

      The value of +/- 150 seconds for the comparison of the snmpEngineTime is the default value specified by the RFC. This value could be modified to something more suitable based on the speed and size of your network.

      Comment

      • zalex_ua
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Oct 2009
        • 1286

        #4
        На всякий случай - проблема описана тут https://support.zabbix.com/browse/ZBX-2152

        Comment

        • Navoyenok
          Senior Member
          • Dec 2011
          • 101

          #5
          Добрый день.

          У нас была похожая ситуация. Необходимо добиться уникальности EngineID на каждом устройстве.

          С уважением, Navoyenok

          Comment

          Working...