Ad Widget

Collapse

LLD e Criação de Trigger para OID dinâmicas - Return a value on "No such instance"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • RafaelMorais_85
    Junior Member
    • Sep 2020
    • 5

    #1

    LLD e Criação de Trigger para OID dinâmicas - Return a value on "No such instance"

    Pessoal,

    Estou com um problema que acho que o Zabbix sozinho (versão 5.0.2) não consegue resolver.

    O que fazer quando queremos coletar uma OID que nem sempre está presente ?

    Estou monitorando uma OLT da VSOL (V1600D-MINI) que possui uma OID que me diz quando há novas ONU a serem autorizadas na rede, como um novo dispositivo encontrado. OID = 1.3.6.1.4.1.37950.1.1.5.12.1.13.1.2 onuAutoFindPon

    Porém essa OID só se faz "ativa" ou "presente" quando de fato há novas ONUs nada rede, e quando isso acontece, além da OID funcionar, ela retornar o valor 1.

    Porém quando não á novas ONUs na rede, a OID some, e o Zabbix e qualquer outro dispositivo que faça um SNMPWALK recebe a informação : Such Instance currently exists at this OID ou No such object available on this agent at this OID

    Então vaerrendo a Internet não achei nada no próprio Zabbix para contornar isso.... Isso o que ? O que fazer quando o Zabbix não achar uma OID que foi cadastrada, como criar uma trigger para isso ? ou como tratar essa situação específica.


    Ai eu achei um script no Zabbix Share que aparentemente contorna esse problema, porém não sei trabalhar com scripts no Zabbix, nunca usei.

    https://share.zabbix.com/zabbix-tool...-such-instance


    #!/usr/local/bin/bash

    # Arguments
    # $1: Host
    # $2: Community string
    # $3: The requested oid
    # $4: Error value (The error value you want to replace)

    # There are two possible error strings
    varErrorObject="No Such Object available on this agent at this OID"
    varErrorInstance="No Such Instance currently exists at this OID"

    # Try to get SNMP value
    snmpValue=$(/usr/local/bin/snmpget -v2c -c $2 $1 $3)

    # Clean data from error aka replace error string with provided error value $4
    snmpCleanObject=${snmpValue/$varErrorObject/$4}
    snmpCleanAll=${snmpCleanObject/$varErrorInstance/$4}

    # Echo the result. Cut out everything before "=" sign. Cut out everything before ":"
    echo $snmpCleanAll | cut -f2 -d"=" | cut -f2 -d":"



  • mfortes
    Senior Member
    • Oct 2019
    • 416

    #2
    Opa, tudo bom amigo?

    Pelo que intendi, a OID só existe quando algo precisa ser feito, correto?
    Então nesse caso, seria legal adicionar ela como LLD. Dessa forma, quando ela "deixar de existir" o item vai ser marcado para exclusçao. Ai basta você estipular quando que ele vai ser excluido, ou manualmente vai até la e exclui o item.

    Seria essa sua duvida?


    Michael R. Fortes

    Linkedin: Mike Fortes
    Medium: mromeiro-f

    Comment

    Working...