Ad Widget

Collapse

Возврат неверного значения из скрипта

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sashker
    Junior Member
    • Feb 2013
    • 3

    #1

    Возврат неверного значения из скрипта

    Здравствуйте.

    Столкнулся с весьма странным поведением Zabbix.
    Пытаюсь мониторить количество открытых файлов определенным процессом.

    На агенте прописал:
    UserParameter=mysqld.openfiles,lsof -c mysqld|wc -l. Данная команда в системе возвращает значение - 366.

    Проверяю на сервере: zabbix_get -s agent1 -k "mysqld.openfiles" и мне приходит значение "9".

    Засунул ту же самую команду в отдельный скрипт и изменил в конфиге агента
    UserParameter=mysqld.openfiles,/etc/zabbix/scripts/mysqld_openfiles.sh.

    Проверил в системе вывод скрипта - те же самые 366, проверяю zabbix_get - возвращается значение "24".

    Чем можно объяснить это?
  • Fullmetal8ender
    Member
    • Nov 2012
    • 81

    #2
    Мб не достаточно прав?
    Попробуй измени для этого итема тип данных на text а в скрипте убери из скрипта "|wc -l"
    и ты увидеш то, что видит заббикс.

    Comment

    • dima_dm
      Senior Member
      • Dec 2009
      • 2697

      #3
      От какого пользователя запускаете скрипт в системе? Должен быть пользователь zabbix.
      Попробуйте так
      su - zabbix
      /etc/zabbix/scripts/mysqld_openfiles.sh

      Comment

      • sashker
        Junior Member
        • Feb 2013
        • 3

        #4
        Originally posted by dima_dm
        От какого пользователя запускаете скрипт в системе? Должен быть пользователь zabbix.
        Попробуйте так
        su - zabbix
        /etc/zabbix/scripts/mysqld_openfiles.sh
        Пробовал различные варианты.

        su - zabbix /etc/zabbix/scripts/mysqld_openfiles.sh благополучно выводит верное значение. Однако zabbix_get упорно выводит 0. В логах никаких ошибок нет - просто значение 0.

        На скрипт установлен владелец zabbix и привилегии повышены до 777.

        Comment

        • Fullmetal8ender
          Member
          • Nov 2012
          • 81

          #5
          Наверное дело в том, что у пользователя заббикс нет оболочки (/bin/false или чето подобное)
          Команду выполнять надо было
          su - zabbix -c 'lsof -c mysqld'
          у меня она тоже ничего не выдает, а вот
          su - другойюзер -c 'lsof -c mysqld' выдает много
          Permission denied
          Так что вы от заббикса её не запустите.
          Попробуйте использовать sudo что бы запускать её от рута

          Comment

          Working...