Ad Widget

Collapse

Zabbix не передает параметры скрипту

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • gia445
    Junior Member
    • May 2018
    • 3

    #1

    Zabbix не передает параметры скрипту

    Здравствуйте, столкнулся с такой проблемой. Пытаюсь настроить звонки/отправку смс через портал smsc.ru. Но проблема в том, что Zabbix не хочет передавать параметры {ALERT.SENDTO},{ALERT.SUBJECT} и {ALERT.MESSAGE}.



    Использую такой скрипт:

    #!/bin/bash

    TO_NUMBER="$1"
    echo "Phone: [${TO_NUMBER}]" >> "/var/log/zabbix/smsc.txt"
    SUBJECT="$2"
    echo "Subject: [${SUBJECT}]" >> "/var/log/zabbix/smsc.txt"
    MESSAGE="$3"
    echo "Message: [${MESSAGE}]" >> "/var/log/zabbix/smsc.txt"

    . /usr/local/etc/smsc/smsc.conf

    SMSC_URL=${SMSC_URL:-"https://smsc.ru/sys/send.php"}

    echo "URL: [${SMSC_URL}]" >> "/var/log/zabbix/smsc.txt"

    TO_NUMBER=$(echo "${TO_NUMBER}" | sed 's/[^0123456789]//g')
    echo "Processed phone: [${TO_NUMBER}]" >> "/var/log/zabbix/smsc.txt"


    NL='
    '

    RESULT=$(curl --get --silent --show-error \
    --data-urlencode "login=${USER_ID}" \
    --data-urlencode "psw=${PASSWORD}" \
    --data-urlencode "phones=${TO_NUMBER}" \
    --data-urlencode "mes=${SUBJECT}${NL}${MESSAGE}" \
    --data-urlencode "call="call=1""\
    --data-urlencode "voice="voice=m""\
    --data-urlencode "translit="translit=0""\
    "${SMSC_URL}" 2>&1
    )

    echo "Result: [${RESULT}]" >> "/var/log/zabbix/smsc.txt"
    STATUS=$?

    echo ${RESULT}

    exit ${STATUS}


    В логах пишет что полученные параметры пустые:

    Phone: []
    Subject: []
    Message: []
    URL: [https://smsc.ru/sys/send.php]
    Processed phone: []
    Result: [ERROR = 1 (parameters error)]


    Что я делаю не так?
    Искал по форуму, не нашёл такой проблемы.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    В настройках действия (Actions) заданы и Subject, и Message? На вкладке "Operations" задано ли отправлять уведомление именно через этот канал доставки ("Call") и перечислены пользователи?
    В свойствах этих пользователей указаны ли нужные телефоны в качестве адресов именно для данного канала доставки?

    Comment

    • gia445
      Junior Member
      • May 2018
      • 3

      #3
      Originally posted by Kos
      В настройках действия (Actions) заданы и Subject, и Message? На вкладке "Operations" задано ли отправлять уведомление именно через этот канал доставки ("Call") и перечислены пользователи?
      В свойствах этих пользователей указаны ли нужные телефоны в качестве адресов именно для данного канала доставки?
      Все данные были указаны правильно. Проблема была совсем в другом.
      Скачивал данный модуль с гита https://github.com/iperminov/zabbix-smsc

      В папке usr/lib/zabbix/alertscripts находился файл smsc.sh с содержанием:

      /usr/local/bin/smsc.sh

      (Не особо понятно зачем это нужно было делать)

      далее сам рабочий скрипт располагался по указанному пути /usr/local/bin/smsc.sh
      В итоге, когда zabbix передавал данные скрипту usr/lib/zabbix/alertscripts/smsc.sh, он запускал сам скрипт по пути /usr/local/bin/smsc.sh соответственно без дополнительных параметров.

      Есть несколько решений для исправления данной проблемы:

      1) добавить в файле usr/lib/zabbix/alertscripts/smsc.sh в конце скрипта /usr/local/bin/smsc.sh "$@" чтобы прокидывать параметры далее.
      2) сделать линк между файлами https://linux.die.net/man/1/ln
      3) переместить сам рабочий скрипт с /usr/local/bin/ в usr/lib/zabbix/alertscripts/

      Comment

      Working...