Ad Widget

Collapse

Как слать траппер с мобильного телефона?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • D.Frolov
    Member
    • Apr 2020
    • 95

    #1

    Как слать траппер с мобильного телефона?

    Есть задача - мониторить метрику на мобильном телефоне.
    1. Официального агента под Android нет
    2. Sender тоже нет
    3. В голову приходить мысль послать трапер, НО как...может кто подскажет и покажет примеры реализации такой задачи?
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #2
    Что-то с ходу не нашел в документации формат посылаемых данных, но насколько помню, там стандартный пост запрос. Можно отловить тспдампом, если в доках не найдешь.
    Или как вариант использовать что-то промежуточное.
    Например метрику скидывай на свой сервак, к кторому есть доступ, а потом заббиксом забирай оттуда.

    Comment

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

      #3
      Формат данных, пересылаемых Zabbix Sender-ом, описан здесь. И запросу, и ответу предшествует бинарный заголовок, описанный здесь.

      Начиная с версии Zabbix 7.0, для отсылки значений в качестве альтернативы можно использовать API - метод history.push (ссылка, english). Преимущество в том, что это стандартный HTTP/HTTPS запрос, легко реализуемый на любом языке программирования; в сочетании с аутентификацией по токенам (ссылка) отсылка одного или нескольких значений выполняется одним запросом.

      В обоих случаях тип элемента данных должен быть "Zabbix trapper".
      Last edited by Kos; 29-11-2024, 09:42.

      Comment

      • D.Frolov
        Member
        • Apr 2020
        • 95

        #4
        Originally posted by Kos
        Формат данных, пересылаемых Zabbix Sender-ом, описан здесь. И запросу, и ответу предшествует бинарный заголовок, описанный здесь.

        Начиная с версии Zabbix 7.0, для отсылки значений в качестве альтернативы можно использовать API - метод history.push (ссылка, english). Преимущество в том, что это стандартный HTTP/HTTPS запрос, легко реализуемый на любом языке программирования; в сочетании с аутентификацией по токенам (ссылка) отсылка одного или нескольких значений выполняется одним запросом.

        В обоих случаях тип элемента данных должен быть "Zabbix trapper".
        Спасибо за толковый и полный ответ. (осталось понять что к чему))

        По HTTP/HTTPS я так понял такой порядок
        а. Создаем токен
        б. Посылаем POST запрос (где передаем данные)
        в. Вот документация - https://www.zabbix.com/documentation...e/history/push есть что нибудь более с примерами? Где заголовки авторизации видны или что-то более понятное?

        По просто пакету с заголовком


        Чем это послать можно? Куда оно пойдет, есть примеры практической реализации, мало расписано, как мне кажется?
        Last edited by D.Frolov; 01-12-2024, 01:52.

        Comment

        • D.Frolov
          Member
          • Apr 2020
          • 95

          #5
          Нашел ответ на первую часть вопроса про HTTP/HTTPS
          https://www.zabbix.com/documentation...r#sending-data (конечно надо пробовать, но уже что-то, что видно)

          Comment

          • D.Frolov
            Member
            • Apr 2020
            • 95

            #6
            Я вот пытаюсь понять

            1. Есть zabbix sender, там
            zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"

            а. Имя хоста
            б. Имя элемента данных
            в. Значение элемента данных

            2.
            HTML Code:
            [HTML][CODE]curl --request POST \
                     --url 'https://example.com/zabbix/api_jsonrpc.php' \
                     --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
                     --header 'Content-Type: application/json-rpc' \
                     --data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'​[/CODE]
            [/HTML]

            3. В пункте 2 нет имени хоста, куда это посылается, как его указать?

            Comment

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

              #7
              Originally posted by D.Frolov
              Я вот пытаюсь понять

              1. Есть zabbix sender, там
              zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"

              а. Имя хоста
              б. Имя элемента данных
              в. Значение элемента данных

              2.
              HTML Code:
              [HTML][CODE]curl --request POST \
              --url 'https://example.com/zabbix/api_jsonrpc.php' \
              --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
              --header 'Content-Type: application/json-rpc' \
              --data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'[/CODE]
              [/HTML]

              3. В пункте 2 нет имени хоста, куда это посылается, как его указать?
              В пункте 2:
              а) куда слать (т.е. имя сервера Zabbix, аналог параметра "-z" утилиты zabbix_sender) - составная часть URL;
              б) имя хоста Zabbix, к которому относится элемент данных - тут возможны варианты: либо указать пару host и key (тогда сервер Zabbix найдёт его itemid), либо напрямую указать вместо этой пары один параметр itemid (он уникален в пределах сервера Zabbix, и сервер сам найдёт, к какому хосту этот элемент данных относится).

              Comment

              • D.Frolov
                Member
                • Apr 2020
                • 95

                #8
                Originally posted by Kos

                В пункте 2:
                а) куда слать (т.е. имя сервера Zabbix, аналог параметра "-z" утилиты zabbix_sender) - составная часть URL;
                б) имя хоста Zabbix, к которому относится элемент данных - тут возможны варианты: либо указать пару host и key (тогда сервер Zabbix найдёт его itemid), либо напрямую указать вместо этой пары один параметр itemid (он уникален в пределах сервера Zabbix, и сервер сам найдёт, к какому хосту этот элемент данных относится).
                Да, все получилось

                1. itemid можно узнать в панели zabbix -> Последние данные -> График -> Смотрим URL - /history.php?action=showgraph&itemids[]=51122 (как вариант, нахождения)
                2. Все получилось и сURL выклядит так -
                Code:
                                   curl --request POST \
                         --url 'https://example.com/zabbix/api_jsonrpc.php' \
                         --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
                         --header 'Content-Type: application/json-rpc' \
                         --data '{"jsonrpc":"2.0","method":"history.push","params":[{"host":"HostNameInZabbix", "key":"mobile_balance","value":"399"}],"id":1}'

                Comment

                • PavelZ
                  Senior Member
                  • Dec 2024
                  • 162

                  #9
                  Сравнительно несложный и многократно описанный в интернете способ передавать данные - это MQTT

                  Comment

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

                    #10
                    Originally posted by PavelZ
                    Сравнительно несложный и многократно описанный в интернете способ передавать данные - это MQTT
                    Хм, а как MQTT связано с возможностью посылать данные с мобильного телефона, о чём спрашивал автор темы?

                    Comment

                    • PavelZ
                      Senior Member
                      • Dec 2024
                      • 162

                      #11
                      Я имел ввиду, что zabbix agent2 может подписаться на mqtt и посылать метрику в zabbix.
                      Возможно, некоторые программисты знакомы с MQTT и уж точно кода реализующего можно найти много.

                      Comment

                      Working...