Ad Widget

Collapse

Не могу понять работу тригерра

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Elis
    Member
    • Oct 2018
    • 71

    #1

    Не могу понять работу тригерра

    Задача стояла проверять сетевое оборудование на доступность по пингу. Мои действия:
    1. Добавляю пользовательский параметр
    Code:
    UserParameter = remote_ping[*], ping -n 1 -l 1 $1 | FIND /C "TTL="
    2. Создаю item zabbix агент, подставляю нужный адрес, получаю результат.
    3. Далее создаю триггер
    Code:
    {moxa_nport1:remote_ping[10.10.60.60].max(#5)}=0
    Если устройство уходит со связи, то статус триггера меняется через одну минуту. Почему ??
    По услою если подряд идут пять нулей, то статус меняется на "Проблема"
    Такая статистика соберётся за пять минут, потомучто опрос метрики у меня раз в минуту
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Возможно, проблема в том, что у вас не задан таймаут пинга. По умолчанию он в винде 4 с, что больше дефолтного таймаута агента (3 с) и может привести к тому, что айтем станет неподдерживаемым, а состояние триггера неизвестным.
    Добавьте в условие, например, -w 1000.
    Кстати, вашу задачу можно решить и без UserParameter, через wmi.get.

    Comment

    • max.ch.88
      Senior Member
      • Oct 2018
      • 206

      #3

      Можно обойтись без UserParameter штатным Simple check. Стоит посмотреть в последних данных какие приходят значения и в какое время.

      Comment

      • Pasah
        Junior Member
        • Mar 2019
        • 3

        #4
        В 4 в составе "Template Module ICMP Ping" есть штатный item "ICMP ping", в котором используется штатный key "
        icmpping[<цель>,<пакеты>,<интервал>,<размер>,<время ожидания>]
        "

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          Полагаю, что у топикстартера была задача пинговать сетевые железки с хостов, и судя по UserParameter - с windows хостов. Это часто требуется для мониторинга сетевой связности между узлами. Simple check пингует с Zabbix server или proxy.

          Comment

          • Elis
            Member
            • Oct 2018
            • 71

            #6
            Originally posted by Semiadmin
            Возможно, проблема в том, что у вас не задан таймаут пинга. По умолчанию он в винде 4 с, что больше дефолтного таймаута агента (3 с) и может привести к тому, что айтем станет неподдерживаемым, а состояние триггера неизвестным.
            у меня Timeout=30 сек

            Originally posted by Semiadmin
            Кстати, вашу задачу можно решить и без UserParameter, через wmi.get.
            это как? может покажите для примера

            Comment

            • Semiadmin
              Senior Member
              • Oct 2014
              • 1625

              #7
              Originally posted by Elis
              это как? может покажите для примера
              Например, так: wmi.get[root\cimv2,select StatusCode from Win32_PingStatus where Address="ip" and Timeout=1000]

              Comment

              • Elis
                Member
                • Oct 2018
                • 71

                #8
                ключ вида (для реального адреса):
                Code:
                wmi.get[root\cimv2,select StatusCode from Win32_PingStatus where Address="10.10.60.60" and Timeout=1000]
                возвращает ноль

                ключ вида (для не существующего адреса):
                Code:
                wmi.get[root\cimv2,select StatusCode from Win32_PingStatus where Address="12.10.60.60" and Timeout=1000]
                возвращает 11010

                Получается что ноль это - ОК, связь с оборудованием есть ?

                Comment

                • Semiadmin
                  Senior Member
                  • Oct 2014
                  • 1625

                  #9
                  Originally posted by Elis

                  Получается что ноль это - ОК, связь с оборудованием есть ?
                  Да, а 11010 - код проблемы. Можно сделать value mapping для проблем. Или, если есть желание и умение, препроцессингом в несколько шагов преобразовать вывод в 0 и 1 и инвертировать его.

                  Comment

                  • Elis
                    Member
                    • Oct 2018
                    • 71

                    #10
                    Originally posted by Semiadmin
                    Можно сделать value mapping для проблем.
                    так не могу, потому что триггер не сработает корректно

                    Originally posted by Semiadmin
                    Или, если есть желание и умение, препроцессингом в несколько шагов преобразовать вывод в 0 и 1 и инвертировать его
                    буду пробовать, спасибо)

                    Comment

                    • Elis
                      Member
                      • Oct 2018
                      • 71

                      #11
                      в PowerShell удалось проверить команду вот таки способом
                      Code:
                      Get-WmiObject -Class Win32_PingStatus -Filter "Address = '10.10.60.60'" -ComputerName. | Select-Object -Property Address, ResponseTime, StatusCode
                      результат StatusCode 0 означает, что машина ответила на пинг. Другие значения, такие как 11010, означают, что ping не может найти этот конкретный IP-адрес.

                      Comment

                      • Semiadmin
                        Senior Member
                        • Oct 2014
                        • 1625

                        #12
                        Ну да, так PS именно этот WMI запрос и использует. Я сначала хотел на PS пинг с агента написать, а когда это понял, решил, что посредники тут ни к чему.

                        Comment

                        Working...