Ad Widget

Collapse

Пересылка сообщений в Rocket.Chat

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • GerMilitaryLoli
    Junior Member
    • Feb 2021
    • 5

    #1

    Пересылка сообщений в Rocket.Chat

    Настраивал рокет и заббикс по этой инструкции

    Пользователь есть и в рокете и в заббиксе, создана рокетовская медиа, адресс, id и токен указал, канал указал при добавлении медии в пользователя, но ноль реакции, пользователя zabbix так же добавлял в чат в рокете, что я мог забыть, может кто настраивал, заранее Спасибо
  • vital8111
    Junior Member
    • Feb 2021
    • 16

    #2
    Насколько я помню там сообщения отправляются через API рокета.
    Можно попробовать отправить сообщение через API напрямую. В обход Заббикса. Картина яснее станет.

    Comment

    • GerMilitaryLoli
      Junior Member
      • Feb 2021
      • 5

      #3
      Originally posted by vital8111
      Насколько я помню там сообщения отправляются через API рокета.
      Можно попробовать отправить сообщение через API напрямую. В обход Заббикса. Картина яснее станет.
      Я триггеры чуть настроил, но лучше не стало, при попытке отправки вываливается в request error 400 "Invalid href value provided", по ощущениям как будто просто не правильно составляется тест запроса

      Comment

      • vital8111
        Junior Member
        • Feb 2021
        • 16

        #4
        Я уже не помню. Давно делал. Помню долго ковырялся. Скрипт переписывал. Но точно помню что тестил отправляя сообщения в обход заббикса.
        Тут судя по ответу неправильная ссылка

        Comment

        • GerMilitaryLoli
          Junior Member
          • Feb 2021
          • 5

          #5
          Originally posted by vital8111
          Я уже не помню. Давно делал. Помню долго ковырялся. Скрипт переписывал. Но точно помню что тестил отправляя сообщения в обход заббикса.
          Тут судя по ответу неправильная ссылка
          Ну я адресс указывал как http://ip : port . А вообще неприятно что такая вроде бы официальная вещь работает поскольку постольку

          Comment

          • vital8111
            Junior Member
            • Feb 2021
            • 16

            #6
            Помимо этого там еще должен быть ключ для доступа к API

            Comment

            • vital8111
              Junior Member
              • Feb 2021
              • 16

              #7
              Code:
              #!/bin/bash
              
              # Rocket.Chat incoming web-hook URL and user name
              url="https://rocket.example.com/hooks/$1"
              username='zabbix'
              icon_emoji=':grinning:'
              LOGFILE="/var/log/zabbix/zabbix-rocketchat.log"
              
              ## Values received by this script:
              # To = $1 (RocketChat Channel Token )
              # Subject = $2 (usually either OK or PROBLEM)
              # Message = $3 (whatever message the Zabbix action sends, preferably something like "Zabbix server is unreachable for 5 minutes - Zabbix server (127.0.0.1)")
              
              # Get the Rocketchat zabbix subject ($2 - hopefully either PROBLEM or RECOVERY)
              subject="$2"
              
              # Change color emoji depending on the subject - Green (RECOVERY), Red (PROBLEM), Yellow (UPDATE)
              if [[ "$subject" == *"Resolved"* ]]; then
              color="#00ff33"
              elif [[ "$subject" == *"Update"* ]]; then
              color="#ffcc00"
              elif [[ "$subject" == *"Problem"* ]]; then
              color="#ff2a00"
              fi
              
              
              if [[ "$subject" == *"Resolved"* ]]; then
              icon_emoji=':grinning:'
              elif [[ "$subject" == *"Update"* ]]; then
              icon_emoji=':warning:'
              elif [[ "$subject" == *"Problem"* ]]; then
              icon_emoji=':slight_frown:'
              fi
              
              # The message that we want to send to Mattermost is the "subject" value ($2 / $subject - that we got earlier)
              # followed by the message that Zabbix actually sent us ($3)
              message="${subject}: $3: http://zabbix.alisa.local/zabbix/zabbix.php?action=problem.view"
              # message="$3"
              
              # Build our JSON payload and send it as a POST request to the Mattermost incoming web-hook URL
              payload='{"username":"'$username'","emoji":"'$icon _emoji'","attachments":[{"color":"'${color}'","title":"'${subject}'","text ":"'${message}'"}]}'
              
              echo $payload>${LOGFILE}
              # Send Payload to the Rocket.Chat Server
              curl -X POST -H 'Content-Type: application/json' --data "${payload}" $url
              
              # Write errors to log
              echo "curl -X POST -H 'Content-Type: application/json' --data "${payload}" $url" 2>${LOGFILE}
              Вот такой скрипт у меня работает
              Вот мануал
              Integration between zabbix & Rocket.Chat. Contribute to Open-Future-Belgium/zabbix-Rocket.Chat development by creating an account on GitHub.

              Comment

              • GerMilitaryLoli
                Junior Member
                • Feb 2021
                • 5

                #8
                Originally posted by vital8111
                Code:
                #!/bin/bash
                
                # Rocket.Chat incoming web-hook URL and user name
                url="https://rocket.example.com/hooks/$1"
                username='zabbix'
                icon_emoji=':grinning:'
                LOGFILE="/var/log/zabbix/zabbix-rocketchat.log"
                
                ## Values received by this script:
                # To = $1 (RocketChat Channel Token )
                # Subject = $2 (usually either OK or PROBLEM)
                # Message = $3 (whatever message the Zabbix action sends, preferably something like "Zabbix server is unreachable for 5 minutes - Zabbix server (127.0.0.1)")
                
                # Get the Rocketchat zabbix subject ($2 - hopefully either PROBLEM or RECOVERY)
                subject="$2"
                
                # Change color emoji depending on the subject - Green (RECOVERY), Red (PROBLEM), Yellow (UPDATE)
                if [[ "$subject" == *"Resolved"* ]]; then
                color="#00ff33"
                elif [[ "$subject" == *"Update"* ]]; then
                color="#ffcc00"
                elif [[ "$subject" == *"Problem"* ]]; then
                color="#ff2a00"
                fi
                
                
                if [[ "$subject" == *"Resolved"* ]]; then
                icon_emoji=':grinning:'
                elif [[ "$subject" == *"Update"* ]]; then
                icon_emoji=':warning:'
                elif [[ "$subject" == *"Problem"* ]]; then
                icon_emoji=':slight_frown:'
                fi
                
                # The message that we want to send to Mattermost is the "subject" value ($2 / $subject - that we got earlier)
                # followed by the message that Zabbix actually sent us ($3)
                message="${subject}: $3: http://zabbix.alisa.local/zabbix/zabbix.php?action=problem.view"
                # message="$3"
                
                # Build our JSON payload and send it as a POST request to the Mattermost incoming web-hook URL
                payload='{"username":"'$username'","emoji":"'$icon _emoji'","attachments":[{"color":"'${color}'","title":"'${subject}'","text ":"'${message}'"}]}'
                
                echo $payload>${LOGFILE}
                # Send Payload to the Rocket.Chat Server
                curl -X POST -H 'Content-Type: application/json' --data "${payload}" $url
                
                # Write errors to log
                echo "curl -X POST -H 'Content-Type: application/json' --data "${payload}" $url" 2>${LOGFILE}
                Вот такой скрипт у меня работает
                Вот мануал
                https://github.com/Open-Future-Belgi...ix-Rocket.Chat
                Да, про такой скрипт знаю, но захотели что бы встроенно было, этот работает прекрасно

                Comment

                • vital8111
                  Junior Member
                  • Feb 2021
                  • 16

                  #9
                  Тогда не смогу помочь.
                  Начинал со встроенного но что то не задалось.
                  Перешел на скрипт

                  Comment

                  • sersad
                    Senior Member
                    • May 2009
                    • 518

                    #10

                    Взял один старый проект и его переписал, работает успешно

                    Comment

                    Working...