Ad Widget

Collapse

Не выполняются скрипты из /usr/lib/zabbix/externalscripts

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Lieutenant
    Junior Member
    • Feb 2020
    • 7

    #1

    Не выполняются скрипты из /usr/lib/zabbix/externalscripts

    Добрый день.

    Создан скрипт ssl_cert_check.sh
    Положил его в /usr/lib/zabbix/externalscripts. При попытке его выполнить пишет:
    • sh: 1: ssl_cert_check.sh: not found
    • Не удалось выполнить скрипт
    Если прописываю полный путь - скрипт выполняется.

    Подскажите, пожалуйста, в чем может быть проблема? Спасибо
  • DSV12
    Senior Member
    Zabbix Certified Specialist
    • Nov 2018
    • 156

    #2
    Originally posted by Lieutenant
    Добрый день.

    Создан скрипт ssl_cert_check.sh
    Положил его в /usr/lib/zabbix/externalscripts. При попытке его выполнить пишет:
    • sh: 1: ssl_cert_check.sh: not found
    • Не удалось выполнить скрипт
    Если прописываю полный путь - скрипт выполняется.

    Подскажите, пожалуйста, в чем может быть проблема? Спасибо
    А в /etc/zabbix/zabbix_server.conf путь прописали?:
    ...
    ExternalScripts=/usr/lib/zabbix/externalscripts
    ...

    Comment

    • Lieutenant
      Junior Member
      • Feb 2020
      • 7

      #3
      Originally posted by DSV12

      А в /etc/zabbix/zabbix_server.conf путь прописали?:
      ...
      ExternalScripts=/usr/lib/zabbix/externalscripts
      ...
      Да, проверил - там уже было так:

      /etc/zabbix/zabbix_server.conf

      ...
      ExternalScripts=/usr/lib/zabbix/externalscripts
      ...

      Права: -rwxrwxr-x 1 zabbix zabbix 2361 фев 18 15:57 ssl_cert_check.sh


      Comment

      • exesition
        Senior Member
        • Nov 2019
        • 121

        #4
        Originally posted by Lieutenant

        Да, проверил - там уже было так:

        /etc/zabbix/zabbix_server.conf

        ...
        ExternalScripts=/usr/lib/zabbix/externalscripts
        ...

        Права: -rwxrwxr-x 1 zabbix zabbix 2361 фев 18 15:57 ssl_cert_check.sh

        После внесения правок в zabbix_server.conf рестартовали службу?
        Как прописали скрипт в вебморде?

        Comment

        • Victor Vislobokov
          Senior Member
          • Aug 2018
          • 298

          #5
          Случайно SELinux у вас не включен?

          Comment

          • Lieutenant
            Junior Member
            • Feb 2020
            • 7

            #6
            Originally posted by exesition

            После внесения правок в zabbix_server.conf рестартовали службу?
            Как прописали скрипт в вебморде?
            Да, службу рестартовал. Скрипт прописал так: Click image for larger version  Name:	script1.png Views:	0 Size:	22.9 KB ID:	396259

            Comment

            • Lieutenant
              Junior Member
              • Feb 2020
              • 7

              #7
              Originally posted by Victor Vislobokov
              Случайно SELinux у вас не включен?
              Нет, не включен.

              Comment

              • DSV12
                Senior Member
                Zabbix Certified Specialist
                • Nov 2018
                • 156

                #8
                А не с shebang-ом ли проблема 'sh: 1: ssl_cert_check.sh: not found' связана? Что у вас в самой первой строке вашего ssl_cert_check.sh написано? У меня (centos 7), в лобовую баш прописан: #!/bin/bash. Такая ошибка, как у вас, возникала, н-р, с некоторыми питоновскими скриптами, которые народ брал с гитхаба, у них шебанг был:
                Code:
                #!/bin/env python
                а бывает в некоторых осах, что нужно менять путь до env:
                Code:
                 #!/usr/bin/env python
                Если у вас шелл определяется через env, проверьте, что шебанг и 'which env' совпадают.

                UPD: Во, точно, похоже оно - в убунте:
                Code:
                # which env
                /usr/bin/env
                а в centos-е:
                Code:
                # which env
                /bin/env
                Проверяйте первую строку своего скрипта!
                Last edited by DSV12; 25-02-2020, 12:34.

                Comment

                • Lieutenant
                  Junior Member
                  • Feb 2020
                  • 7

                  #9
                  Originally posted by DSV12
                  А не с shebang-ом ли проблема 'sh: 1: ssl_cert_check.sh: not found' связана? Что у вас в самой первой строке вашего ssl_cert_check.sh написано? У меня (centos 7), в лобовую баш прописан: #!/bin/bash. Такая ошибка, как у вас, возникала, н-р, с некоторыми питоновскими скриптами, которые народ брал с гитхаба, у них шебанг был:

                  Проверяйте первую строку своего скрипта!
                  В скрипте так:
                  Code:
                  #!/bin/bash
                  Code:
                  # which env
                  /usr/bin/env
                  При этом что бы я в скрипте не прописывал - он работает по полному пути и не работает из этого каталога.

                  Code:
                  root@zabbix4:/usr/lib/zabbix/externalscripts# ssl_cert_check.sh expire ya.ru 443
                  -su: ssl_cert_check.sh: команда не найдена
                  root@zabbix4:/usr/lib/zabbix/externalscripts# /usr/lib/zabbix/externalscripts/ssl_cert_check.sh expire ya.ru 443
                  54
                  root@zabbix4:/usr/lib/zabbix/externalscripts#

                  Comment

                  • DSV12
                    Senior Member
                    Zabbix Certified Specialist
                    • Nov 2018
                    • 156

                    #10
                    Originally posted by Lieutenant


                    При этом что бы я в скрипте не прописывал - он работает по полному пути и не работает из этого каталога.

                    Code:
                    root@zabbix4:/usr/lib/zabbix/externalscripts# ssl_cert_check.sh expire ya.ru 443
                    -su: ssl_cert_check.sh: команда не найдена
                    root@zabbix4:/usr/lib/zabbix/externalscripts# /usr/lib/zabbix/externalscripts/ssl_cert_check.sh expire ya.ru 443
                    54
                    root@zabbix4:/usr/lib/zabbix/externalscripts#
                    Ну вы, блин, даёте! Азы -никсовских шеллов - в отличие от винды, текущий каталог (.) НЕ входит в путь. Т.е., запускать скрипт (и любой другой исполняемый файл) из текущего каталога надо так:
                    Code:
                    root@zabbix4:/usr/lib/zabbix/externalscripts# [B]./[/B]ssl_cert_check.sh expire ya.ru 443
                    В bash-е (как у вас) работает completion - можно, набрав несколько первых символов команды, нажать [TAB] и увидеть автоматическое дополнение (или варианты, если их несколько). В вашем случае, находясь в каталоге /usr/lib/zabbix/externalscripts, можно было легко проверить, в path-е ваш скрипт или нет, н-р, набрав ssl_ - нажать [TAB] и убедиться, что никакой команды, начинающейся с этих символов - НЕТ! Сравните, если вы, находясь в этом же каталоге, введёте ./ssl_ и нажмёте [TAB].

                    Comment

                    • Lieutenant
                      Junior Member
                      • Feb 2020
                      • 7

                      #11
                      Originally posted by DSV12

                      Ну вы, блин, даёте! Азы -никсовских шеллов - в отличие от винды, текущий каталог (.) НЕ входит в путь. Т.е., запускать скрипт (и любой другой исполняемый файл) из текущего каталога надо так:
                      Code:
                      root@zabbix4:/usr/lib/zabbix/externalscripts# [B]./[/B]ssl_cert_check.sh expire ya.ru 443
                      В bash-е (как у вас) работает completion - можно, набрав несколько первых символов команды, нажать [TAB] и увидеть автоматическое дополнение (или варианты, если их несколько). В вашем случае, находясь в каталоге /usr/lib/zabbix/externalscripts, можно было легко проверить, в path-е ваш скрипт или нет, н-р, набрав ssl_ - нажать [TAB] и убедиться, что никакой команды, начинающейся с этих символов - НЕТ! Сравните, если вы, находясь в этом же каталоге, введёте ./ssl_ и нажмёте [TAB].
                      Спасибо, что возитесь со мной!. Я только начал никсы изучать.
                      Да, из строки он теперь запускается, Но как его прописать в zabbix? Не работает ни с ./, ни без него. Вообще задача - создать шаблон и применить его к некоему набору серверов. И для начала я хотел просто привязать внешний скрипт.

                      Comment

                      • Lieutenant
                        Junior Member
                        • Feb 2020
                        • 7

                        #12
                        Спасибо! Я сделал. Ключ в элементе данных выглядит так: ssl_cert_check.sh[expire,ya.ru,443] и отдает значение.

                        Еще раз спасибо.

                        Comment

                        Working...