Ad Widget

Collapse

SNMP printer

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • tty
    Junior Member
    • Aug 2023
    • 5

    #1

    SNMP printer

    Добрый день.
    На текущий момент мы получаем уведомления о заканчивающемся тонере в картридже от Zabbix. Zabbix собирает информацию об объеме тонера по SNMP. Все работает но есть проблема в том, что иногда SNMP на принтере перестает работать на некоторое время и на Zabbix соответственно срабатывает триггер.
    Текущая реализация такая

    100*last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.9.1.3)/last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.8.1.3)<=10

    Я хочу, чтобы триггер отрабатывал только в том случае, если тонера <=10 на протяжении 30 минут. Так я смогу убрать ложные срабатывания.

    Пробовал сделать так, но это не работает

    max(100*last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.9.1.3)/last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.8.1.3),30m)<=10

    Спасибо!
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #2
    Когда "SNMP на принтере перестает работать на некоторое время" какие данные есть в элементах данных участвующих в триггере?
    Сделайте вычисляемый элемент данных и от него стройте триггер - будет более понятна реакция на данные.
    (ну и конечно вы знаете что данные приходят не единовременно в элементы данных в триггере и расчет может быть корявым? )

    Comment

    • tty
      Junior Member
      • Aug 2023
      • 5

      #3
      Hamardaban​,
      Когда "SNMP на принтере перестает работать на некоторое время" какие данные есть в элементах данных участвующих в триггере?
      элемент данных показывает 0
      Click image for larger version

Name:	image.png
Views:	370
Size:	9.4 KB
ID:	469454
      Сделайте вычисляемый элемент данных и от него стройте триггер - будет более понятна реакция на данные.
      Уже сделал так
      Click image for larger version

Name:	image.png
Views:	364
Size:	20.5 KB
ID:	469455
      И изменил триггер. Сейчас триггер работает, но он отрабатывает сразу не выжидая указанного времени
      Click image for larger version

Name:	image.png
Views:	367
Size:	29.3 KB
ID:	469456
      (ну и конечно вы знаете что данные приходят не единовременно в элементы данных в триггере и расчет может быть корявым? )
      Не совсем понял вопроса​

      Comment

      • Hamardaban
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • May 2019
        • 2713

        #4
        1) Если элемент данных в знаменателе становиться равным нулю, то.... что получаем?
        используя предобработку и валидацию по диапазону можно подставить вместо 0 что то типа 0,0001

        2) про "данные приходят не единовременно" - прочитайте пож. вот эту ветку https://www.zabbix.com/forum/in-russ...bix#post418218
        Last edited by Hamardaban; 28-08-2023, 13:36.

        Comment

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

          #5
          Hamardaban, насколько я понимаю, в данном случае OID .1.3.6.1.2.1.43.11.1.1.9.1.3 должен возвращать текущий уровень тонера в неких "попугаях", а .1.3.6.1.2.1.43.11.1.1.8.1.3 - максимально возможный в тех же "попугаях" (т.е. ёмкость картриджа); соответственно, поделив первое на второе и домножив на 100 - получаем текущий уровень в процентах. И, по всей видимости, "скачет" только первое из этих значений, второе должно всегда возвращать одну и ту же величину (ёмкость картриджа, если вместо него не поставят картридж другой модели - например, демо меньшей ёмкости). Т.е. в данном случае одновременность получаемых значений не слишком важна, т.к. одно из этих значений, по сути, константа.

          Я бы в такой ситуации, наверное, просто добавил бы в предобработку для первого из значений шаг предобработки с валидацией на нулевые значения, по принципу - если пришёл ноль, то такое значение отбрасывать и не учитывать. В расчёте на то, что реальные значения, во-первых, будут хоть ненамного, но больше нуля, а во-вторых - до того как они дойдут до нуля мониторинг уже должен успеть сработать раньше (в триггере я вижу пороговое значение 10%).

          Неприятно, если и второе из значений (где ёмкость) тоже возвращает ноль. Но там-то, как раз, подобный шаг предобработки совсем безопасен (ёмкость-то всегда явно больше нуля, за исключением случаев, когда картридж вообще вынут, но в этом случае и принтер будет в офлайне - печатать на нём нельзя, да и при вычислении заполненности картриджа такая ситуация непринципиальна).

          Comment

          • Hamardaban
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • May 2019
            • 2713

            #6
            Да - вполне разумные предположения.
            У нас практически так и сделано.
            Посто я не очень люблю решать за других как им использовать инструмент - мало ли о каких соображениях и нюансах нам не рассказали…. :-)
            Но в данном случае задача вполне стандартная и рецепт более чем уместен. Спасибо!

            Осталось понять почему триггер «отрабатывает сразу не выжидая указанного времени​»…
            Можно переписать триггер используя count для подсчета значений = 0 за период времени…
            Но до меня не доходит почему триггер с max так срабатывает?
            Last edited by Hamardaban; 28-08-2023, 19:15.

            Comment

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

              #7
              Originally posted by Hamardaban
              Но до меня не доходит почему триггер с max так срабатывает?
              Могу лишь предположить, что срабатывание было один раз - сразу после создания вычисляемого элемента данных, когда пришёл первый ноль, а других данных в его истории просто не было. При наличии истории с ненулевыми значениями срабатывать не должно было бы. Но графика по этому элементу данных нам не показали, поэтому остаётся теоретизировать

              Comment

              • tty
                Junior Member
                • Aug 2023
                • 5

                #8
                Kos, Hamardaban

                насколько я понимаю, в данном случае OID .1.3.6.1.2.1.43.11.1.1.9.1.3 должен возвращать текущий уровень тонера в неких "попугаях", а .1.3.6.1.2.1.43.11.1.1.8.1.3 - максимально возможный в тех же "попугаях" (т.е. ёмкость картриджа); соответственно, поделив первое на второе и домножив на 100 - получаем текущий уровень в процентах. И, по всей видимости, "скачет" только первое из этих значений, второе должно всегда возвращать одну и ту же величину (ёмкость картриджа, если вместо него не поставят картридж другой модели - например, демо меньшей ёмкости). Т.е. в данном случае одновременность получаемых значений не слишком важна, т.к. одно из этих значений, по сути, константа.​

                Извиняюсь, что не написал ранее, но Kos правильно догадался, что высчитывается процент оставшегося тонера и триггер отрабатывает если текущее значение меньше 10.


                Неприятно, если и второе из значений (где ёмкость) тоже возвращает ноль.
                Общая ёмкость тоже возвращает 0

                График с текущим объемом


                Эти графики относятся к данному триггеру (который не работает)
                max(100*last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.9.1.3)/last(/Template SNMP Kyocera/.1.3.6.1.2.1.43.11.1.1.8.1.3),30m)<=10






                Этот график относится к новому элементу данных

                и триггеру



                Я только включил элемент данных и триггер сразу (не дожидаясь 30 минут) отработал.



                Неприятно, если и второе из значений (где ёмкость) тоже возвращает ноль. Но там-то, как раз, подобный шаг предобработки совсем безопасен (ёмкость-то всегда явно больше нуля, за исключением случаев, когда картридж вообще вынут, но в этом случае и принтер будет в офлайне - печатать на нём нельзя, да и при вычислении заполненности картриджа такая ситуация непринципиальна).

                Попробую ваш вариант, но как по мне, мой вариант тоже должен быть рабочим и он более простой.​

                Comment

                Working...