Ad Widget

Collapse

скрипт для Asterisk

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • glyuck
    Member
    • Jun 2014
    • 37

    #1

    скрипт для Asterisk

    Пытаюсь прикрутить мониторинг asterisk,для теста создал скрипт
    который выводит кол-во активных звонков

    Подскажите пожалуйста, почему может не работать элемент данных для проверки asteriska скриптом.
    сам скрипт
    "#!/bin/bash
    sudo /usr/sbin/asterisk -rx "core show calls" | grep "active" | cut -c 1-2
    "
    в агенте добавил строчку
    UserParameter=asterisk.activecalls,sudo -u zabbix /etc/zabbix/script/test.sh

    из консоли запускаю с параметрами
    [root@aster2 script]# sudo -u zabbix /etc/zabbix/script/test.sh
    ответ 1

    в забиксе создал проверку
    тип:Zabbix агент
    ключ asterisk.activecalls
    тип информации числовой(целое положительное)
    тип данных десятичный
    единица измерения call

    статус неактивно, куда еще можно покопать
  • Zerocool56
    Member
    • Mar 2013
    • 68

    #2
    тупой вопрос, а zabbix_agent после этого ребутали?

    Ключ через zabbix_get запрашивали с сервера напрямую, не добавляя его в объекты на сервере?

    Comment

    • glyuck
      Member
      • Jun 2014
      • 37

      #3
      агент ребутил, данные к сожалению не знаю как запрашивать с сервера

      Comment

      • Zerocool56
        Member
        • Mar 2013
        • 68

        #4
        zabbix_get -s <host> -p <port> -k asterisk.activecalls

        И я немного недопонимаю суть вашего скрипта, у вас получается, выполняется скрипт от имени zabbix (sudo -u zabbix), в котором идёт переход в root (sudo).
        По умолчанию если у вас заббикс запускается под пользователем zabbix, то sudo -s zabbix вообще не требуется (в скрипте)
        Но в скрипте идёт вызов root, пароль то при sudo вы из скрипта не выдаёте.
        дайте пользователю zabbix право напрямую выполнять /usr/sbin/asterisk -rx "core show calls"
        Тогда должно всё будет сработать

        Comment

        • glyuck
          Member
          • Jun 2014
          • 37

          #5
          не получается запустить, полный путь можете подсказать?
          bash: zabbix_get: команда не найдена

          Comment

          • Zerocool56
            Member
            • Mar 2013
            • 68

            #6
            скорее всего он у вас не установлен
            он ставится как отдельный пакет

            Comment

            • glyuck
              Member
              • Jun 2014
              • 37

              #7
              оставил в конфиге агента запись
              UserParameter=asterisk.activecalls,sudo rasterisk -x "core show calls" | grep "active" | cut -c 1-2
              проверка проходит так как в логах сервера появляется запись
              item "Aster2:asterisk.activecalls" became not supported: Received value [] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]
              в sudoers добавил zabbix ALL = NOPASSWD: /usr/sbin/asterisk
              если пробую запустить с параметром sudo -u zabbix эту команду из консоли то она выдает
              Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

              Comment

              • Zerocool56
                Member
                • Mar 2013
                • 68

                #8
                судя по всему, текст вам возвращается, а ожидается число (в заббикс-сервере)

                попробуйте zabbix_get-ом таки выгрузить результат ключа

                Comment

                • glyuck
                  Member
                  • Jun 2014
                  • 37

                  #9
                  Originally posted by zerocool56
                  судя по всему, текст вам возвращается, а ожидается число (в заббикс-сервере)

                  попробуйте zabbix_get-ом таки выгрузить результат ключа
                  пустая строчка

                  Comment

                  • Zerocool56
                    Member
                    • Mar 2013
                    • 68

                    #10
                    значит у вас как-то неправильно возвращается значение.
                    попробуйте просто в консоли выполнить руками
                    Code:
                    #sudo -u zabbix
                    #/usr/sbin/asterisk -rx "core show calls" | grep "active" | cut -c 1-2
                    В консоли, что оно вам возвращает?

                    Comment

                    • glyuck
                      Member
                      • Jun 2014
                      • 37

                      #11
                      Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

                      Comment

                      • Zerocool56
                        Member
                        • Mar 2013
                        • 68

                        #12
                        Пользователь zabbix не может подключиться на управление к астериску
                        Потому данные и не возвращаются правильно.

                        Могу в качестве теста предложить запускать zabbix от root.

                        Для этого можно добавить
                        Code:
                        AllowRoot=1

                        Comment

                        • glyuck
                          Member
                          • Jun 2014
                          • 37

                          #13
                          добавил этот параметр агенту и ребутнул всю систему, все так же

                          Comment

                          • sadman
                            Senior Member
                            • Dec 2010
                            • 1611

                            #14
                            ...или убрать все sudo, кроме как в скрипте /etc/zabbix/script/test.sh

                            Запустить его, убедиться, что что-то возвращается в консоль. Проверить права на выполнение пользователем zabbix, в конфиг агенту написать UserParameter=asterisk.activecalls,/etc/zabbix/script/test.sh, агента перезапустить, zabbix_get-ом проверить получаемую строку.

                            Comment

                            • glyuck
                              Member
                              • Jun 2014
                              • 37

                              #15
                              Originally posted by sadman
                              ...или убрать все sudo, кроме как в скрипте /etc/zabbix/script/test.sh

                              Запустить его, убедиться, что что-то возвращается в консоль. Проверить права на выполнение пользователем zabbix, в конфиг агенту написать UserParameter=asterisk.activecalls,/etc/zabbix/script/test.sh, агента перезапустить, zabbix_get-ом проверить получаемую строку.
                              я запускаю уже без скрипта, так же оставил только в конфиге строчку
                              /usr/sbin/asterisk -rx "core show calls" | grep "active" | cut -c 1-2, а когда запускаю из консоли под пользователем zabbix, добавляю sudo -u zabbix

                              Comment

                              Working...