Ad Widget

Collapse

isql: not found

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • egor347
    Junior Member
    • Nov 2010
    • 6

    #1

    isql: not found

    Хочу использовать мониторинг через пользовательские параметры . Суть в том чтобы подключиться к MSSQL серверу и сделать запрос , получить ответ ( число) и вывести данные в график, сделать триггер.
    К SQL я подключаюсь, настроил связку FreeTDS+ODBC
    сделал скрипт get_mssql.sh


    #!/bin/sh
    DAT=`date -v-7d +"%Y-%m-%d"`

    isql server user password <<EOF
    select ss.StepTime1, ss.delay1 ...............длинный запрос.......... as ss order by ss.StepTime1

    EOF

    сделал в конфигурационном файле агента пользовательский параметр

    UserParameter=mssql,/usr/local/etc/zabbix4/zabbix/externalscripts/get_mssql.sh | sed -e 's/|//g' -e '1,13d' | sed -e :a -e '$d;N;2,4ba' -e 'P;D' | sed -n '$p' | awk '{print $3}'

    Если запускать руками скрипт то он работает, если запустить руками вот эту длинную строку выше, то в результате получим нужное число, т.е. все ок

    Элемент данных в самом заббиксе не поддерживается
    Value "/usr/local/etc/zabbix4/zabbix/externalscripts/get_mssql.sh: isql: not found" of type "string" is not suitable for value type "Numeric (unsigned)

    Сначала думал что проблема в value type "Numeric (unsigned) , но нет , там на выходе целое число , без плавающих точек

    Проблема похоже вот тут isql: not found

    Если сделать так:

    root@aegor:/usr/local/etc/zabbix4 # zabbix_get -s 10.10.3.101 -p 10050 -k "mssql"
    /usr/local/etc/zabbix4/zabbix/externalscripts/get_mssql.sh: isql: not found
    root@aegor:/usr/local/etc/zabbix4 #

    Я догадываюсь что проблема в правах, заббикс стартует от пользователя zabbix , а эти команды стартуют от root
    Я дал этому пользователю заббикс все права на этот скрипт get_mssql.sh но что то не помогает

    Как решить проблему?
  • dedy
    Senior Member
    • Sep 2018
    • 203

    #2
    врятли тут проблема с правами, заббикс бы писал что аутификейшн файлед или типа такого, чтоб точно удостоверить выполните скрипт от имени zabbix - сомненья отпадут сразу
    isql: not found - попробуйте прописать в скрипте полный путь к программе

    Comment

    • egor347
      Junior Member
      • Nov 2010
      • 6

      #3
      Да...все так, до самого простого я не догадался...
      Прописал полный путь

      /usr/local/bin/isql server user password <<EOF
      select ss.StepTime1, ss.delay1 ...............длинный запрос.......... as ss order by ss.StepTime1

      EOF

      После этого скрипт ругнулся на TimeOut
      Поправил в конфиге агента Timeout=30


      И все заработало!!!
      Спасибо !!!

      Comment

      Working...