Canon Printer Discovery

Rich Platt1
Kilo Contributor

Anyone have experience with Canon Printers and Network Discovery? I know that I need to load MIBs/OIDs into SNMP but can't locate a list for Canon. Any thoughts?

1 ACCEPTED SOLUTION

Rich, lets talk through the discovery process.

When we kick off the shazzam (portscan) probe against your canon printer we send a sysDescr query that is our SNMP "port" check that is from MIB-2, a public mib that every device should answer. If it does not respond to that query then you have an SNMP problem on the device. NO private MIBs involved here.

IF it responds we then go into SNMP classify where more public mibs are used specifically the print-mib that we can gain insight if the IP has printing capabilities. As we can see in the SNMP Classify sensor....

 

// is this thing a printer?
        var isPrinter = false;
        var isHrDevicePrinter = false;
        var hasPrtGeneralSerialNumber = false;
        // first look in the Host Resources MIB...
        var devices = snmp.getOIDTable(oid_mib2 + 'host.hrDevice', 'hrDeviceEntry');
		var hrDeviceDescrs = [];  //used in short_description
        for (var index in devices) {
            var deviceType = devices[index]['hrDeviceType'];
            isHrDevicePrinter = isHrDevicePrinter || (deviceType.substr(-2) == '.5'); //1.3.6.1.2.1.25.3.1.5 is 'hrDevicePrinter'
			
			if ('hrDeviceDescr' in devices[index]) {
				var hrDeviceDescr = devices[index]['hrDeviceDescr'];
				if (hrDeviceDescrs.indexOf(hrDeviceDescr) > -1)
					continue;
				
				hrDeviceDescrs.push(hrDeviceDescr);
			}
        }
        // then look in the Printer MIB...
        var prtGens = snmp.getOIDTable(oid_mib2 + 'printmib.prtGeneral', 'prtGeneralEntry');
        for (var index in prtGens) {
            var prtSerial = prtGens[index]['prtGeneralSerialNumber'];
            hasPrtGeneralSerialNumber = hasPrtGeneralSerialNumber || JSUtil.notNil(prtSerial);
        }
        // if both conditions are true we assume the device has printing capability
        isPrinter = isHrDevicePrinter && hasPrtGeneralSerialNumber;
        capabilities['printing'] = '' + isPrinter;

 

This information along with the SNMP sysOID table will set your classification process. If you don't get a response here then you have a problem with SNMP on the target. NO private MIBs here, all public MIBs that we have pre-loaded for you.

The only time you would need to load private Canon specific MIBs is if you are extending discovery to get something unique from the Canon device that only their MIBs would contain..Everything else should be OOB...

 

View solution in original post

16 REPLIES 16

Bob, sounds like a great spot you have. Since our founding, as I have known, we have always ensured that we weren't an island of our own but we needed to integrate with many other data sources to help make us what we are today to support the processes and requirements our shared friends have.

Our OOB printer discovery may not have all the things you have to offer but we are extensible and the ability to consume your data into the CMDB is a great partnership. However 🙂 I would challenge your 40% discovery rate for ServiceNow.

If you have an IP with a proper community string, SNMP access, and a device that accepts industry (RFC) standard Host and Printer OID's well we will discover them If you want more from them then is an easy question (probe/pattern step) to ask.

The more we can help our shared friends the better.

Hi Doug,

we have same requirement for Canon Printer discovery as OOB (Orlando). I dont see Canon MIB in the list. Does it support this discovery?

Many Thanks

It should work, IF the printer responds with our OOB queries that I listed above.  However you absolutely want to add the snmp sysOID so you can get mfg/model information to the ci as well.

Ashutosh Munot1
Kilo Patron
Kilo Patron

Hi,


This is a list of MIB OOB: https://docs.servicenow.com/bundle/orlando-it-operations-management/page/product/discovery/reference...

 

Doug is right.

 

Thanks,
Ashutosh