I'm setting up an Opsview (nagios) server for monitoring. It's all going fairly swimmingly so far. The most immediate use for the system will be monitoring (or more to the point, alerting me about) printer toner levels. At the moment, the "alert" comes when someone can't print because the toner is out.

I can hit the web interface of course, but I'm looking for something more automated.

I've got Opsview working with all my Dell printers. There is a standard printer OID for supply levels that is working great on most of my printers.

On the Dells, that OID returns a number that represents the number of units left, whether that's pages, grams, impressions, whatever, but an actual number that counts down as the printer is used.

On my older Brother printers (the 9460 and 9440) that OID returns a single integer -3.

The OID description is as follows:

The current level if this supply is a container; the remaining space if this supply is a receptacle. If this supply container/receptacle can reliably sense this value, the value is sensed by the printer and is read-only; otherwise, the value may be written (by a Remote Contol Panel or a Management Application). The value (-1) means other and specifically indicates that the sub-unit places no restrictions on this parameter. The value (-2) means unknown. A value of (-3) means that the printer knows that there is some supply/remaining space, respectively.

Clearly, the -3 is not unexpected. My understanding is that there is a low threshold, beyond which the printer returns a -2. That could potentially work, but would offer nothing to graph, etc. The Brothers just don't use the "remaining space" version. They are, however, aware of the same information. If I hit the web interface, there is a graph of sorts that depicts toner remaining.

Toner Cyan (C)**
Toner Magenta (M)**
Toner Yellow (Y)**
Toner Black (K)**

That is the information I am looking to get via snmp.

Is there an alternate standard OID, or some other place I should be looking?


After contacting Brother via email, this was the reply:


The information you have regarding toner information is correct and Brother does not offer an OID for monitoring toner levels. Perhaps this is something that might be added in a future generation, but at present there is no support for toner levels.

Best regards,

Tom Sickles

Product Manager

Brother International

There is still useful information in the MIBs. For instance, I can return what is displayed on the screen of the printer itself, and alert myself when it says "toner low" or something. But apparently, the toner levels are out of reach at the moment.


Ok, since I wasn't going to get any toner levels returned, the easiest thing I've found is for the snmp check to just throw a warning when anything is out of the ordinary, and then I can just go to the web interface and see what it is.

As it happens on these Brother printers, the LCD screen has an orange backlight when there is a status message other than "all OK". So I found the OID that returns a 1 when it's green, and a 2 when its orange. And Nagios will warn on orange.

fwiw, in case anyone is curious, here is the OID:


  • Comment is because the edit isn't worthy of a bump on the front page... Small addition to EDIT 2 -- That last OID can also return a 3, to indicate a "red" LCD. Actually kind of works out nice... I can warn on orange, and critical on red. – JoshP Aug 31 '12 at 20:17
  • One more thing... I think that the brother printers actually get toner level visually!! I guess there is a little window into the toner reservoir. – JoshP Aug 31 '12 at 20:19

The real issue here is whether or not Brother has built support into the printer to report out actual toner levels via SNMP. Looking at vendor specific MIB's is a good way to get an idea of what kind of information is supported.

Looking up Brother's MIB's - http://www.oidview.com/mibs/2435/BROTHER-MIB.html - we can see that they seem to only report out low toner, which explains why, when you use the standard printer MIB, you're limited to that "-3" / "I'm not low" status.

It is possible that information on that website is inaccurate though; really I would recommend you try to get Brother's MIBs directly from them - http://welcome.solutions.brother.com/BSC/public_s/id/managedprint/en/mib.html?reg=us&c=us_ot&lang=en&redirect=on

  • Well, I tried. Your link (thank you for that) led to a contact us link, which led to a chat session, which led to an email address, which led to the reply that I added to the question. Ack! – JoshP Aug 29 '12 at 18:06
  • Ah cool, well, sorry it wasn't great, but I'm glad you got a solid answer. Looking at their OID's, I wasn't expecting that they report out toner levels, but I didn't want to say that and throw you off without being positive ;) – Univ426 Aug 29 '12 at 18:53
  • Unless I uncover some amazing hidden awesomeness, I'm marking this accepted because it led me to the end, such as it is... Cheers :) – JoshP Aug 29 '12 at 19:05

This is not guaranteed to work, but does with a few printers - if it does it saves a lot of trial and error.

Install the full sw/driver package which installs a utility in the system tray that reports printer status.

Install wireshark and start looking at whats going through your nic.

We are only interested in looking at SMNP traffic to/from the IP address of your printer.

Have a look and see which OID the s/w uses then try and set this in nagios.

  • Good idea... I'll probably give this a try. – JoshP Aug 29 '12 at 14:36
  • Forgot to mention, check the printer's web gui to ensure SMNP is enabled. – Robin Gill Aug 29 '12 at 15:31

I was looking for the same information. I have 2 brother HL2270DW printers. I think I found what is needed. On the 2270 web page under configuration, there is a bar graph representing % toner remaining. I found 2 OIDs that return the page count and the toner remaining %. I have not found any way to identify which toner cart is installed, std or hi-yield. The OID are:

$TonerLevel = '.';
$PageCnt = '.';

Your Answer

