Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Python SNMP: Como Usar OIDs para Monitorar Impressoras

#Python; #SNMP; #Monitoramento
@CanalQb Python - SNMP - Usando OIDs
Canal Qb

Como usar OIDs SNMP para monitorar impressoras com Python

Para incluir informações detalhadas sobre uma impressora usando SNMP no seu script Python, é essencial identificar as OIDs (Object Identifiers) correspondentes a cada dado que deseja obter. Essas informações podem ser encontradas consultando a documentação oficial do fabricante da impressora ou utilizando ferramentas específicas para descoberta SNMP, como o SNMP Walk.

Exemplo prático: Consultando OIDs em Python

Após identificar as OIDs necessárias, você pode criar objetos ObjectType para cada uma e extrair os valores na resposta SNMP. Confira o exemplo abaixo:

ip_address = '10.0.26.205'
community_string = 'public'
snmp_engine = SnmpEngine()

# OID para o modelo da impressora
oid_model = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)

# OID para o número de série da impressora
oid_serial = ObjectIdentity('SNMPv2-MIB', 'sysSerialNum', 0)

# OID para o endereço IP da impressora
oid_ip = ObjectIdentity('IP-MIB', 'ipAdEntAddr', 1, 4, 1, 10, 0, 26, 205)

# OID para a máscara de sub-rede da impressora
oid_mask = ObjectIdentity('IP-MIB', 'ipAdEntNetMask', 1, 4, 1, 10, 0, 26, 205)

# OID para a versão de firmware da impressora
oid_firmware = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)

# OID para a bandeja de papel padrão da impressora
oid_tray = ObjectIdentity('SNMPv2-SMI', 'enterprises', '674', '11', '1', '1', '6', '1', '0')

# OID para o contador de páginas da impressora
oid_pagecount = ObjectIdentity('SNMPv2-SMI', 'enterprises', '674', '11', '1', '1', '11', '1', '0')

# Consulta SNMP para obter as informações da impressora
errorIndication, errorStatus, errorIndex, varBinds = next(
    getCmd(snmp_engine,
           CommunityData(community_string),
           UdpTransportTarget((ip_address, 161)),
           ContextData(),
           ObjectType(oid_model),
           ObjectType(oid_serial),
           ObjectType(oid_ip),
           ObjectType(oid_mask),
           ObjectType(oid_firmware),
           ObjectType(oid_tray),
           ObjectType(oid_pagecount))
)

# Verifica se houve erro na consulta
if errorIndication:
    print('Erro na consulta SNMP: %s' % errorIndication)
elif errorStatus:
    print('Erro na consulta SNMP: %s at %s' % (
        errorStatus.prettyPrint(),
        errorIndex and varBinds[int(errorIndex) - 1][0] or '?'
    ))
else:
    # Extrai os valores das OIDs
    model = varBinds[0][1].prettyPrint()
    serial = varBinds[1][1].prettyPrint()
    ip = varBinds[2][1].prettyPrint()
    mask = varBinds[3][1].prettyPrint()
    firmware = varBinds[4][1].prettyPrint()
    tray = varBinds[5][1].prettyPrint()
    pagecount = varBinds[6][1].prettyPrint()

    # Imprime as informações da impressora
    print('Modelo da impressora: %s' % model)
    print('Número de série: %s' % serial)
    print('Endereço IP: %s' % ip)
    print('Máscara de sub-rede: %s' % mask)
    print('Versão de firmware: %s' % firmware)
    print('Bandeja de papel padrão: %s' % tray)
    print('Contador de páginas: %s' % pagecount)

Importante: As OIDs usadas no exemplo são ilustrativas. Para obter resultados precisos, consulte a documentação específica do fabricante da sua impressora e utilize ferramentas de descoberta SNMP para identificar as OIDs corretas.

Sobre SNMP e monitoramento

O protocolo SNMP (Simple Network Management Protocol) é amplamente utilizado para monitorar dispositivos de rede, como impressoras, switches e roteadores. Com ele, é possível consultar diversos parâmetros importantes, como o estado do dispositivo, contadores de uso, status de hardware e muito mais.

Usar Python para automatizar consultas SNMP facilita a integração dessas informações em sistemas de monitoramento personalizados, painéis de controle e alertas.

Recursos úteis

Utilize essas referências para aprofundar seu conhecimento e garantir que seus scripts estejam alinhados com as melhores práticas de monitoramento de rede.

إرسال تعليق

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo