Ad Widget

Collapse

Уведомления Zabbix в Telegram

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Vandercast
    Junior Member
    • Jun 2017
    • 9

    #1

    Уведомления Zabbix в Telegram

    Уважаемые форумчане!
    Подскажите, пожалуйста возможные пути решения проблемы:
    - Не приходят уведомление от бота в телеграм. От сервера Zabbix.
    Общая информация:

    - Zabbix 3.2.3
    - OS FreeBSD 11.0.

    Тело используемого скрипта:
    Code:
    # vim /usr/local/etc/zabbix32/zabbix//alertscripts/zabbix_notify.sh
    
    #!/usr/local/bin/bash
    
    TOKEN='тут мой токен'
    
    which curl &>/tmp/telegram.log
    
    if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
    if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi
    
    CHAT_ID="$1"
    SUBJECT="$2"
    MESSAGE="$3"
    
    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" | $
    
    if [ $? -eq 0 ] ; then exit 1 ; fi
    Владельцем файла назначен zabbix.
    Выполнена команда: chmod +x zabbix_notify.sh

    Скрины настроек Zabbix я прикрепил.

    Уведомления исправно приходят на email но не в телеграм.
    Если запускать скрипт вручную от любого пользователя, с параметрами:
    ./zabbix_notify.sh "my ID" "test" "test"
    Все, так же исправно. Надеюсь на Ваш совет.
  • Nagainos
    Member
    • Oct 2016
    • 46

    #2
    Проверьте наличие права на исполнение для группы пользователей zabbix

    Comment

    • Vandercast
      Junior Member
      • Jun 2017
      • 9

      #3
      Originally posted by Nagainos
      Проверьте наличие права на исполнение для группы пользователей zabbix
      Выполнил последовательно эти команды:
      chmod 777 zabbix_notify.sh
      # chown zabbix:zabbix zabbix_notify.sh

      Но ничего не изменилось, есть еще моменты на которые стоит обратить внимание.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by vandercast
        Выполнил последовательно эти команды:
        Chmod 777 zabbix_notify.sh
        # chown zabbix:zabbix zabbix_notify.sh

        Но ничего не изменилось, есть еще моменты на которые стоит обратить внимание.
        прежде чем бот сможет писать вам, вы должны написать ему что-либо первым(или упомянуть его имя на канале, если пишите не в приват).

        Comment

        • Vandercast
          Junior Member
          • Jun 2017
          • 9

          #5
          Originally posted by yukra
          прежде чем бот сможет писать вам, вы должны написать ему что-либо первым(или упомянуть его имя на канале, если пишите не в приват).
          В приват он должен писать, но не хочет. Вручную, из консоли запуск скрипта, с параметрами, приводит к успешному получению алерта.

          Создается впечатление, что zabbix вообще не дергает даже скрипт. Если выполняю вручную скрипт с параметрами - "ID" test test - все приходит. И в dump.txt:

          HTTP/1.1 200 OK
          Server: nginx/1.10.1
          Date: Tue, 13 Jun 2017 13:35:53 GMT
          Content-Type: application/json
          Content-Length: 217
          Connection: keep-alive
          Access-Control-Allow-Origin: *
          Access-Control-Allow-Methods: GET, POST, OPTIONS
          Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
          Strict-Transport-Security: max-age=31536000; includeSubdomains

          Добавил строку в скрипт - curl --dump-header /tmp/dump.txt -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT} \n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | $

          Если жду алерта от Zabbix, то ничего не происходит, совсем.
          Last edited by Vandercast; 13-06-2017, 15:46.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Originally posted by Vandercast
            Если жду алерта от Zabbix, то ничего не происходит, совсем.
            "Отчеты - Журнал действий" есть события "уведомления через телеграмм"? Они для нужных пользователей? Успешны? По результатам или крутить настройки заббикса или где-то в системе права\разрешения\etc.

            Кстати если я не путаю у меня была проблема: изначально тестировал из-под рута, создался какой-то временный файл от рута, а потом скрипт от пользователя zabbix не мог его прочитать\перезаписать или что-то около того.

            Comment

            • Vandercast
              Junior Member
              • Jun 2017
              • 9

              #7
              Originally posted by yukra
              "Отчеты - Журнал действий" есть события "уведомления через телеграмм"? Они для нужных пользователей? Успешны? По результатам или крутить настройки заббикса или где-то в системе права\разрешения\etc.

              Кстати если я не путаю у меня была проблема: изначально тестировал из-под рута, создался какой-то временный файл от рута, а потом скрипт от пользователя zabbix не мог его прочитать\перезаписать или что-то около того.
              13.06.2017 16:30:08 Telegram Triggers Telegram Admin (Zabbix Administrator)
              2824565465 Тема:
              PROBLEM:Ping state

              Сообщение:
              Trigger: Ping state
              Status: PROBLEM
              Severity: Warning
              Last value: Down (0)
              IP address 192.168.0.101

              Item values:

              1.ICMP ping (mail.interer.gr:icmpping): Down (0)

              Zabbix отчитался, что все сделал, но результата не было.
              Запускал скрипт из консоли от пользователя zabbix - все нормально.
              Права вроде бы выставил, владельца скрипта - назначил заббикс.

              Они для нужных пользователей? - Создал еще пользователя, на всякий случай, ему тоже не приходит

              Comment

              • Nagainos
                Member
                • Oct 2016
                • 46

                #8
                Скопируйте скрипт в каталог с алерт скриптами, попробуйте разослать оповещения и посмотреть что свалится в файл /tmp/tg.log
                Code:
                #!/bin/bash
                
                echo $0 $1 $2 $3 $4 $5 > /tmp/tg.log
                Если ничего не свалится - значит скрипт лежит не там, где нужно

                Ещё могу порекомендовать https://github.com/ableev/Zabbix-in-Telegram чтобы не мучатся с написанием кода на shell

                Comment

                • yukra
                  Senior Member
                  • Apr 2013
                  • 1359

                  #9
                  Originally posted by Vandercast
                  13.06.2017 16:30:08 Telegram Triggers Telegram Admin (Zabbix Administrator)
                  2824565465 Тема:
                  PROBLEM:Ping state

                  Сообщение:
                  Trigger: Ping state
                  Status: PROBLEM
                  Severity: Warning
                  Last value: Down (0)
                  IP address 192.168.0.101

                  Item values:

                  1.ICMP ping (mail.interer.gr:icmpping): Down (0)

                  Zabbix отчитался, что все сделал, но результата не было.
                  Запускал скрипт из консоли от пользователя zabbix - все нормально.
                  Права вроде бы выставил, владельца скрипта - назначил заббикс.

                  Они для нужных пользователей? - Создал еще пользователя, на всякий случай, ему тоже не приходит
                  "Состояние" я так понимаю "Отправлено"? Предлагаю перенастроить уведомления с zbxtg.py на zbxtg.sh, в zbxtg.sh написать что-то типа такого https://pastebin.com/6K7kRdfn и внимательно смотреть в /tmp/zbx_tg_debug_log

                  Comment

                  • Nagainos
                    Member
                    • Oct 2016
                    • 46

                    #10
                    Originally posted by yukra
                    Предлагаю перенастроить уведомления с zbxtg.py на zbxtg.sh, в zbxtg.sh написать что-то типа такого https://pastebin.com/6K7kRdfn и внимательно смотреть в /tmp/zbx_tg_debug_log
                    Невнимательно читаете тему, до zbxtg человек ещё не дошёл =)

                    Comment

                    • Vandercast
                      Junior Member
                      • Jun 2017
                      • 9

                      #11
                      Да, состояние отправлено. У меня не zbxtg.py - а простой скрипт на баш.

                      Comment

                      • Vandercast
                        Junior Member
                        • Jun 2017
                        • 9

                        #12
                        Originally posted by nagainos
                        Скопируйте скрипт в каталог с алерт скриптами, попробуйте разослать оповещения и посмотреть что свалится в файл /tmp/tg.log
                        Code:
                        #!/bin/bash
                        
                        echo $0 $1 $2 $3 $4 $5 > /tmp/tg.log
                        Если ничего не свалится - значит скрипт лежит не там, где нужно

                        Ещё могу порекомендовать https://github.com/ableev/zabbix-in-telegram чтобы не мучатся с написанием кода на shell
                        Хотел уточнить, создаю новый скрипт с этим содержимым, потом меняю алерт скрипт в заббиксе на новосозданный и жду от него уведомлений и смотрю логи, верно?

                        Comment

                        • Nagainos
                          Member
                          • Oct 2016
                          • 46

                          #13
                          Originally posted by Vandercast
                          Хотел уточнить, создаю новый скрипт с этим содержимым, потом меняю алерт скрипт в заббиксе на новосозданный и жду от него уведомлений и смотрю логи, верно?
                          Да, всё так. И не забываем про права на пользователя, группу и other's

                          Comment

                          • yukra
                            Senior Member
                            • Apr 2013
                            • 1359

                            #14
                            Originally posted by nagainos
                            Невнимательно читаете тему, до zbxtg человек ещё не дошёл =)
                            Я на форум писать прихожу, а не читать В смысле "имена скриптов отредактировать по месту, я просто скопировал из своей системы". Ну и вообще складывается ощущение что мы тут не подсказать направление пытаемся, а угадать точную причину без какой либо минимальной диагностики.

                            Comment

                            • Vandercast
                              Junior Member
                              • Jun 2017
                              • 9

                              #15
                              Originally posted by yukra
                              Я на форум писать прихожу, а не читать В смысле "имена скриптов отредактировать по месту, я просто скопировал из своей системы". Ну и вообще складывается ощущение что мы тут не подсказать направление пытаемся, а угадать точную причину без какой либо минимальной диагностики.
                              Если нужна дополнительная информация, все предоставлю. Сам угадывать не люблю.

                              Comment

                              Working...