Ad Widget

Collapse

Помогите с настройкой тригера на заме батарей APC

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • LESHIY
    Junior Member
    • Dec 2020
    • 1

    #1

    Помогите с настройкой тригера на заме батарей APC

    У бесперебойников от фирмы apc есть параметр upsBasicBatteryLastReplaceDate который передает дату в формате журнал(лог) дд/мм/гггг(гг) и надо чтобы тригер сравнивал эти данные с текущей датой и если она отличается больше чем на 3 года выдавал оповещение.
    Если у кого-то есть мысли о ток как это настроить или может быть есть готовая пачка тригеров которые задействуют этот параметр, в общем был бы очень признателен за помощь более опытных коллег!
  • Whols
    Senior Member
    • Jul 2018
    • 133

    #2
    Включаете на устройстве протокол SNMP, получаете OID нужного параметра (через snmpwalk или любым другим способом), создаете элемент типа SNMPv2 agent с типом информации Текст. Ждете получение данных. Устройство, надеюсь, сетевое?

    Comment

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

      #3
      Сначала нужно научиться иметь в забиксе нормальные данные по дате замены - тогда и работать с ними просто.

      Итого - делаете в своем ЭД припроцессинг
      шаг 1 регуляркка ^((\d)|(\d\d))[\.\/-]((\d)|(\d\d))[\.\/-]((\d{2})|(\d{4}))$ с подстановкой 0\2\3.0\5\6.20\8\9 (приводим строку к одному формату)
      шаг 2 регулярка ^0?(\d{2})\.0?(\d{2})\.(20)?(\d{4})$ с подстановкой \4\1\2 (формируем дату для дальнейшей обработки JS)
      шаг 3 JS
      var V = new Date(parseInt(value.substring(0,4)),parseInt(value .substring(4,6))-1,parseInt(value.substring(6)))
      var N = new Date()
      N.setHours(0,0,0,0)
      return Math.floor(N.getTime()/1000) - Math.floor(V.getTime()/1000)

      У ЭД ставите тип целое и юнит в uinixtime
      Получите значение времени прошедшее с момента замены батарейки.
      ну и наконец простой триггер {psBasicBatteryLastReplaceDateSince.last()}> {$REPLACEBATTERYSEC}

      Конечно это всё не оптимально - можно сделать все на JS \ можно получить сначала нормальную дату замены и потом от нее сделать зависимый элемент со сроком замены. Но направление такое.

      Comment

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

      #4
      Да - не так . выражение трегера руками писали? Попробуйте выбрать элемент данных и и посмотреть на разницу (добавиться имя шаблона )

      Comment

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

      #5
      {APC Smart UPS:upsBasicBatteryLastReplaceDate.last()}> {$REPLACEBATTERYSEC}

      Comment

      • Whols
        Senior Member
        • Jul 2018
        • 133

        #6
        Вы в обоих случаях сравниваете результат с нулем. При этом считаете что-то "большим похожим на...". Вы либо с числовым значением сравнивайте, либо с макросом (своим), как предлагает коллега выше.

        Comment

        Working...