Ad Widget

Collapse

UPS-> HUT -> Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bboymig
    Member
    • Aug 2016
    • 30

    #1

    UPS-> HUT -> Zabbix

    Добрый день. Ситуация следующая.
    Debian 8.5
    Zabbix 3.0.4
    Hut 2.7.2
    Hut Прекрасно видит источник бесперебойного питания UPS и по команде upsc ippon@localhost выдает следующие значения:
    Init SSL without certificate database
    battery.charge: 74
    battery.voltage: 2.21
    battery.voltage.high: 2.32
    battery.voltage.low: 1.90
    device.type: ups
    driver.name: blazer_usb
    driver.parameter.pollinterval: 2
    driver.parameter.port: auto
    driver.parameter.productid: 0005
    driver.parameter.vendorid: 06da
    driver.version: 2.7.2
    driver.version.internal: 0.11
    input.frequency: 49.9
    input.voltage: 235.6
    input.voltage.fault: 235.6
    output.voltage: 207.9
    ups.beeper.status: enabled
    ups.delay.shutdown: 30
    ups.delay.start: 180
    ups.load: 27
    ups.productid: 0005
    ups.status: OL
    ups.temperature: 22.3
    ups.type: online
    ups.vendorid: 06da

    Интересуют два параметра, которые надо передать агенту:
    battery.voltage: 2.21
    ups.status: OL
    Если первый параметр числовой, то последний текстовый.
    OL -Online
    OB - Battery.
    Мне нужен скрипт, который эти параметры вытаскивает. К сожалению, я очень плохо разбираюсь в языках программирования и на решение задачи может уйти много времени. Просьба помочь.
    Были в рунете уже готовые решения, но почему то шаблоны выдавали ошибки.
    Ссылка на шаблоны
    Так же интересует следующий вопрос. Можно ли с помощью текстовых значений настроить триггер. Если значение ups.status = OB - мы отправляем оповещение. Спасибо.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by bboymig
    Добрый день. Ситуация следующая.
    Debian 8.5
    Zabbix 3.0.4
    Hut 2.7.2
    Hut Прекрасно видит источник бесперебойного питания UPS и по команде upsc ippon@localhost выдает следующие значения:
    Init SSL without certificate database
    battery.charge: 74
    battery.voltage: 2.21
    battery.voltage.high: 2.32
    battery.voltage.low: 1.90
    device.type: ups
    driver.name: blazer_usb
    driver.parameter.pollinterval: 2
    driver.parameter.port: auto
    driver.parameter.productid: 0005
    driver.parameter.vendorid: 06da
    driver.version: 2.7.2
    driver.version.internal: 0.11
    input.frequency: 49.9
    input.voltage: 235.6
    input.voltage.fault: 235.6
    output.voltage: 207.9
    ups.beeper.status: enabled
    ups.delay.shutdown: 30
    ups.delay.start: 180
    ups.load: 27
    ups.productid: 0005
    ups.status: OL
    ups.temperature: 22.3
    ups.type: online
    ups.vendorid: 06da

    Интересуют два параметра, которые надо передать агенту:
    battery.voltage: 2.21
    ups.status: OL
    Если первый параметр числовой, то последний текстовый.
    OL -Online
    OB - Battery.
    Мне нужен скрипт, который эти параметры вытаскивает. К сожалению, я очень плохо разбираюсь в языках программирования и на решение задачи может уйти много времени. Просьба помочь.
    Были в рунете уже готовые решения, но почему то шаблоны выдавали ошибки.
    Ссылка на шаблоны
    Так же интересует следующий вопрос. Можно ли с помощью текстовых значений настроить триггер. Если значение ups.status = OB - мы отправляем оповещение. Спасибо.
    https://www.zabbix.com/documentation...userparameters пример 2 - ваш случай. Что то типа
    Code:
    UserParameter=ups[*],upsc ippon@localhost  | grep $1 -p$2 | awk '{print $$2}'
    и айтемы "ups[ups.status]" и "ups[battery.voltage]"

    Триггер на строку тоже можно повесить, функции regexp,iregexp и str

    Comment

    • bboymig
      Member
      • Aug 2016
      • 30

      #3
      Zabbix выдает такую ошибку:
      Received value [Init SSL without certificate databasegrep: неверный ключ — «p»Использование: grep [ПАРАМЕТР]… ШАБЛОН [ФАЙЛ]…Запустите «grep --help» для получения более подробного описания.] is not suitable for value type [Numeric (float)]
      Видимо, данную строчку надо как-то пропустить.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by bboymig
        Zabbix выдает такую ошибку:

        Видимо, данную строчку надо как-то пропустить.
        -p$2 лишнее, по всей видимости

        Code:
        UserParameter=ups[*],upsc ippon@localhost  | grep "$1:" | awk '{print $$2}'
        "$1:" делает "battery.voltage:" из "battery.voltage", а то по три числа вылезают.
        Last edited by sadman; 06-09-2016, 16:33.

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by sadman
          -p$2 лишнее, по всей видимости
          Ага, скопировал как раз из примера и не убрал

          Comment

          • bboymig
            Member
            • Aug 2016
            • 30

            #6
            Все равно выдает ошибку:
            received value [init ssl without certificate database2.32] is not suitable for value type [numeric (float)]
            А значение 2.32 взял правильно.
            У агента прописал:
            userparameter=ups[*],upsc ippon@localhost | grep "$1:" | awk '{print $$2}'

            Comment

            • bboymig
              Member
              • Aug 2016
              • 30

              #7
              Для элемента ups[ups.status] с типом данных текст, выдает следующее:
              Init SSL without certificate database
              OL

              Comment

              • sadman
                Senior Member
                • Dec 2010
                • 1611

                #8
                Originally posted by bboymig
                Для элемента ups[ups.status] с типом данных текст, выдает следующее:
                https://github.com/delin/Zabbix-NUT-.../ups_status.sh - ^F "Fix SSL message "Init SSL without certificate database"

                Comment

                • bboymig
                  Member
                  • Aug 2016
                  • 30

                  #9
                  Пытаюсь добавить шаблон. Выдает ошибку:
                  Не удалось найти преобразование значений "UPS Battery Status" используемое в прототипу элементов данных "UPS {#UPSNAME} Status" в правиле обнаружения "UPS Discovery" на "UPS".
                  Запускаю скрипт:
                  ./ups_status.sh: line 5: [: =: ожидается использование унарного оператора
                  ./ups_status.sh: line 21: [: =: ожидается использование унарного оператора
                  Error: invalid UPS definition.
                  Required format: upsname[@hostname[ort]]
                  Я так понимаю, Zabbix в элементах данных надо указать имя и он информацию передаст скрипту.

                  Comment

                  • Alexander1310
                    Member
                    • Aug 2016
                    • 35

                    #10
                    Оно?

                    Comment

                    • bboymig
                      Member
                      • Aug 2016
                      • 30

                      #11
                      Проблему решл переустановкой nut без поддержки ssl.
                      Правда, немного пришлось постучать в бубен, но все работает.
                      Теперь по поводу триггера. Я так понимаю, триггер должен быть таким:
                      {zabbix server:ups[ups.status].regexp(ob)}=1
                      Если текущее значение равно ob, то мы этот триггер включаем.
                      Last edited by bboymig; 07-09-2016, 12:16.

                      Comment

                      Working...