Ad Widget

Collapse

Нужна помощь с выражением триггера. Нужно чтобы реагировал на недоступность 10 JVM

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • absolutecreator
    Member
    • Oct 2021
    • 42

    #1

    Нужна помощь с выражением триггера. Нужно чтобы реагировал на недоступность 10 JVM

    Есть триггер со следующим содержанием:

    nodata(/HOST1/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST2/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST3/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST4/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST5/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST6/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST7/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST8/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and
    nodata(/HOST9/jmx["java.lang:type=Runtime","Uptime"],5m)=1 and

    nodata(/HOST10/jmx["java.lang:type=Runtime","Uptime"],5m)=1

    Как корректно создать агрегирующую функцию и выражение триггера в одну строку, взамен вышеуказанной кучи строк?
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Я бы, наверно,. попробовал что-то вроде
    Code:
    sum(count_foreach(/*/jmx["java.lang:type=Runtime","Uptime"],5m))=0 and now()

    Comment

    • absolutecreator
      Member
      • Oct 2021
      • 42

      #3
      Originally posted by Semiadmin
      Я бы, наверно,. попробовал что-то вроде
      Code:
      sum(count_foreach(/*/jmx["java.lang:type=Runtime","Uptime"],5m))=0 and now()
      А где группу узлов указать?
      И это выражение триггера или элемента данных?
      Если вычисляемого элемента данных, то какой должен быть триггер?

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        Это, очевидно, триггер.
        Если нужен фильтр по группе узлов или тегам, он пишется вместо /*/, в доке есть примеры.

        Comment

        • absolutecreator
          Member
          • Oct 2021
          • 42

          #5
          Originally posted by Semiadmin
          Это, очевидно, триггер.
          Если нужен фильтр по группе узлов или тегам, он пишется вместо /*/, в доке есть примеры.
          Не работает такое выражение. Пишет: Некорректное выражение, начиная с ...". Группы добавил так:


          Code:
          sum(count_foreach(/*/jmx["java.lang:type=Runtime","Uptime"]?[group="JVM"],5m))=0
          Zabbix 5.4

          Я, прежде чем задать вопрос здесь, уже пробовал, что Вы советуете. Это не работает в триггерах и это очевидно - выражение вычисляемого элемента данных.
          Я создал фейковый узел All_JVM с вычисляемым элементом данных и вставил вышеуказанное выражение туда. Теперь когда запрос выдает nodata, выражение считает это за ошибку и элемент не поддерживается. Создал триггер с nodata на этот фейковый узел c указанием ключа и все заработало.

          Code:
          nodata(/All_JVM/check.jvm.uptime,5m)=1
          Last edited by absolutecreator; 12-11-2021, 00:48.

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Да, действительно, в триггере не получается использовать aggregate function c foreach function в качестве параметра. Не нашел упоминания в доке о том, что это должно работать только в вычисляемых, но не в триггерах. Что-то не доработано в новом функционале.

            Comment

            Working...