Ad Widget

Collapse

Параллельная отправка оповещений.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AlexGluck
    Junior Member
    • Jan 2016
    • 4

    #1

    Параллельная отправка оповещений.

    Вопрос стоит просто, у нас есть скрипт смс и телефонного оповещения. Есть 3 человека получающие оповещения(смс,звонок и электронное письмо). Всего 3 вида оповещений которые необходимо одновременно всем отправлять.
    Проблема в том, что оповещения запускаются последовательно и ждут статуса завершения, а необходимо оповещать параллельно. И я совсем не понимаю как это сделать.

    Вот как приблизительно выглядит код:
    Code:
    #!/bin/bash
    to=$1
    calling () {
    if ( call );
    then
    exit 0
    else
    if ( call_from_reserve_sip );
    then
    exit 0
    else
    exit 1
    fi
    fi
    }
    calling &
    exit 0
    Code:
    #!/bin/bash
    to=$1
    sms_sending () {
    if ( sms_send );
    then
    exit 0
    else
    if ( sms_send_from_reserve_provider );
    then
    exit 0
    else
    exit 1
    fi
    fi
    }
    sms_sending &
    exit 0
  • mike_z
    Junior Member
    • Aug 2015
    • 12

    #2
    [QUOTE=AlexGluck;176962]Вопрос стоит просто, у нас есть скрипт смс и телефонного оповещения. Есть 3 человека получающие оповещения(смс,звонок и электронное письмо). Всего 3 вида оповещений которые необходимо одновременно всем отправлять.
    Проблема в том, что оповещения запускаются последовательно и ждут статуса завершения, а необходимо оповещать параллельно. И я совсем не понимаю как это сделать.




    я сделал себе скрипт на питоне, в качестве обработчика оповещений. Каждый раз он запускается в фоновом режиме и заббикс не ждет завершения.

    Попробуй запускать свой скрипт так: nohup script.sh &

    Comment

    • AlexGluck
      Junior Member
      • Jan 2016
      • 4

      #3
      Originally posted by mike_z
      Попробуй запускать свой скрипт так: nohup script.sh &
      Если я добавлю & в конце то скрипт не отрабатывает вообще, так как ему тогда не передаются параметры от заббикса (номер телефона и\или текст смс).

      Если указать nohup, то в учтённой статистике отправленных оповещений будет и неудачные потому, что скрипт не будет возвращать exit status 1.

      Как заставить именно заббикс отправлять оповещения параллельно всем по всем каналам, а не костылями со скриптами?

      Comment

      • Zentarim
        Senior Member
        • Mar 2012
        • 526

        #4
        Originally posted by AlexGluck
        Вопрос стоит просто, у нас есть скрипт смс и телефонного оповещения. Есть 3 человека получающие оповещения(смс,звонок и электронное письмо). Всего 3 вида оповещений которые необходимо одновременно всем отправлять.
        Проблема в том, что оповещения запускаются последовательно и ждут статуса завершения, а необходимо оповещать параллельно. И я совсем не понимаю как это сделать.

        Вот как приблизительно выглядит код:
        Code:
        #!/bin/bash
        to=$1
        calling () {
        if ( call );
        then
        exit 0
        else
        if ( call_from_reserve_sip );
        then
        exit 0
        else
        exit 1
        fi
        fi
        }
        calling &
        exit 0
        Code:
        #!/bin/bash
        to=$1
        sms_sending () {
        if ( sms_send );
        then
        exit 0
        else
        if ( sms_send_from_reserve_provider );
        then
        exit 0
        else
        exit 1
        fi
        fi
        }
        sms_sending &
        exit 0
        А чем вас встроенные средства zabbix не устроили?
        Создайте несколько "Способов оповещений" (к примеру SMS и Email) и повесьте на каждый из них свой скрипт. Затем создайте пользователей и добавьте нужные способы оповещения.

        Comment

        • AlexGluck
          Junior Member
          • Jan 2016
          • 4

          #5
          Originally posted by zentarim
          А чем вас встроенные средства zabbix не устроили?
          Создайте несколько "Способов оповещений" (к примеру sms и email) и повесьте на каждый из них свой скрипт. Затем создайте пользователей и добавьте нужные способы оповещения.
          И они будут отправляться последовательно. Так и сделано. Нужно распараллелить отправку созданным пользователям по созданным способам оповещений, на которые повешены свои скрипты.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Originally posted by AlexGluck
            Если я добавлю & в конце то скрипт не отрабатывает вообще, так как ему тогда не передаются параметры от заббикса (номер телефона и\или текст смс).

            Если указать nohup, то в учтённой статистике отправленных оповещений будет и неудачные потому, что скрипт не будет возвращать exit status 1.

            Как заставить именно заббикс отправлять оповещения параллельно всем по всем каналам, а не костылями со скриптами?


            Схожий вопрос.

            Comment

            • AlexGluck
              Junior Member
              • Jan 2016
              • 4

              #7
              Originally posted by sadman
              Думаю там указан полный ответ на мой вопрос. Жаль, тогда придётся смириться.

              Comment

              • mike_z
                Junior Member
                • Aug 2015
                • 12

                #8
                Originally posted by alexgluck
                Думаю там указан полный ответ на мой вопрос. Жаль, тогда придётся смириться.
                веди статистику скриптом.

                Comment

                Working...