Printer Monitoring System
A production-ready, SNMP-based printer monitoring solution with a web dashboard, automated discovery, and reporting.
Version 2.0.0 Python 3.11+ Platform Windows Status Production Ready ✅
Overview
The Printer Monitoring System monitors network printers across multiple locations using SNMP. It collects key metrics including page counts, toner levels, drum status, and device health. Data is stored locally in an SQLite database and presented through a modern web dashboard.
Key capabilities
- Automatic discovery of SNMP-enabled printers across multiple subnets
- Real-time monitoring of toner, drum, and page counts
- Web dashboard with filtering, search, and printer detail views
- PDF reports: current status and multi-period usage summaries
- Usage analysis for 30, 90, 120, and 365-day periods
- Low toner alerts, historical tracking, and trend analysis
Features
Network discovery
- Automatic discovery across multiple subnets
- Subnet-to-location mapping
- Model identification and metadata extraction
- Safe duplicate handling (preserves existing data)
Monitoring & metrics
- Page counts: total pages and usage by time period
- Toner levels: percent-based or status (OK/Low)
- Drum units: remaining capacity percentage
- Device status: online/offline detection
- Multi-vendor support: Brother, Samsung, HP, Xerox, and more
Web dashboard
- Clean, responsive interface
- Filter by location and printer model
- Status cards with color-coded alerts
- Charts with selectable time windows (7–90 days)
- Printer detail pages with history and usage stats
- Editable location assignments
Reporting
- Current Status Report: snapshot of all printers and key metrics
- Usage Summary Report: 30/90/120/365-day totals and averages
- PDF exports with professional formatting
- CSV export for external analysis
Production deployment
- Windows Service integration
- Task Scheduler support
- Automatic restart and monitoring
- Detailed logging and diagnostics
- Internal-only access controls (recommended)
System Requirements
Software
- OS: Windows Server 2019+ or Windows 10/11
- Python: 3.11 or higher
- Network: access to printer subnets
- Protocol: SNMP v1/v2c enabled on printers
Hardware
- Minimum: 2 GB RAM, 2 CPU cores, 10 GB disk
- Recommended: 4 GB RAM, 4 CPU cores, 20 GB disk
Python dependencies
Flask==3.0.0
pysnmp==6.2.6
reportlab==4.0.9
waitress==3.0.0
pywin32==306
Quick Start
1) Install & set up
- Install Python 3.11+ (ensure “Add Python to PATH” is enabled).
- Extract the application to:
C:\printermanager - Install dependencies:
pip install -r requirements.txt - Create logs folder:
C:\printermanager\logs
2) Configure monitored subnets
Create or edit C:\printermanager\subnets.txt:
# Format: SUBNET/CIDR,Location Name
10.164.1.0/24,Main Office
10.164.2.0/24,North Main
10.164.3.0/24,South Branch
3) Run initial discovery
cd C:\printermanager
python auto_configure_monitoring.py
4) Start the dashboard
Recommended: run as a Windows Service for automatic startup.
# Install service
python dashboard_service.py install
# Start service
python dashboard_service.py start
# Set to auto-start
sc config PrinterDashboard start=auto
Access the dashboard
- From the server:
http://localhost:5000 - From the network:
http://<server-ip>:5000
Reports
Current Status Report
- Snapshot of all printers and their current metrics
- Includes summary totals, toner/drum levels, and alerts
- Filterable by location and model
Usage Summary Report
- Multi-period analysis: 30, 90, 120, 365 days
- Total pages per period, active printer count, averages
- Breakdown by printer
CSV export
# Export 90 days of data
python printer_monitor.py export 90 printer_data.csv
Operations & Maintenance
Service management
# Check status
Get-Service PrinterDashboard
# Start/Stop/Restart
Start-Service PrinterDashboard
Stop-Service PrinterDashboard
Restart-Service PrinterDashboard
# View logs
Get-Content C:\printermanager\logs\service.log -Tail 50
Get-Content C:\printermanager\logs\dashboard.log -Tail 50
Database maintenance
- Database file:
C:\printermanager\printer_monitoring.db - Recommend periodic backups and occasional SQLite VACUUM
Troubleshooting
Dashboard won’t start
- Verify Python:
python --version - Verify packages installed:
pip list - Check port 5000 usage:
netstat -ano | findstr :5000 - Check logs:
C:\printermanager\logs\
Printers not discovered
- Confirm SNMP v1/v2c enabled and community string configured
- Confirm UDP/161 reachability from the monitoring server
- Check firewall rules between server and printer subnets
Page counts look wrong on day 1
This is normal. The system needs at least two readings to calculate pages printed. Day 1 may show 0. Day 2+ will reflect accurate usage.
Security Notes
- This dashboard is intended for internal network use only.
- Restrict inbound access to the dashboard port (default
5000) to trusted networks. - Use standard Windows hardening practices and monitor logs for failures.
Support
For issues, questions, or feature requests:
- Review the troubleshooting guidance above
- Check log files in
C:\printermanager\logs\ - Contact your system administrator
Last Updated: February 12, 2025 • Version 2.0.0 • Production ready
