Aqui iremos falar como usar o SNMP para consultar os objetos da impressora. Nesse caso, os objetos serão o nível disponível nos toners.

Esses OID’s são muito úteis para você implementar em seu sistema de monitoramento (Nagios, Zabbix, etc.)

OIDO que retorna
1.3.6.1.2.1.25.3.2.1.3.1O modelo da Impressora
OIDO que retorna
1.3.6.1.2.1.43.12.1.1.4.1.1O nome/cor do toner1
1.3.6.1.2.1.43.12.1.1.4.1.2O nome/cor do toner2
1.3.6.1.2.1.43.12.1.1.4.1.3O nome/cor do toner3
1.3.6.1.2.1.43.12.1.1.4.1.4O nome/cor do toner4
OIDO que retorna
1.3.6.1.2.1.43.11.1.1.8.1.1A capacidade máxima do toner1
1.3.6.1.2.1.43.11.1.1.8.1.2A capacidade máxima do toner2
1.3.6.1.2.1.43.11.1.1.8.1.3A capacidade máxima do toner3
1.3.6.1.2.1.43.11.1.1.8.1.4A capacidade máxima do toner4
OIDO que retorna
1.3.6.1.2.1.43.11.1.1.9.1.1Indica o nível do toner1
1.3.6.1.2.1.43.11.1.1.9.1.2Indica o nível do toner2
1.3.6.1.2.1.43.11.1.1.9.1.3Indica o nível do toner3
1.3.6.1.2.1.43.11.1.1.9.1.4Indica o nível do toner4

Além desses, em algumas impressoras você pode também consultar:

OIDHP
1.3.6.1.2.1.43.11.1.1.9.1.6Indica o nível do fusor
1.3.6.1.2.1.43.11.1.1.9.1.5Indica o nível do kit de imagem
1.3.6.1.2.1.43.11.1.1.9.1.7Indica o nível da alimentadora

Com essas informações, é possível (por exemplo) criar o seguinte script para o Nagios monitorar os consumíveis da impressora:

#!/bin/sh
#USE: COMMAND [IP] [SNMP_COMMUNITY] <WARNING_VALUE> <CRITICAL_VALUE>
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4

exitstatus=$STATE_WARNING #default

printer_model=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.25.3.2.1.3.1 -OUvq`

color_t1=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.12.1.1.4.1.1 -OUvq`
color_t2=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.12.1.1.4.1.2 -OUvq`
color_t3=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.12.1.1.4.1.3 -OUvq`
color_t4=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.12.1.1.4.1.4 -OUvq`

max_t1=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.8.1.1 -OUvq`
max_t2=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.8.1.2 -OUvq`
max_t3=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.8.1.3 -OUvq`
max_t4=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.8.1.4 -OUvq`

usage_t1=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.9.1.1 -OUvq`
usage_t2=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.9.1.2 -OUvq`
usage_t3=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.9.1.3 -OUvq`
usage_t4=`snmpwalk -v 2c -c $2 $1 1.3.6.1.2.1.43.11.1.1.9.1.4 -OUvq`

usage_t1=`expr 100 \* $usage_t1 / $max_t1`
usage_t2=`expr 100 \* $usage_t2 / $max_t2`
usage_t3=`expr 100 \* $usage_t3 / $max_t3`
usage_t4=`expr 100 \* $usage_t4 / $max_t4`

if [[ $usage_t1 -lt $critical_value ]] || [[ $usage_t2 -lt $critical_value ]] || [[ $usage_t3 -lt $critical_value ]] || [[ $usage_t4 -lt $critical_value ]]; then
        msg="CRITICAL"
        exitstatus=$STATE_CRITICAL
else
        if [[ $usage_t1 -lt $warning_value ]] || [[ $usage_t2 -lt $warning_value ]] || [[ $usage_t3 -lt $warning_value ]] || [[ $usage_t4 -lt $warning_value ]]; then
                msg="WARNING"
                exitstatus=$STATE_WARNING
        else
                msg="OK"
                exitstatus=$STATE_OK
        fi
fi
echo "$msg - $printer_model Toner: $color_t1=$usage_t1%, $color_t2=$usage_t2%, $color_t3=$usage_t3%, $color_t4=$usage_t4%"
exit $exitstatus

Fontes/Referências

https://documentation.n-able.com/remote-management/userguide/Content/additional_oids.htm

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Se você tem interesse em algum assunto específico, tem alguma dúvida que precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria