Ad Widget

Collapse

Глюк с внешней проверкой

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tuban
    Senior Member
    Zabbix Certified Specialist
    • Sep 2012
    • 286

    #1

    Глюк с внешней проверкой

    Всем доброго времени суток, написал вот такой скрипт для вычисления джиттера:

    Code:
    #!/bin/bash
    
    IP=$1
    REP=$2
    INT=$3
    MTU=$4
    
    if [ -z "${IP}" ] || [ -z "${REP}" ] || [ -z "${INT}" ] || [ -z "${MTU}" ]; 
    then
        echo "$0 <IP> <Количество пакетов> <Интервал между пакетами> <Размер пакета>"
        exit 1
            else
            JITTER=`mtr -r -n -c ${REP} -i ${INT} -s ${MTU} -o "M" ${IP} | grep ${IP} | awk '{print $3}'`
    #       echo ${JITTER}
            fi
    echo ${JITTER}
    exit 0
    Скрипт рабочий. Проблема в том, что когда создаю элемент данных "внешняя проверка" с типом целое с точкой, либо целое zabbix ругается:

    Code:
    jitter.sh[{HOST.CONN}, 10, 0.1, 64]] became not supported: Received value [] is not suitable for value type [Numeric (float)]
    
    jitter.sh[{HOST.CONN}, 10, 0.1, 64]] became not supported: Received value [] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
    Если указать в элементе данных текст или лог, работать начинает но значений никаких не передает.

    Если просто через echo передать значение, например 55.4, все отработает корректно.

    Что за ерунда такая?
  • tuban
    Senior Member
    Zabbix Certified Specialist
    • Sep 2012
    • 286

    #2
    Предвидя ответы, скрипт корректно отрабатывает от пользователя zabbix. От этого пользователя запущен zabbix сервер.

    Comment

    • tuban
      Senior Member
      Zabbix Certified Specialist
      • Sep 2012
      • 286

      #3
      zabbix 2.2.2

      Comment

      • tuban
        Senior Member
        Zabbix Certified Specialist
        • Sep 2012
        • 286

        #4
        Опытным путем выяснено, что проблема связанна с {HOST.CONN}. Сам ip передается скрипту, но скрипт отказывается работать. Если указать IP вручную в скрипте - все ок.
        Почему так может быть?

        Comment

        • aib
          Senior Member
          • Jan 2014
          • 1615

          #5
          Вы не пробовали ставить какие-то мелкие значения для количества повторений и Интервала между пакетами?
          Просто по умолчанию zabbix server имеет настройку TimeOut=3 секунды

          Если ваш скрипт не успел вернуть значение - то все, борода....

          Поменяйте таймауты, поставьте дополнительные echo (оставив тип вывода Text) - и посмотрите, до какого места ваш скрипт успевает выполняться.

          Да, иногда необходимо указывать полный путь до утилит, использованных в скрипте. К сожалению.
          Code:
          JITTER=`/usr/sbin/mtr -r -n -c ${REP} -i ${INT} -s ${MTU} -o "M" ${IP} | grep ${IP} | awk '{print $3}'`
          PS Для проверки длительности выполнения скрипта - запустите его с командной строки как параметр команды time.
          Code:
          # time jitter.sh
          и посмотрите, сколько времени это отнимает
          Sincerely yours,
          Aleksey

          Comment

          • tuban
            Senior Member
            Zabbix Certified Specialist
            • Sep 2012
            • 286

            #6
            В конфиге сервера -30 секунд.
            Скрипт выполняется полторы.

            Разобрался уже в чем проблема.

            Comment

            • yukra
              Senior Member
              • Apr 2013
              • 1359

              #7
              Originally posted by tuban
              Разобрался уже в чем проблема.
              И никому не скажете?

              Comment

              • tuban
                Senior Member
                Zabbix Certified Specialist
                • Sep 2012
                • 286

                #8
                Была проблема с маршрутизацией, на самом zabbix сервере.

                Comment

                Working...