6 min read

How SNMP Behaves in the CUPS Web Interface

In the CUPS web interface under the Administration tab, the option Find New Printers is used to discover printers that support SNMPv1.

Monitoring CUPS- part2

This will search and list the available network printers. The discovery of printers is based on the directive configuration done in the /etc/cups/snmp.conf file. On the basis of the search list, you can add a printer using the Add This Printer option. The process is very similar to the Add Printer wizard.

Monitoring CUPS- part2

Overview of Basic Debugging in CUPS-SNMP

In the snmp.conf, we started discussion about various debugging levels in CUPS support. If the directive DebugLevel is set to anything other than 0, you will get the output accordingly. The debugging mode can be made active using the following command.

As the SNMP backend supports debugging mode, the command for setting up debugging mode changes depending on the shell prompt. The SNMP backend is located at /usr/lib/cups/backend/snmp when using the Bourne, Bash, Z, or Korn shells. The following command will output verbose debugging information into the cupssnmp.log file when using those shells:

$CUPS_DEBUG_LEVEL=1 /usr/lib/cups/backend/snmp 2>&1 | tee cupssnmp.log

On Mac OS X, the SNMP backend is located /usr/libexec/cups. The following command will be used:

$CUPS_DEBUG_LEVEL=1 /usr/libexec/cups/backend/snmp 2>&1 | tee cupssnmp.log

If you are using the C or Tcsh shells, you can use the following command.

$(setenv CUPS_DEBUG_LEVEL 1; /usr/lib/cups/backend/snmp) |& tee

An example of the output might look like this:

DEBUG: Scanning for devices in "public" via "@LOCAL"...
DEBUG: 0.000 Sending 46 bytes to
DEBUG: 0.001 Received 50 bytes from
DEBUG: community="public"
DEBUG: request-id=1213875587
DEBUG: error-status=0
DEBUG: 1.001 Scan complete!

The above output shows that doesn’t find any printer at the specified DeviceURI. The above shows the output at the basic debugging level; more information can be found if we use level 2 or 3.

Overview of mailto.conf

The CUPS provides the facility to send notifications through email. It can be done by integrating the local mail server with CUPS. The configuration file is /etc/cups/mailto.conf, and contains several directives and the characteristics and behavior of the local mail server and email notification for CUPS. We normally use each of the following directives in our daily communication done through mail.

The Cc Directive

The directive Cc (carbon copy) is used to specify an additional recipient for all email notifications. By default, the value directive is not set and the email is sent only to the administrator. The following examples shows that how email IDs can be specified with this directive.

Cc [email protected] Cc Kajol Shah <[email protected]>

The From Directive

This directive is used to specify the sender’s name in the email notifications. By default, the ServerAdmin address specified in the cupsd.conf file is used. The following are some examples that show how the sender’s email is specified with this directive:

From [email protected] From Your CUPS Printer <[email protected]>

The Sendmail Directive

The directive Sendmail specifies the command to run and deliver an email locally. If there is an SMTPServer directive, then this directive cannot be used. If both directives appear in the mailto.conf file, then only the last directive is used. The following example shows how this directive can be specified. The default value for this directive is /usr/sbin/sendmail.

Sendmail /usr/sbin/sendmail
Sendmail /usr/lib/sendmail -bm -i

The SMTPServer Directive

This directive is used to specify an IP address or hostname of an SMTP mail server. As we have seen previously, this directive cannot be used with the Sendmail directive, and if both Sendmail and SMTPServer directives don’t appear in the mailto.conf file, then the default Sendmail will be considered. The following are examples of the SMTP server:

SMTPServer mail.mailforcups.com

The Subject Directive

The Subject directive is used if you want to prefix some text to the subject line in each email that CUPS sends out. The following examples show how a prefix can be specified with this directive. By default, no prefix string is added:


Monitoring SNMP Printers

As discussed, CUPS supports SNMPv1 for discovering SNMP enabled printers. This Simple Network Management Protocol-SNMP is used for managing networking printers. We can use any network monitoring tools that supports SNMP for monitoring these SNMP-enabled printers. You can check various open-source network monitoring tools at:


I would recommend you to use Cacti, which is a frontend to an RRDTool (Round Robin Database Tool) that collects and stores data in a MySQL database. The frontend is completely written in PHP. The advantage of Cacti over other network monitoring tool is that it has built-in SNMP capabilities and like other monitoring tools such as Nagios, it has its internal mechanism to check certain aspects of the infrastructure. It also provides a frontend for maintaining customized scripts, which an administrator normally creates. But the most important factor is that it is much easier to configure than Nagios. RRDTool is a system that stores high performance logging data and displays related time-series graphs. You can get more information about RRDTool from: http://oss.oetiker.ch/rrdtool/

Downloading and Installing Cacti

The pre-requisites of Cacti include MySQL database, PHP, RRDTool, net-snmp, and PHP supported web servers such as Apache or IIS. You can get detailed information about the pre-requisites for Cacti installation at:


The current stable release of Cacti is 0.8.7b. You can download various versions of Cacti for different platforms from:


You can get installation information for Cacti and its pre-requisites on the UNIX/Linux platform from:


The following URL will help you install Cacti on the Windows platform:


Monitoring CUPS- part2

You can proceed further by clicking on Next. The next screen shows two options for a new install or an upgrade. If you want to do fresh installation, use the option New Install and click on Next. The screen also displays some useful information such as database user, database hostname, database name, and OS that was specified while configuring Cacti.

Monitoring CUPS- part2

If you want to upgrade the Cacti, follow the instructions mentioned here:


And then select the upgrade from cacti-current-version option and click on Next to proceed further.

Monitoring CUPS- part2

The following screen appears, which shows the recommended path of the binary files such as RRDTool, PHP, snmpwalk, snmpgetV, snmpbulkwalk, snmpgetnext, and information related to the Cacti log file and versions for net-snmp and RRDTool. If you found any change in the path with your installation, it should be modified first. Otherwise, Cacti may not work properly. Click on Finish to complete the installation procedure.

Monitoring CUPS- part2

Once the installation is finished and the next screen will ask for authentication. You need to use the username and the password mentioned in your database configuration to log into a Cacti application:

Monitoring CUPS- part2

You can use default login information to log in for the first time. Once you click on Login, the next screen will force you to change your password.

Monitoring CUPS- part2

Once the password is changed, you can see the main page of Cacti that contains two major tabs: console and graphs apart from other generalized options. The console tab contains various options related to the template and graphs management, whereas the graphs tab contains related graphs.

Monitoring CUPS- part2



Please enter your comment!
Please enter your name here