Ad Widget

Collapse

Kyocera преобразование значений

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Zusinskii
    Junior Member
    • Aug 2022
    • 8

    #1

    Kyocera преобразование значений

    Добрый день!
    Столкнулся с тем, что уже нет идей в решение вопроса.

    Следующая ситуация.
    1. Имеются принтеры Kyocera 1060DN и МФУ 8124cidn;
    2. Для группы принтеров 1060 создан отдельный шаблон и в нём настроен элемент данных (ключ - error.device / OID - .1.3.6.1.2.1.25.3.5.1.2.1 / тип информации - символ / предобработка - Шестнадцатеричное в десятичное) и к нему присоединено преобразование значений и триггеры, всё работает и сейчас добавляю только именно срабатывания на значения;
    3. Для группы МФУ 8124 тоже добавлен отдельный шаблон и в нём заведены аналогичные параметры для элемента данных и получаю при тесте - cannot convert value of type "string" from hexadecimal format: invalid value format
    4. Если убрать предобработку и просто забирать значение через Тест, то почему то значение у 8124 не приходит.

    Через OidView просмотрел от и до, идентичны группы у моделей. Поиск по проблеме ничего толкового не выдаёт или задаю не совсем релевантно.
    Что ещё можно попробовать сделать?
    Last edited by Zusinskii; 20-09-2022, 07:42.
  • Zusinskii
    Junior Member
    • Aug 2022
    • 8

    #2
    Добавлю что к примеру 2235 от kyocera вполне ожидаемо отвечает, в отличие от 8124
    Click image for larger version

Name:	image.png
Views:	363
Size:	18.0 KB
ID:	451644

    Comment

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

      #3
      Originally posted by Zusinskii
      4. Если убрать предобработку и просто забирать значение через Тест, то почему то значение у 8124 не приходит.
      Ну, судя по выводу команды snmpwalk, значение таки приходит - видимо, пустая строка. На вашем скриншоте видна только открывающая кавычка, а где закрывающая? Или это два апострофа?
      И что выводит snmpwalk в случае, когда на 8124 реально есть какая-то ошибка (ну там - лист замят или крышка не закрыта)?

      Comment

      • Zusinskii
        Junior Member
        • Aug 2022
        • 8

        #4
        Originally posted by Kos
        Ну, судя по выводу команды snmpwalk, значение таки приходит - видимо, пустая строка. На вашем скриншоте видна только открывающая кавычка, а где закрывающая? Или это два апострофа?
        И что выводит snmpwalk в случае, когда на 8124 реально есть какая-то ошибка (ну там - лист замят или крышка не закрыта)?
        Закрытие там и это состояние при открытой крышке
        Click image for larger version

Name:	image.png
Views:	332
Size:	17.6 KB
ID:	451649

        Comment

        • Zusinskii
          Junior Member
          • Aug 2022
          • 8

          #5
          При чём выше запрос при выдернутом картридже.
          Получается что не отдаёт только при состояние - открыта крышка.

          Comment

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

            #6
            Если верить этому или этому, то значение "06" из вашего первого скриншота должно означать комбинацию битов "jammed​" и "offline", а при открытой крышке, вероятно, должно было бы отдаваться значение "0A" (комбинация битов "doorOpen​" и того же "offline").
            В любом случае, если проблемы с тем, что некорректно отдаётся только одно состояние, и при этом известно, что именно отдаётся (видимо, перевод строки), то это решается добавлением ещё одного шага препроцессинга для валидации приходящего значения. Скажем, если всегда должно возвращаться двузначное HEX-число, то перед существующим шагом (Шестнадцатеричное в десятичное) добавляем ещё один шаг:
            • тип - Validation -> Matches regular expression​;
            • само выражение:
            Code:
            [0-9a-fA-F]{2}
            • проставить галочку "Custom on fail​";
            • само действие - "set a specified value", значение - желаемое (например, "0A", либо "02" - это только один бит "offline").
            Last edited by Kos; 21-09-2022, 11:41. Reason: опечатка в регулярном выражении

            Comment

            • Semiadmin
              Senior Member
              • Oct 2014
              • 1625

              #7
              Если более-менее понятно, в каком случае возвращается пустая строка, то, наверное, можно через Check for not supported value​ присвоить этому состоянию некий собственный код и работать с ним.
              P.S. пока писал, коллега Kos​ уже ответил. Да, согласен, если падает не на уровне snmp agent, а позже, на препроцессинге, то можно через валидацию..
              Last edited by Semiadmin; 21-09-2022, 10:26.

              Comment

              • Zusinskii
                Junior Member
                • Aug 2022
                • 8

                #8
                Спасибо вам!
                Сейчас попробую, чуть позже отпишусь и по возможности прикреплю итог.

                Comment

                • Zusinskii
                  Junior Member
                  • Aug 2022
                  • 8

                  #9
                  Originally posted by Kos
                  Если верить этому или этому, то значение "06" из вашего первого скриншота должно означать комбинацию битов "jammed​" и "offline", а при открытой крышке, вероятно, должно было бы отдаваться значение "0A" (комбинация битов "doorOpen​" и того же "offline").
                  В любом случае, если проблемы с тем, что некорректно отдаётся только одно состояние, и при этом известно, что именно отдаётся (видимо, перевод строки), то это решается добавлением ещё одного шага препроцессинга для валидации приходящего значения. Скажем, если всегда должно возвращаться двузначное HEX-число, то перед существующим шагом (Шестнадцатеричное в десятичное) добавляем ещё один шаг:
                  • тип - Validation -> Matches regular expression​;
                  • само выражение:
                  Code:
                  [0-9a-fA-F]{2}
                  • проставить галочку "Custom on fail​";
                  • само действие - "set a specified value", значение - желаемое (например, "0A", либо "02" - это только один бит "offline").
                  Добрый день!
                  Идея отличная и вполне подошла бы, если бы не одно НО!
                  Click image for larger version  Name:	image.png Views:	0 Size:	8.7 KB ID:	451702
                  Это когда картридж именно ОТСУТСВУЕТ, то есть не показано что его объём "0", а его нет в принципе.(смотрел описание и outputNearFull 11 вот как то совсем не вяжется)

                  Сможете мне ещё подсказать?
                  Как бы понимаю что нужно формулу менять вроде бы - [B-0-9a-fA-F]{2}. Но что то просто завис =(
                  Last edited by Zusinskii; 22-09-2022, 10:02.

                  Comment

                  • Zusinskii
                    Junior Member
                    • Aug 2022
                    • 8

                    #10
                    Вот такая вот ошибка получается при запуске ТЕСТ'а элемента данных - cannot perform regular expression "[B-0-9a-fA-F]{2}" validation for value of type "string": invalid regular expression pattern: range out of order in character class

                    Comment

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

                      #11
                      Originally posted by Zusinskii
                      Click image for larger version Name:	image.png Views:	0 Size:	8.7 KB ID:	451702
                      Это когда картридж именно ОТСУТСВУЕТ, то есть не показано что его объём "0", а его нет в принципе.(смотрел описание и outputNearFull 11 вот как то совсем не вяжется)

                      Сможете мне ещё подсказать?
                      Как бы понимаю что нужно формулу менять вроде бы - [B-0-9a-fA-F]{2}. Но что то просто завис =(
                      1) B (Hex) == 1011 (Binary), т.е. выставлены биты 4, 6 и 7 (поскольку сказано, что нумерация битов: нулевой - это самый значащий бит первого байта). Т.е. 0x0B - это сочетание битов doorOpen​, offline и serviceRequested​ (поскольку отдельного условия "tonerSupplyMissing" там не оговорено).
                      2) Да, если возвращаемое значение не обязательно двузначное, то регулярное выражение будет:
                      Code:
                      [0-9a-fA-F]+
                      Т.е. только 16-ричные цифры, минимум одна (но можно и больше).

                      Comment

                      Working...