Ad Widget

Collapse

zabbix user parameter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • safronowmax
    Junior Member
    • Dec 2012
    • 24

    #1

    zabbix user parameter

    Подскажите пожалуйста, настраиваю пользовательский параметр на zabbix-клиенте:
    UserParameter=mycpu,hplog -t | fgrep 'CPU (1)' | sed 's|^[^/]*/ ||;s|C.*$||'
    Данный параметр, если ввести его просто в консоли, отдает значение.
    Пытаюсь с zabbix-сервера получить значение параметра: zabbix_get –s 192.168.0.10 –p 10050 –k mycpu в ответ получаю ZBX_NOTSUPPORTED. При этом если использовать другой пользовательский параметр, например: UserParameter=uslab,cat /proc/meminfo |grep Slab |tr –d Slab:kB, то все работает нормально. В чем может быть проблема?
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Может быть
    1) в правах, не работает от пользователя zabbix
    2) Спецсимволы в исполняемой строке. Поместите код в файл, например test.sh и его вызывайте в UserParameter
    UserParameter=mycpu,/path_to_script/test.sh

    Comment

    • safronowmax
      Junior Member
      • Dec 2012
      • 24

      #3
      Originally posted by dima_dm
      Может быть
      1) в правах, не работает от пользователя zabbix
      2) Спецсимволы в исполняемой строке. Поместите код в файл, например test.sh и его вызывайте в UserParameter
      UserParameter=mycpu,/path_to_script/test.sh
      попробовал поместить код в файл, дал права 777 на test.sh, сделал test.sh владельцем zabbix, все равно то же самое

      Comment

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

        #4
        убедитесь что аккаун zabbix может найти ваш бинарник hplog без указания пути к нему.
        Если он находится гдето в sbin то обычно не находит (для юзеров папки sbin не состоят в переменной среды PATH).

        Указание полного пути помогает.

        Comment

        • safronowmax
          Junior Member
          • Dec 2012
          • 24

          #5
          Originally posted by zalex_ua
          убедитесь что аккаун zabbix может найти ваш бинарник hplog без указания пути к нему.
          Если он находится гдето в sbin то обычно не находит (для юзеров папки sbin не состоят в переменной среды PATH).

          Указание полного пути помогает.
          посмотрел логи zabbix на клиенте: hplog: You must be root to run this utility
          , т.е. получается, что надо выполнять скрипт от root'a.

          Comment

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

            #6
            Originally posted by safronowmax
            посмотрел логи zabbix на клиенте: hplog: You must be root to run this utility
            , т.е. получается, что надо выполнять скрипт от root'a.
            sudo или атрибут "set user ID on execution" помогут вам.
            Лучше sudo.

            Comment

            • safronowmax
              Junior Member
              • Dec 2012
              • 24

              #7
              Originally posted by zalex_ua
              sudo или атрибут "set user ID on execution" помогут вам.
              Лучше sudo.
              Да что-то не получается, пишу в скрипте:
              sudo hplog -t | fgrep 'CPU (1)' | sed 's|^[^/]*/ ||;s|C.*$||'
              Далее в /etc/sudoers прописываю пользователя (для проверки даю права как у root), который является владельцем скрипта:
              vbox ALL=(ALL) ALL
              Но теперь идет ошибка в логах zabbix:
              sudo: no tty present and no askpass program specified
              Last edited by safronowmax; 14-12-2012, 02:39.

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                Есть такая фича в sudo
                Запуск команд под root без пароля
                ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

                Comment

                • safronowmax
                  Junior Member
                  • Dec 2012
                  • 24

                  #9
                  Originally posted by dima_dm
                  Есть такая фича в sudo
                  Запуск команд под root без пароля
                  ray rushmore = nopasswd: /bin/kill, /bin/ls, /usr/bin/lprm
                  К сожалению, возможность проверить будет только послезавтра, потом отпишусь, помогло или нет

                  Comment

                  • safronowmax
                    Junior Member
                    • Dec 2012
                    • 24

                    #10
                    Originally posted by dima_dm
                    Есть такая фича в sudo
                    Запуск команд под root без пароля
                    ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
                    Все равно не получается, в /etc/sudoerc прописал:
                    user user-pc=NOPASSWD: /home/user/script.sh
                    Та же ошибка, при этом если с клиента запустить скрипт, то все нормально

                    Comment

                    • kirush
                      Junior Member
                      • Nov 2012
                      • 10

                      #11
                      Тоже уперся.
                      Code:
                      59444:20121216:224326.614 Requested [prefixcount]
                       59444:20121216:224326.614 In zbx_popen() command:'vtysh -c'sh ip bgp sum'|grep 194.XXX.115.89|awk '{print($10)}''
                       59444:20121216:224326.614 End of zbx_popen():6
                       70429:20121216:224326.614 zbx_popen(): executing script
                      Exiting: failed to connect to any daemons.
                       59444:20121216:224326.625 In zbx_waitpid()
                       59444:20121216:224326.626 zbx_waitpid() exited, status:0
                       59444:20121216:224326.626 End of zbx_waitpid():70429
                       59444:20121216:224326.626 Run remote command [vtysh -c'sh ip bgp sum'|grep 194.XXX.115.89|awk '{print($10)}'] Result [0] []...
                       59444:20121216:224326.626 Sending back [ZBX_NOTSUPPORTED]
                      при исполнении комманды в консоли все работает.
                      Пробовал строку запихать в скрипт, и вызывать его. Эффект тот же самый:
                      Result [0]

                      Comment

                      • Incher
                        Member
                        • Sep 2012
                        • 38

                        #12
                        Аналогичная ситуация. Имеется три пользовательских параметра для мониторинга RAID:

                        UserParameter=raid.status[*],sudo /usr/sbin/hpacucli ctrl slot=$1 show status |grep -i $2 |tail -n1 |cut -d' ' -f6

                        UserParameter=raid.volume[*],sudo /usr/sbin/hpacucli ctrl slot=$1 ld $2 show |grep -i status |cut -d' ' -f11

                        UserParameter=raid.drive.status[*],sudo /usr/sdin/hpacucli ctrl slot=$1 pd 1I:1:$2 show |grep -i status |cut -d' ' -f11

                        Первые два адекватно возвращают значения, на последний ошибка в логах zabbix "sudo: no tty present and no askpass program specified". Из консоли все команды возвращают необходимые значения.

                        при этом в /etc/sudoers прописано:
                        zabbix ALL=(ALL) NOPASSWD: /usr/sbin/hpacucli

                        Comment

                        • kirush
                          Junior Member
                          • Nov 2012
                          • 10

                          #13
                          Опечатка /sbin -> /sdin

                          Comment

                          • Incher
                            Member
                            • Sep 2012
                            • 38

                            #14
                            Originally posted by kirush
                            Опечатка /sbin -> /sdin
                            Вот что значит уже глаз замылился... Спасибо огромное))

                            Comment

                            • WarBull
                              Junior Member
                              • Feb 2012
                              • 26

                              #15
                              Скажите плиз, если сервер под видной 2003,- там естественно та же утилита для raid-массива. Какой там должен быть синтаксис?

                              Comment

                              Working...