Monitoring My EPSON XP-8600 Series Printer using Prometheus and Grafana

Xavier «X» Santolaria
4 min readJan 4, 2023


Playing around with my Pi-hole Raspberry Pi, I thought I could expand its mission and started looking into Grafana and Prometheus. One thing leading to another, I though why not monitor my printer. Running out of ink is very common. It’s always when you need that print, that you can’t do it.

In this post, I’ll show you how I did it, and consider this a proof-of-concept. We’ll assume here that you already have a running instance of Grafana and Prometheus. If not, you can find plenty of good articles online on how to do it.

High-level diagram of the setup

My setup at the time of writing:

  • Raspberry Pi 4 (4GB) running Bullseye version
  • Grafana v9.2.6
  • Prometheus v2.37.3 and snmp_exporter v0.21.0
  • EPSON XP-8600 Series printer

The EPSON Printer

First, let’s ensure we got the SNMP capability enabled. Connect to the web administration interface (it’s easier than the LCD screen on the printer itself) using its IP address, e.g. that if you had not previously set an Administrator password you will be prompted to do so, for obvious security reasons.

Verify SNMP v1/v2c is enabled with the Read-Only public community (SNMPv3 is also available, for which you can configure stronger Authentication and Encryption settings, but for the purpose of this test, we’ll stick with v2c).

Prometheus SNMP Exporter

Now lets install snmp_exporter, which will help us retrieve the data from our printer. Binaries can be downloaded from the Github releases page and need no special installation.

 $ wget
$ tar -xzvf snmp_exporter-0.21.0.linux-armv7.tar.gz
$ mv snmp_exporter-0.21.0.linux-armv7 snmp_exporter
$ rm snmp_exporter-0.21.0.linux-armv7.tar.gz

This exporter is the recommended way to expose SNMP data in a format which Prometheus can ingest. The default configuration file name is snmp.yml and should not be edited by hand. If you need to change it, see…