Ad Widget

Collapse

Проблема с добавлением триггера в шаблон

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • greydjin
    Junior Member
    • Dec 2016
    • 4

    #1

    Проблема с добавлением триггера в шаблон

    Здравствуйте.
    Пытаюсь создать шаблон для группы хостов с триггером сигнализирующим о заканчивающемся месте в корне linux.


    У меня уже сделано для одной группы хостов Discovery rules которые обнаруживают какие есть разделы и тригеры на эти разделы о заканчивающемся месте.
    Теперь я хочу для некоторых хостов которые собрал в группу и создал Template for Development для них, сделать тригер только для раздела / < 10%
    Не понимаю почему не создается тригер, а пишет ошибку Incorrect item key "vfs.fs.size[/,pfree]" provided for trigger expression on "Template for Development".
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    Вы пытаетесь создать триггер для несуществующего элемента, так?
    Потому что элементы создаются во время Дискавери и в шаблоне не существуют.

    Создавайте триггер на устройствах, где Дискавери уже отработало и создало все элементы.
    Sincerely yours,
    Aleksey

    Comment

    • Semiadmin
      Senior Member
      • Oct 2014
      • 1625

      #3
      Или попробуйте использовать пользовательские макросы с контекстом (п.3.9):

      Comment

      • greydjin
        Junior Member
        • Dec 2016
        • 4

        #4
        Спасибо за ответы!
        И все-же картинка не сложилось в голове.
        Или попробуйте использовать пользовательские макросы с контекстом (п.3.9):

        https://www.zabbix.com/documentation...evel_discovery
        Это решение подходит если я хочу в одном Templates - Discovery rules - Trigger prototypes отслеживать разные загруженности у разных разделов. А мне нужно в другом Templates отслеживать.
        Есть группа хостов SystemAdmin hosts и группа Development hosts.
        Для группы SystemAdmin у меня стандартный Templates OS Linux и там внутри Discovery rules - Trigger prototypes содержит {Template OS Linux:vfs.fs.size[{#FSNAME},pfree].last(0)}<20
        А теперь я хочу дать разработчикам самим выбирать что отслеживать. И вот они хотят еще один триггер для корня, если меньше 10% свободно.
        Я делаю отдельный Templates for Development, линкую туда Templates OS Linux, чтобы собирать стандартные штуки о загрузке процессора, ОЗУ, доступности машины и иду в
        Template for Development - Discovery list - Mounted filesystem discovery - Trigger prototypes - вижу там родительский триггер Template OS Linux: Free disk space is less than 20% on volume {#FSNAME} - открываю его, так как менять нельзя - ведь он слинкован, делаю Clone, появляется триггер уже только внутри этого Template for Development и я могу его редактировать. И тут я ожидал что смогу вместо
        {Template for Development:vfs.fs.size[{#FSNAME},pfree].last(0)}<20
        написать
        {Template for Development:vfs.fs.size[/,pfree].last(0)}<10
        Но нет, возникла ошибка Incorrect item key "vfs.fs.size[/,pfree]" provided for trigger expression on "Template for Development".

        Вы пытаетесь создать триггер для несуществующего элемента, так?
        Потому что элементы создаются во время Дискавери и в шаблоне не существуют.

        Создавайте триггер на устройствах, где Дискавери уже отработало и создало все элементы.
        Если я пытаюсь создать триггер не в Template for Development - Discovery list - Mounted filesystem discovery - Trigger prototypes
        а в
        Template for Development - Triggers - то возникает та же ошибка. То есть мне нужно пойти в Template for Development - Items и создать vfs.fs.size[/,pfree] который я собираюсь отслеживать.

        Я попробовал. Это почти получилось, но он ругается на то что в хостах к которым я присоединил шаблон Template for Development уже существует этот item созданный discovery правилом. Тогда я пошел чистить историю этих хостов Unlink and clear History и снова присоединять к шаблону. После этого в шаблоне он дал мне создать этот Item и повесить триггер на него.

        Если я захочу в Templates for Development отслеживать vfs.fs.size[/home,pfree] - мне нужно будет снова чистить историю и переприсоединять хосты к шаблону?

        То есть, когда я пытаюсь создать item для отслеживания вручную - он ругается на то что item уже создан из правил discovery. А когда я хочу добавить триггер для item - он ругается что item не существует.

        Comment

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

          #5
          Originally posted by greydjin
          Спасибо за ответы!
          И все-же картинка не сложилось в голове.

          Это решение подходит если я хочу в одном templates - discovery rules - trigger prototypes отслеживать разные загруженности у разных разделов. А мне нужно в другом templates отслеживать.
          Да, нельзя сделать одинаковые триггеры в разных шаблонах, при том что в одном из них этот триггер создаётся через механизм lld. Но можно этого и не делать :-)
          Можно, например, сделать для нужной группы хостов один шаблон, в котором не определять ни триггеры, ни элементы данных (они уже определены через lld), а определить только свой макрос с контекстом, выставляющий пороговое значение для корневой файловой системы. Что-то вроде:
          {$LOW_SPACE_LIMIT:/} = 10

          Comment

          • aib
            Senior Member
            • Jan 2014
            • 1615

            #6
            Обратите внимание на разные параметры в шаблоне
            исходно шаблон содержит триггер для автосоздания под каждый найденный элемент файловой системы
            {Template for Development:vfs.fs.size[{#FSNAME},pfree].last(0)}<20
            Этот элемент "виртуален" и будет заменен на "реальный" только после создания
            вы пытаетесь его заменить на одинокий "реальный" элемент, который пока не существует

            Я вам предложил создать триггер напрямую в конфигурации нужного хоста, а не в конфигурации шаблона/Template.

            А так, как вы пробуете - и получается каша.
            • Если создавать в шаблоне триггер, привязанный к отсутствующему элементу - получите сообщение о "Несуществующем элементе"
            • Если создавать в шаблоне элемент и триггер, то этот шаблон нельзя будет привязать к существующим сайтам - получите сообщение "Элемент уже существует"

              У вас есть выбор:
            • Или создавать индивидуальные шаблоны на индивидуальных хостах, отслеживающих нужный порог срабатывания на нужном элементе
            • или модифицировать шаблон, который при этом будет срабатывать на всех найденных элементах файловых систем на хостах, привязанных к этому шаблону.
            Sincerely yours,
            Aleksey

            Comment

            • greydjin
              Junior Member
              • Dec 2016
              • 4

              #7
              Спасибо всем за ответы.
              Я выбрал путь клонирования стандартного шаблона Template OS Linux и изменение параметров trigger prototypes там.

              Если можно, разъясните пару моментов. Первый момент связан со временем создания элемента который можно отслеживать в триггере.
              Вот к хосту присоединен стандартный шаблон Template OS Linux, в нем создан item prototypes который создает для отслеживания item корня ФС. Я знаю что к этому шаблону будут присоединены машины у которых есть раздел / и раздел /home/ Я хочу два прототипа триггеров, для раздела /home с важностью Information, а для / с важностью Hight.

              Возможно ли при создании нового шаблона, в нем создать триггер и увидеть элементы для отслеживания созданные в другом шаблоне через LLD?

              Можно, например, сделать для нужной группы хостов один шаблон, в котором не определять ни триггеры, ни элементы данных (они уже определены через lld), а определить только свой макрос с контекстом, выставляющий пороговое значение для корневой файловой системы.
              А если я хочу один общий триггер с важностью Information для / <20% и для 50 хостов триггер с важностью Hight для / < 10% то это с помощью макроса уже не сделать?

              Comment

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

                #8
                Originally posted by greydjin
                А если я хочу один общий триггер с важностью information для / <20% и для 50 хостов триггер с важностью hight для / < 10% то это с помощью макроса уже не сделать?
                Боюсь, что нет: с помощью макросов можно переопределить только пороговые значения, но не важность триггеров.

                Comment

                Working...