Ad Widget

Collapse

не работают оповещения

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tjma
    Junior Member
    • Apr 2016
    • 9

    #1

    не работают оповещения

    Добрый день, может кто нибудь помочь телепатией, потому что я не знаю что еще проверить.
    не отправляет уведомления через скрипт для телеграма.
    Причем через скрипт для почты отправляет нормально.
    сам скрипт телеграма нормально работает, проверено из консоли.
    В скрипт специально надобавлял передачу данных в файл, чтобы посмотреть в чем затык, но логфайл пуст, такое ощущение что заббикс не дергает скрипт почему то.
    код скрипта:
    Code:
    #!/bin/bash
    
    TOKEN='my_tocken'
    
    which curl &>> ./logs/newtelegram.log
    if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi >> ./logs/newtelegram.log
    if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi >> ./logs/newtelegram.log
    
    CHAT_ID="$1"
    SUBJECT="$2"
    MESSAGE="$3"
    echo $CHAT_ID >>  ./logs/newtelegram.log
    echo $SUBJECT >>  ./logs/newtelegram.log
    echo $MESSAGE >>  ./logs/newtelegram.log
    
    date >>  ./logs/newtelegram.log
    
    echo "curl -s --header 'Content-Type: application/json' --request 'POST' --data \"{\\\"chat_id\\\":\\\"${CHAT_ID}\\\",\\\"text\\\":\\\"${SUBJECT}\\n${MESSAGE}\\\"}\" \"https://api.telegram.org/bot${TOKEN}/sendMessage\\\"" >>  ./logs/new$
    curl -s --header  'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" >>  ./logs/newtelegram.log
    
    date >>  ./logs/newtelegram.log
    права на скрипт -rwxr-xr-x 1 zabbix zabbix 1047 июня 1 18:01 telegram.sh
    настройки пользователя и скрипта в заббиксе




    права пользователя заббикс супер админ, группы пользователя заббикс администратор.
    если я в действия добавляю пользователя с email то на email уведомление приходит. В панели мониторинга заббикс показывает что отправлено и на email и на телеграм.
    в логах забикс-сервера никаких ошибок не видно. не знаю куда смотреть.
    Last edited by tjma; 02-06-2016, 09:08. Reason: отредактировал скрипт немного. р
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Шаг 1: выпасть в su zabbix и позапускать скрипт руками;
    Шаг 2: заменить в работающем action скрипт на telegram.sh
    ....

    Comment

    • tjma
      Junior Member
      • Apr 2016
      • 9

      #3
      sadman
      спасибо!
      первый совет помог. Но дело не просто в пользователе.
      оказалось что root у меня почему-то понимает ./logs/newtelegram.log
      а пользователь zabbix не понимает путь ./logs/newtelegram.log
      хотя путь общий /etc/zabbix/externalscripts/telegram.sh
      /etc/zabbix/externalscripts/logs/newtelegram.log
      указав вместо ./logs/newtelegram.log полный путь скрипт отработал и заббикс прислал уведомление

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by tjma
        sadman
        спасибо!
        первый совет помог. Но дело не просто в пользователе.
        оказалось что root у меня почему-то понимает ./logs/newtelegram.log
        а пользователь zabbix не понимает путь ./logs/newtelegram.log
        хотя путь общий /etc/zabbix/externalscripts/telegram.sh
        /etc/zabbix/externalscripts/logs/newtelegram.log
        указав вместо ./logs/newtelegram.log полный путь скрипт отработал и заббикс прислал уведомление
        А рабочая директория у скрипта во что-то выставлена была? или вы предположили что "относительный путь './logs/newtelegram.log'" будет считаться от пути, где лежит скрипт?

        Вероятнее всего логи пытались писаться в /./logs/newtelegram.log (то есть просто в /logs/newtelegram.log), но им не хватило прав на это.

        Comment

        • ViolatorDM
          Junior Member
          • Nov 2013
          • 5

          #5
          Прошу помочь разобраться - сам что-то уже всё перевертел, но результата нет.

          Из командной строки запускаю скрипт:
          Code:
          su zabbix telegram2.sh Telegram_id 'Test subj' 'Test message'
          Результат: сообщение приходит, в логах записи есть.

          В Zabbix 3.0.2 создал Способ оповещения, прописал в нём {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}; пользователю оповещение добавил с привязкой на скрипт.

          В итоге на срабатывание триггера ничего не приходит, в логе - пусто, но в Журнале действий всё нормально. Состояние - Отправлено.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Originally posted by ViolatorDM
            Прошу помочь разобраться - сам что-то уже всё перевертел, но результата нет.

            Из командной строки запускаю скрипт:
            Code:
            su zabbix telegram2.sh Telegram_id 'Test subj' 'Test message'
            Результат: сообщение приходит, в логах записи есть.

            В Zabbix 3.0.2 создал Способ оповещения, прописал в нём {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE}; пользователю оповещение добавил с привязкой на скрипт.

            В итоге на срабатывание триггера ничего не приходит, в логе - пусто, но в Журнале действий всё нормально. Состояние - Отправлено.
            Кроме как наставить в скрипт echo "переменная или контрольная точка" >> ~/log.txt посоветовать нечего. Посмотрите, что там от заббикса приходит в реальности через макросы.

            Comment

            • ViolatorDM
              Junior Member
              • Nov 2013
              • 5

              #7
              Так есть в скрипте:
              Code:
              echo "curl -s --header 'Content-Type: application/json' --request 'POST' --data \"{\\\"chat_id\\\":\\\"${CHAT_ID}\\\",\\\"text\\\":\\\"${SUBJECT}\\n${MESSAGE}\\\"}\" \"https://api.telegram.org/bot${TOKEN}/sendMessage\\\"" >>  /tmp/telegram2.log
              Ничего не добавляется в лог от действий Zabbix. Руками запускаю - запись идёт.

              Comment

              • Kos
                Senior Member
                Zabbix Certified SpecialistZabbix Certified Professional
                • Aug 2015
                • 3404

                #8
                Originally posted by ViolatorDM
                Так есть в скрипте:
                Code:
                echo "[...много_всего...]" >>  /tmp/telegram2.log
                Ничего не добавляется в лог от действий Zabbix. Руками запускаю - запись идёт.
                Глупый вопрос: а файл /tmp/telegram2.log уже существует? Какие права на него?
                Просто я себе наглядно представил ситуацию, когда один раз запустили скрипт руками для проверки (от root-а), лог-файл создался (соответственно, доступный на запись только root-у), а потом, когда скрипт запускается от имени пользователя zabbix, то элементарно нет прав в этот лог-файл что-то дописать.

                Comment

                • ViolatorDM
                  Junior Member
                  • Nov 2013
                  • 5

                  #9
                  Originally posted by Kos
                  Глупый вопрос: а файл /tmp/telegram2.log уже существует? Какие права на него?
                  Это я перепроверил - криминала не вижу.
                  Code:
                  -rw-rw-rw-  1 zabbix  wheel  1944 Jul 21 12:42 /tmp/telegram2.log

                  Comment

                  Working...