Ad Widget

Collapse

Проблема с Users Param (1.8.2)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • evors
    Junior Member
    • Mar 2010
    • 18

    #1

    Проблема с Users Param (1.8.2)

    Здравствуйте.
    Нужно с определенного хоста(A) проверять доступность удаленной машины(B), на которой не используется zabbix_agent (z_sever не имеет доступа к этой машине).

    Было решено так:
    в конфиг добавил:
    Code:
    UserParameter=ping.165.20, "C:\Program Files\Zabbix\pinger.bat" 192.168.165.20
    pinger.bat:

    Code:
    @echo off
    
    call ping %1 -n 2 >nul
    
    
    rem cls
    if %errorlevel% == 1 (
    echo 0
    ) else (
    echo 1
    )
    
    exit
    В логе, если пинг есть:
    Code:
      1756:20100722:164404.298 Before
      1756:20100722:164404.298 Run remote command [cmd /C " "C:\Program Files\Zabbix\pinger.bat" 192.168.165.20"] Result [1] [1]...
      1756:20100722:164404.298 Sending back [1]
      1572:20100722:164405.267 In collect_cpustat()
      1572:20100722:164406.267 In collect_cpustat()
      1572:20100722:164407.267 In collect_cpustat()
      1572:20100722:164408.267 In collect_cpustat()
    И если нет:
    Code:
       2768:20100722:164424.298 Run remote command [cmd /C " "C:\Program Files\Zabbix\pinger.bat" 192.168.165.20"] Result [1] [0]...
      2768:20100722:164424.298 Sending back [0]
      1572:20100722:164424.314 In collect_cpustat()
      1572:20100722:164425.314 In collect_cpustat()
      1572:20100722:164426.314 In collect_cpustat()
    НО, "ноль" в случает пропадания пинга не приходит и айтем вообще петестаёт получать статистику. Не могу понять, почему все работает в первом варианте, ведь zabbix должен просто получать числа, но в случае ошибки - fail.

    Настройка айтема:
    Click image for larger version

Name:	Безымянный.png
Views:	1
Size:	35.4 KB
ID:	315492
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Попробуй увеличить таймауты для zabbix_agent и zabbix_server
    /etc/zabbix/zabbix_agentd.conf
    Timeout=30
    /etc/zabbix/zabbix_server.conf
    Timeout=30
    И рестартовать zabbix_agent и zabbix_server
    По умолчанию там 3 сек Timeout
    Скорее всего в случае недоступности хоста, происходит Timeout.

    Comment

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

      #3
      Виндовозный пинг также имеет ряд полезных параметров вроди количества пакетов и таймаутов ожидания.
      Попробуйте и почитайте
      Code:
      ping /?
      Если причина действительно в таймаутах тогда это может быть более правильное решение чем управление таймаутами заббикс компонентов.

      Comment

      • evors
        Junior Member
        • Mar 2010
        • 18

        #4
        Проблема не в работе виндового ping'a, он отрабатывает нормально и возвращает верное значение. И судя по логу агента, он отправляет это значение на сервер, но сервер почему то упрямо игнорирует это значение. Таймаут агента пробовал увеличивать до 15 сек, никаких изменений не произошло. Попробую тоже самое сделать для сервера.

        Позже пробовал реализовать это через стандартный ключ net.tcp.port[192.168.165.20, 135] (порт по сути не важен, главное что хост доступен). И опять ситуация повторяется, пока есть ответ, все хорошо. Как только связь с удаленным хостом рвется, значение залипает в предыдущем состоянии и больше не обновляется (в логе тоже видна отсылка 0). И самое интересное, график по этому значению переходит из 1 в 0 когда пропадает связь с целевым хостом.

        Comment

        • dima_dm
          Senior Member
          • Dec 2009
          • 2697

          #5
          Наблюдаемая картина очень похожа на Timeout на стороне сервера. В этом случае Item должен переходить в состояние "не поддерживается"

          Comment

          • evors
            Junior Member
            • Mar 2010
            • 18

            #6
            Выставил Timeout=30 на сервере и агенте, теперь работает как надо. Для net.tcp.port аналогично, проблема решена. Спасибо.

            Comment

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

              #7
              Originally posted by evors
              Выставил Timeout=30 на сервере и агенте, теперь работает как надо.
              Все же попробовали бы вот такую команду
              Code:
              call ping %1 -n 2 -w 400 >nul
              при этом команда с двумя неудачными пингами выполняется за 2 секунды а не за 10 секунд как у сейчас у вас есть.
              здесь -w 400 это таймаут ожидания ответа от недостижимого узла. Между командами все равно есть еще пауза в 1 секунду. Поэтому и получается 2 секунды.
              Правда параметр -w довольно странен. В описании сказано что
              Code:
                -w <таймаут>      Таймаут для каждого ответа в миллисекундах.
              реально при -w 499 и меньше до 1 десять отрицательных пингов выполняются ровно 14 секунд, а при -w 500 десять отрицательных пингов выполняются уже за 18 секунд - виндовс . То есть в утилите ping минимальное значение ограничено очевидно 400 мс., но это вполне нормально как для виндовса .

              А увеличивать значительно таймаут ожидания для сервера я бы не советовал, кто его знает каким боком это может вылезти для сервера при хороших нагрузках и например проблемах из сетью. Не зря разработчики по дефолту ставят небольшое значение 3 секунды - подумайте над этим.
              Советую все же уменьшить таймаут ожидания в скрипте и может быть незначительно (ровно на сколько нужно) увеличить из 3 сек на сервере. Так как вы сейчас поставили 30 секунд мне кажется многовато.

              Comment

              • evors
                Junior Member
                • Mar 2010
                • 18

                #8
                Спасибо, zalex_ua. Поробую с уменьшением и этого таймаута и так на будущее может пригодиться.

                Comment

                Working...