Ad Widget

Collapse

Элемент данных trap не работает с автоопределением

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Dark Smoke
    Junior Member
    • Jan 2015
    • 27

    #1

    Элемент данных trap не работает с автоопределением

    Добрый день
    А что заббикс не умеет работать с элементом данных в автоопределении?


    Делаю:
    Code:
    /opt/zabbix/bin/zabbix_sender -z j.zabbix.loc -p 10051 -s app-1 -k item_discovery -o '{"data":[{"{#ITEM}":"memory_total"}]}'
    в ответе
    Code:
    info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000120"
    sent: 1; skipped: 0; total: 1
    В логе сервера
    Code:
    43926:20181129:142906.365 cannot process item "item_discovery" trap: item type "0" cannot be used with traps
    Логика такая у меня: Забикс агент идет и дергает агента на машине, запускает скрипт с авто дискавери. Потом второй ЮзерПараметр идет и запускает скрипт который собирает все параметры и отправляет zabbix_sender'ом на сервер.

    Правило обноружение:
    Code:
    Тип: Zabbix агент
    Ключ item_discovery
    Фильтр
    {#ITEM} совпадает *
    Прототипы элементов данных
    Code:
    Имя $1
    Тип Zabbix trapper
    Ключ erl[{#ITEM}]
    Last edited by Dark Smoke; 29-11-2018, 15:41.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Умеет. Надо только сменить у LLD тип с Zabbix agent на Zabbix trapper.

    Comment

    • Dark Smoke
      Junior Member
      • Jan 2015
      • 27

      #3
      Логика такая у меня: Забикс агент идет и дергает агента на машине, запускает скрипт с авто дискавери. Потом второй ЮзерПараметр идет и запускает скрипт который собирает все параметры и отправляет zabbix_sender'ом на сервер.

      Правило обноружение:
      Code:
      Тип: Zabbix агент
      Ключ item_discovery
      Фильтр
      {#ITEM} совпадает *
      Прототипы элементов данных
      Code:
      Имя $1
      Тип Zabbix trapper
      Ключ erl[{#ITEM}]
      Last edited by Dark Smoke; 29-11-2018, 15:42.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Вы, видимо, идете по пути дискаверинга метрик. Традиционный путь - дискаверинг объектов, а метрики задаются жестко на уровне прототипов айтемов. Но если объект один, возможно и это.
        А ошибка - в том, что у item_discovery тип Zabbix agent, а вы пытаетесь кидать ему trap.

        Comment

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

          #5
          Originally posted by Dark Smoke
          Логика такая у меня: Забикс агент идет и дергает агента на машине, запускает скрипт с авто дискавери. Потом второй ЮзерПараметр идет и запускает скрипт который собирает все параметры и отправляет zabbix_sender'ом на сервер.
          Извините, как-то я не понимаю в вашей логике - кто кого дёргает, кого куда запускает.

          Как верно отметил коллега Semiadmin, если вы из скрипта отправляете какие-то данные с помощью утилиты zabbix_sender, то на Zabbix-сервере соответствующий элемент данных уже должен быть определён и иметь тип "Zabbix trapper". У вас тип - "Zabbix agent", поэтому сервер присланные zabbix_sender-ом данные не принимает.
          Автодискавери отрабатывает на сервере при получении данных, содержащих JSON (это у вас есть), создавая на их основе соответствующие Item-ы. Это я к тому, что фраза "запускает скрипт с авто дискавери" вводит в заблуждение.
          Скрипты, запускаемые через UserParameter, запускаются Zabbix-агентом: они всегда должны возвращать какой-то результат в stdout - это и будет значением item-а, который в этом случае имеет тип "Zabbix agent" или "Zabbix agent (active)".
          Если же Вы запускаете через UserParameter скрипт, который, в свою очередь, сам вызывает zabbix_sender, то Вы должны очень хорошо себе представлять, что именно Вы делаете.

          Comment

          • Dark Smoke
            Junior Member
            • Jan 2015
            • 27

            #6
            Originally posted by Semiadmin
            Вы, видимо, идете по пути дискаверинга метрик. Традиционный путь - дискаверинг объектов, а метрики задаются жестко на уровне прототипов айтемов. Но если объект один, возможно и это.
            А ошибка - в том, что у item_discovery тип Zabbix agent, а вы пытаетесь кидать ему trap.
            Наверное я все запутал Попробую распутать.
            Пример с киданием не правильный (

            UserParameter=item_discovery,/opt/zabbix/ext/erl/discovery.sh <<-- Тип Заббик агент - раз в час дергает и получает джейсон с итемами.
            UserParameter=item_keys,/opt/zabbix/ext/erl/erlang.sh < -- Тип забикс агент. Запускает скрипт который собирает метрики эрланг машины и отправлет сендером в забикс сервер.

            Вот логика такая.
            В дискавери у меня
            Имя $1
            Тип Zabbix trapper
            Ключ erl[{#ITEM}]

            И эти траперы не появляются что бы я им не делал. Или я вас не понял?
            Last edited by Dark Smoke; 29-11-2018, 16:08.

            Comment

            • Dark Smoke
              Junior Member
              • Jan 2015
              • 27

              #7
              Originally posted by Kos
              Извините, как-то я не понимаю в вашей логике - кто кого дёргает, кого куда запускает.

              Как верно отметил коллега Semiadmin, если вы из скрипта отправляете какие-то данные с помощью утилиты zabbix_sender, то на Zabbix-сервере соответствующий элемент данных уже должен быть определён и иметь тип "Zabbix trapper". У вас тип - "Zabbix agent", поэтому сервер присланные zabbix_sender-ом данные не принимает.
              Элемент данных который отвечает за дискавери у меня Zabbix agent
              А вот элементы автообноружения Zabbix trapper

              Может скрины сделать, так проще будет?

              Comment

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

                #8
                Originally posted by Dark Smoke
                Элемент данных который отвечает за дискавери у меня Zabbix agent
                А вот элементы автообноружения Zabbix trapper
                Теперь стало чуть понятнее.

                В таком случае Ваш первый скрипт (discovery.sh) должен не вызывать zabbix_sender (как это было продемонстрировано в самом первом примере в первом сообщении), а выдавать нужный JSON в stdout.
                В свою очередь, второй скрипт (erlang.sh) вполне может вызывать zabbix_sender для отправки множества значений для отдискаверенных (слово-то какое!) элементов данных. Но, поскольку элемент данных для вызова этого скрипта определён как имеющий тип "Zabbix agent", то из этого следует, что этот скрипт:
                1) сам тоже должен возвращать в stdout хоть что-то, чтобы элемент данных не переходил в состояние "unsupported";
                2) должен работать быстро - по крайней мере, однозначно укладываться в тайм-аут, определённный параметрами "Timeout=" на агенте и на сервере (иначе тоже уйдёт в "unsupported").

                Вы сейчас на каком этапе? Дискаверинг работает, элементы данных создаются?

                Comment

                • Dark Smoke
                  Junior Member
                  • Jan 2015
                  • 27

                  #9
                  Originally posted by Kos
                  Вы сейчас на каком этапе? Дискаверинг работает, элементы данных создаются?
                  Автоопределение срабатывает. Но итемы не создаются. Джейсон праильный. Ошибок нет никаких. Все выводится на стдоут.
                  Если итемы перевести в агент, то все создается. А если итемы траппер, то не создаются (

                  Comment

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

                    #10
                    Originally posted by Dark Smoke
                    Автоопределение срабатывает. Но итемы не создаются. Джейсон праильный. Ошибок нет никаких. Все выводится на стдоут.
                    Если итемы перевести в агент, то все создается. А если итемы траппер, то не создаются (
                    Задача автоопределения - в первую очередь, создать из прототипов айтемы. Если они не создаются, значит, автоопределение не работает.

                    Давайте сделаем следующее.
                    1) попробуйте дёрнуть скрипт автоопределения через агента, обращаясь к нему утилитой zabbix_get с сервера Zabbix:
                    Code:
                    zabbix_get -s IP-адес-хоста-с-агентом -k item_discovery
                    Должен вернуться ваш JSON.

                    2) покажите скриншот с определением правила дискаверинга. Кстати, фильтр в нём можно вообще убрать, если он не нужен.

                    3) подождите время, заданное в качестве интервала для дискаверинга. Пока отлаживаетесь, можно поставить его поменьше (несколько минут), потом поставите сколько надо. Убедитесь, что по истечении этого времени либо появились нужные айтемы, либо ошибки (в логе сервера и/или под красной пометкой, которая появится на правиле автодискаверинга в веб-интерфейсе).

                    Потом можно будет ехать дальше.

                    Comment

                    • Dark Smoke
                      Junior Member
                      • Jan 2015
                      • 27

                      #11
                      Это все уже сто раз проделовал. Надеюсь у вас получитьс мне помочь )
                      1.
                      Code:
                      /opt/zabbix/bin/zabbix_get -s localhost -p 10050 -k item_discovery
                      {"data":[{"{#ITEM}":"app_memory_total"},{"{#ITEM}":"app_memory_processes"},{"{#ITEM}":"app_memory_processes_used"},{"{#ITEM}":"app_memory_processes_used"},{"{#ITEM}":"app_memory_atom"},{"{#ITEM}":"app_memory_atom_used"},{"{#ITEM}":"app_memory_atom_used"},{"{#ITEM}":"app_memory_atom_used"},{"{#ITEM}":"app_memory_atom_used"},{"{#ITEM}":"extauth_memory_total"},{"{#ITEM}":"extauth_memory_processes"},{"{#ITEM}":"extauth_memory_processes_used"},{"{#ITEM}":"extauth_memory_processes_used"},{"{#ITEM}":"extauth_memory_atom"},{"{#ITEM}":"extauth_memory_atom_used"},{"{#ITEM}":"extauth_memory_atom_used"},{"{#ITEM}":"extauth_memory_atom_used"},{"{#ITEM}":"extauth_memory_atom_used"}]}
                      2. Прикрепил
                      3. Врем ставил и 30 секунд, ничего не появлется
                      Attached Files

                      Comment

                      Working...