printmib/ 0000755 0007677 0007677 00000000000 10727541261 012265 5 ustar bigsis bigsis printmib/graphtemplates 0000644 0007677 0007677 00000000507 10727537415 015240 0 ustar bigsis bigsis # Sun T3 disk array # $Id: graphtemplates,v 1.1 2005/03/08 10:23:41 nba Exp $ graph lifecount input lifecount.(.*) value-type gauge input-interval $shortInterval input-deadtime $shortDeadTime graph-id $HOST.pages legend Total pages printed maxcombine 4 # scale 0..100 unit-label Pages size 400x120 title Activity on $HOST printmib/tests.cfg 0000644 0007677 0007677 00000022265 10727541261 014117 0 ustar bigsis bigsis # Test for HP Laserjet 9000 # $Id: tests.cfg,v 1.6 2007/12/11 17:02:41 nba Exp $ test basic_printmib { set discover_refresh 60; set discover_retry 10; set frequency 5; pernode set report_item service; set perf_frequency 0; static set prttype.1 "other"; static set prttype.2 "unknown"; static set prttype.3 "toner"; static set prttype.4 "wasteToner"; static set prttype.5 "ink"; static set prttype.6 "inkCartridge"; static set prttype.7 "inkRibbon"; static set prttype.8 "wasteInk"; static set prttype.9 "opc"; static set prttype.10 "developer"; static set prttype.11 "fuserOil"; static set prttype.12 "solidWax"; static set prttype.13 "ribbonWax"; static set prttype.14 "wasteWax"; static set prttype.15 "fuser"; static set prttype.16 "coronaWire"; static set prttype.17 "fuserOilWick"; static set prttype.18 "cleanerUnit"; static set prttype.19 "fuserCleaningPad"; static set prttype.20 "transferUnit"; static set prttype.21 "tonerCartridge"; static set prttype.22 "fuserOiler"; static set prttype.23 "water"; static set prttype.24 "wasteWater"; static set prttype.25 "glueWaterAdditive"; static set prttype.26 "wastePaper"; static set prttype.27 "bindingSupply"; static set prttype.28 "bandingSupply"; static set prttype.29 "stichingWire"; static set prttype.30 "shrinkWrap"; static set prttype.31 "paperWrap"; static set prttype.32 "staples"; static set prttype.33 "inserts"; static set prttype.34 "covers"; static set domain snmp; pernode set maintenance_red 1000; pernode set maintenance_yellow 2000; pernode set toner_red 500; pernode set toner_yellow 1000; pernode set ink_red 2; pernode set ink_yellow 5; pernode set community public; pernode set thismonitor; pernode set monitored; pernode set formerly_monitored; pernode set former_description; static set arguments "community:string:SNMP community" "toner_red:int:Toner capacity red level" "toner_yellow:int:Toner capacity yelloy level" "ink_red:int:Ink capacity red level" "ink_yellow:int:Ink capacity yelloy level" "maintenance_red:int:Maintenance red level" "maintenance_yellow:int:Maintenance yellow level"; init { debug 3 "init printmib"; pernode import community; pernode import toner_red; pernode import toner_yellow; pernode import ink_red; pernode import ink_yellow; pernode import maintenance_red; pernode import maintenance_yellow; instance import perf perf_frequency; } # walk the relevant data structures and do some pre-processing pernode discover { debug 3 pernode discover printmib; get @${domain}.prtMarkerSuppliesType @${domain}.prtMarkerSuppliesDescription @${domain}.prtMarkerSuppliesMaxCapacity @${domain}.hrDeviceDescr; pernode set prt.type ${${domain}.prtMarkerSuppliesType}; pernode set prt.descr ${${domain}.prtMarkerSuppliesDescription}; pernode set prt.max ${${domain}.prtMarkerSuppliesMaxCapacity}; pernode set prt.model ${${domain}.hrDeviceDescr}; } # select the entities this instance will monitor discover { debug 3 discover printmib; set oldmonitor ${thismonitor}; set monitored remove( ${monitored}, ${oldmonitor} ); set index ${prt.type}; select thismonitor index true; set monitored ${monitored} ${thismonitor}; }; pernode postdiscover { debug 3 "printmib currently monitored:" ${monitored}; set notmonitored_anymore unmonitored( ${formerly_monitored}, ${monitored}, ${former_description} ); event "notice" ${notmonitored_anymore}; event "notice" ${newly_monitored}; pernode set formerly_monitored ${monitored}; } monitor { debug 3 "monitor printmib"; get @${domain}.prtMarkerSuppliesType @${domain}.prtMarkerSuppliesLevel @${domain}.prtMarkerLifeCount; pernode set prt.type ${${domain}.prtMarkerSuppliesType}; pernode set prt.level ${${domain}.prtMarkerSuppliesLevel}; pernode set prt.count ${${domain}.prtMarkerLifeCount}; debug 3 "max " ${prt.max} " level " ${prt.level}; } pernode report { debug 3 printmit monitored items ${monitored}; set text; set head pad("Type", 15, "l") pad("Level", 8, "r") pad("Max", 8, "r") " " pad("Description", 30, "l") "\n"; for text monitored pad(${prttype.${prt.type[${i}]}}, 15, "l") pad(${prt.level[${i}]}, 8, "r") pad(${prt.max[${i}]}, 8, "r") " " pad(${prt.descr[${i}]}, 30, "l") "\n"; comment "html" "
" ${head} ${text} "" "Pages printed: ${prt.count[1]}" " Serial: ${prt.serial[1]}" " Type: ${prt.model[1]}"; } perf { debug 3 "printmib Send perf " ${prt.count[1]}; export always lifecount, ${prt.count[1]}; } pernode unconfigure { pernode set monitored; pernode set prt.type; pernode set prt.descr; pernode set prt.max; pernode set prt.level; } } test printmib extends basic_printmib { static set features remote; static set name printmib; pernode postdiscover { get @${domain}.prtGeneralSerialNumber; pernode set prt.serial ${${domain}.prtGeneralSerialNumber}; } report for thismonitor { debug 3 printmib report; status green ( ( ${prt.type[${p}]} == 15 ) && ( ${prt.level[${p}]} > ${maintenance_yellow} ) ) "Fuser OK (${prt.level[${p}]})"; status yellow ( ( ${prt.type[${p}]} == 15 ) && ( ${prt.level[${p}]} > ${maintenance_red} ) && ( ${prt.level[${p}]} < ${maintenance_yellow} ) ) "Fuser soon (${prt.level[${p}]})"; status red ( ( ${prt.type[${p}]} == 15 ) && ( ${prt.level[${p}]} < ${maintenance_red} ) ) "Fuser now (${prt.level[${p}]})"; status green ( ( ${prt.type[${p}]} == 21 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} > ${toner_yellow} ) ) "Toner OK (${prt.level[${p}]} > ${toner_yellow})"; status yellow ( ( ${prt.type[${p}]} == 21 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} > ${toner_red} ) && ( ${prt.level[${p}]} < ${toner_yellow} ) ) "Toner soon (${prt.level[${p}]} > ${toner_red})"; status red ( ( ${prt.type[${p}]} == 21 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} < ${toner_red} ) ) "Toner now (${prt.level[${p}]})"; status green ( ( ${prt.type[${p}]} == 3 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} > ${toner_yellow} ) ) "Toner OK (${prt.level[${p}]} > ${toner_yellow})"; status yellow ( ( ${prt.type[${p}]} == 3 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} > ${toner_red} ) && ( ${prt.level[${p}]} < ${toner_yellow} ) ) "Toner soon (${prt.level[${p}]} > ${toner_red})"; status red ( ( ${prt.type[${p}]} == 3 || ${prt.type[${p}]} == 3 ) && ( ${prt.level[${p}]} < ${toner_red} ) ) "Toner now (${prt.level[${p}]})"; status green ( ( ${prt.type[${p}]} == 5 ) && ( ${prt.level[${p}]} > ${ink_yellow} ) ) "Ink OK (${prt.level[${p}]} > ${ink_yellow})"; status yellow ( ( ${prt.type[${p}]} == 5 ) && ( ${prt.level[${p}]} > ${ink_red} ) && ( ${prt.level[${p}]} < ${ink_yellow} ) ) "Ink soon (${prt.level[${p}]} > ${ink_red})"; status red ( ( ${prt.type[${p}]} == 5 ) && ( ${prt.level[${p}]} < ${ink_red} ) ) "Ink now (${prt.level[${p}]})"; status green ( ( ${prt.type[${p}]} == 20 ) && ( ${prt.level[${p}]} > ${maintenance_yellow} ) ) "Transfer OK (${prt.level[${p}]})"; status yellow ( ( ${prt.type[${p}]} == 20 ) && ( ${prt.level[${p}]} > ${maintenance_red} ) && ( ${prt.level[${p}]} < ${maintenance_yellow} ) ) "Transfer soon (${prt.level[${p}]})"; status red ( ( ${prt.type[${p}]} == 20 ) && ( ${prt.level[${p}]} < ${maintenance_red} ) ) "Transfer now (${prt.level[${p}]})"; # status red 1 # "?? ${prt.type[${p}]} ${prt.level[${p}]} ${maintenance_red} ${maintenance_yellow}"; } } test simple_printmib extends basic_printmib { static set features remote; static set name simple_printmib; pernode set maintenance_yellow 3; pernode set maintenance_red 1; pernode postdiscover { debug 3 "simple_printmib currently monitored:" ${monitored}; set notmonitored_anymore unmonitored( ${formerly_monitored}, ${monitored}, ${former_description} ); event "notice" ${notmonitored_anymore}; event "notice" ${newly_monitored}; pernode set formerly_monitored ${monitored}; debug 3 unknown thismon ${thismonitor} max ${prt.max}; for prt.max thismonitor if( ${prt.max[${i}]} == -2, "unknown", ${prt.max[${i}]} ); } monitor { debug 3 "monitor simple_printmib"; get @${domain}.prtMarkerSuppliesType @${domain}.prtMarkerSuppliesLevel @${domain}.prtMarkerLifeCount; pernode set prt.type ${${domain}.prtMarkerSuppliesType}; pernode set prt.level ${${domain}.prtMarkerSuppliesLevel}; pernode set prt.count ${${domain}.prtMarkerLifeCount}; for prt.level thismonitor if( ${prt.level[${i}]} == -3, ${maintenance_yellow} + 1, if( ${prt.level[${i}]} == 1, ${maintenance_yellow} - 1, ${prt.lebel[${i}]} )); debug 3 "max " ${prt.max} " level " ${prt.level}; } report for thismonitor { status green ( ${prt.level[${p}]} > ${maintenance_yellow} ) "${prt.descr[${p}]} OK"; status yellow ( ( ${prt.level[${p}]} > ${maintenance_red} ) && ( ${prt.level[${p}]} < ${maintenance_yellow} ) ) "${prt.descr[${p}]} soon"; status red ( ( ${prt.level[${p}]} < ${maintenance_red} ) ) "${prt.descr[${p}]} NOW"; } } printmib/module.info 0000644 0007677 0007677 00000000327 10727541261 014431 0 ustar bigsis bigsis # $Id: module.info,v 1.4 2007/12/11 17:02:41 nba Exp $ module = printmib descr = SNMP monitor for maintenance and toner using modern Printer-MIB version = 01.04 author = Niels Baggesen