Ad Widget

Collapse

Ошибки в шаблоне после отсоединения базового - Template OS Windows by Zabbix agent

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • x2sp777
    Junior Member
    • Sep 2020
    • 4

    #1

    Ошибки в шаблоне после отсоединения базового - Template OS Windows by Zabbix agent

    Коллеги, добрый день.

    Решили сделать под себя базовый шаблон, который сможем распространить на другие площадки.
    На текущий момент он создан на базе шаблона - Template OS Windows by Zabbix agent с нашими настройками.
    Столкнулись с проблемой, что после того, как мы отсоединяем привязанный шаблон (без очистки) у нас появляются проблемы:

    1) Перестают отрабатывать базовые правила обнаружения:
    1. Mounted filesystem discovery
    2. Network interfaces WMI get: Network interfaces discovery
    3. Physical disks WMI get: Physical disks discovery
    4. Windows services discovery
    Если перейти внутрь правила (Windows services discovery) и "выполнить сейчас" то мы получаем данные ([{"{#SERVICE.NAME}":"AJRouter","{#SERVICE.DISPLA YNA ME}":"Служба маршрутизатора AllJoy......), но не создаются элементы данных и триггеры.

    В шаблоне уже заложены некоторые элементы данных, которые отрабатывают и собирают информацию:
    • CPU utilization - 2021-07-19 10:25:25 0 %
    • Network interfaces WMI get - 2021-07-19 10:24:38 [{"AdapterType":"Etherne
    • Physical disks WMI get - 2021-07-19 10:25:39 [{"AvgDiskBytesPerRead":"0","AvgDiskBytesPerTran sfe r":"0","AvgDiskBytesPerWrite":"0","AvgDiskQueue Len gth":"0","AvgDiskReadQueueLength":".........
    • Used memory - 2021-07-19 10:25:35 1.55 GB

    2) Также после отсоединения шаблона посыпались ошибки в триггерах:
    • CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) - Cannot evaluate expression: cannot evaluate expression: unknown user macro "{$CPU.INTERRUPT.CRIT.MAX}"
    • High memory utilization ( >{$MEMORY.UTIL.MAX}% for 60m) - Cannot evaluate expression: cannot evaluate expression: unknown user macro "{$MEMORY.UTIL.MAX}"
    • System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) - Cannot evaluate function fuzzytime(/tesrsrv/system.localtime,{$SYSTEM.FUZZYTIME.MAX}): invalid second parameter.


    Ошибок больше, но как я понимаю мы допустили какую то ошибку при отсоединении шаблона?
    Last edited by x2sp777; 19-07-2021, 10:14.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Я не совсем понял, что именно от чего вы отсоединяли, но, вероятнее всего, не учли того, что в отсоединяемом шаблоне могли быть определены какие-то макросы, на которые есть ссылки (например, в формуле триггеров, из-за чего теперь идёт ругань, или в фильтрах правил LLD, которые теперь просто перестали работать).
    Проверьте это и перенесите (скопируйте вручную) нужные макросы в ваш оставшийся шаблон.

    Comment

    • x2sp777
      Junior Member
      • Sep 2020
      • 4

      #3
      Originally posted by Kos
      Я не совсем понял, что именно от чего вы отсоединяли, но, вероятнее всего, не учли того, что в отсоединяемом шаблоне могли быть определены какие-то макросы, на которые есть ссылки (например, в формуле триггеров, из-за чего теперь идёт ругань, или в фильтрах правил LLD, которые теперь просто перестали работать).
      Проверьте это и перенесите (скопируйте вручную) нужные макросы в ваш оставшийся шаблон.
      Kos, спасибо за оперативный ответ.

      Мы создали новый шаблон в рамках которого присоединили - Template OS Windows by Zabbix agent.
      Далее мы отсоединили шаблон без очистки для распространения на другие точки с нашими настройками.

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

      Как я понимаю, единственный вариант переноса - это копирование из JMX файла и вставлять в наш шаблон?
      Или возможен вариант слияние макросов шаблона и унаследованных макросов?

      Второй вопрос связан с тестирование самих шаблонов:

      Правило обнаружение Windows services discovery (в шаблоне Template Module Windows services by Zabbix agent) не отрабатывало из отсутствие унаследованных макросов, но почему при нажатии выполнить сейчас не выдавало ошибки?

      Не создавались сервисы из того, что отсутствовали следующие макросы:
      • {$SERVICE.NAME.MATCHES}
      • {$SERVICE.NAME.NOT_MATCHES}
      • {$SERVICE.STARTUPNAME.MATCHES}
      • {$SERVICE.STARTUPNAME.NOT_MATCHES}

      В рамках фильтра, есть следующие записи:

      A {#SERVICE.NAME} совпадает {$SERVICE.NAME.MATCHES}
      B ...
      C ...
      D ...

      Так как мы не копировали макросы в данном шаблоне они отсутствовали, почему система не выдала ошибку в рег выражении?
      У нас же явным образом данный макрос не объявлен.


      Можно ли получить поэтапную статистику во время тестирования, чтобы отловить данный момент?

      Спасибо!



      Comment

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

        #4
        Originally posted by x2sp777
        Как я понимаю, единственный вариант переноса - это копирование из JMX файла и вставлять в наш шаблон?
        Или возможен вариант слияние макросов шаблона и унаследованных макросов?
        Не совсем понял, при чём здесь JMX - видимо, имелся в виду XML или YAML.

        Но вариантов тут, на самом деле, я вижу два:
        • вручную скопировать (через веб-интерфейс) нужные макросы из одного шаблона в другой (если макросов немного, то это самый быстрый способ);
        • через экспорт/импорт: заэкспортировать каждый из шаблонов в текстовый файл, затем через copy/paste перенести нужный фрагмент (определяющий макросы) из одного текстового файла в другой, после чего заимпортировать обратно.
        Но я обычно просто делаю клон стандартного шаблона, который потом правлю под свои нужды.
        Originally posted by x2sp777
        Второй вопрос связан с тестированием самих шаблонов:

        Правило обнаружение Windows services discovery (в шаблоне Template Module Windows services by Zabbix agent) не отрабатывало из отсутствие унаследованных макросов, но почему при нажатии выполнить сейчас не выдавало ошибки?
        Потому что ошибки-то и нет. Макрос, задающий регулярное выражение для фильтра, не обязан быть определён: он может оставаться и нераскрытым:
        If Zabbix is unable to find a macro, the macro will not be resolved.
        При использовании в триггерах это приводит к ругани, т.к. там ожидается конкретное числовое пороговое значение для сравнения. Здесь же - нет; хотя, наверное, можно было бы и выдать хотя бы какое-нибудь предупреждение. Просто у вас получается, что нераскрытый макрос обрабатывается как регулярное выражение, которому не соответствует ни одно имя Windows Service, поэтому при отрабатывании LLD никакие элементы данных и триггеры из прототипов не создаются.

        Comment

        • x2sp777
          Junior Member
          • Sep 2020
          • 4

          #5
          Kos, спасибо!

          Вы правы, ошибся в формате файла.
          Два варианта, которые вы предложили и "крутились" в голове, как решение. Но странно, что при отсоединении, нет возможности оставить и макросы из присоединенных шаблонов.

          Originally posted by Kos

          Здесь же - нет; хотя, наверное, можно было бы и выдать хотя бы какое-нибудь предупреждение. Просто у вас получается, что нераскрытый макрос обрабатывается как регулярное выражение, которому не соответствует ни одно имя Windows Service, поэтому при отрабатывании LLD никакие элементы данных и триггеры из прототипов не создаются.
          Подскажите, возможно я могу получить где то полный лог при ручном (или автоматическом запуске) на элементе или LLD для его отладки?
          Где явным образом можно будет увидеть, что во время выполнения фильтра, макрос не имел значение.
          Если есть возможность ссылку на работу с данным логом, а далее я сам уже разберусь.

          Спасибо!

          Comment

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

            #6
            Originally posted by x2sp777
            Подскажите, возможно я могу получить где то полный лог при ручном (или автоматическом запуске) на элементе или LLD для его отладки?
            Где явным образом можно будет увидеть, что во время выполнения фильтра, макрос не имел значение.
            Не уверен, что такой есть.
            Можно пробовать повышать уровень логирования самого сервера Zabbix (это можно делать без остановки сервера командами "zabbix_server -R log_level_increase[=<target>]" один или два раза, затем аналогичным образом с ключиком "-R log_level_decrease[=<target>]" понижать обратно). Только я не скажу, какой именно из серверных процессов занимается этой работой, а без этого лог будет слишком большим, чтобы найти там что-то полезное. Вероятнее всего, процессы "lld manager" или "lld worker".

            Comment

            Working...