Python Netmon 1.2
v1.2 - SNMP, SQLLite, Plugins
Release Date: 9/2/2024
Core Enhancements
SNMP Integration:
- Implemented SNMP monitoring using the NetOpsSNMP class.
- Added SNMP status checks to determine device reachability, with fallback to ping if SNMP fails.
- Configurable SNMP community strings via config.ini.
SQLite Integration:
- Integrated SQLite database for storing device information, logs, and status updates.
- Introduced SystemLog class to manage program logs, including error handling and informational messages.
- Environment setup now ensures database and required folders are created if they do not exist.
Plugins Architecture
Plugin System:
- Introduced a plugins folder for modular functionality.
- Dynamic Tools menu loads and executes plugins at runtime.
Syslog Plugin:
- Developed a Syslog server plugin that listens for syslog messages and stores them in SQLite.
- Integrated Syslog Viewer in the Tools menu to display and filter syslog messages.
Speed Test Plugin:
- Added a speed test plugin utilizing speedtest-cli.
- GUI for running speed tests and displaying download, upload speeds, and ping.
- Thread-safe GUI updates within the plugin.
- Performance and Stability Improvements
Thread-Safe Queue Management:
- Implemented a thread-safe queue (update_queue) for managing GUI updates from background threads.
- Ensured all GUI interactions from background threads are routed through this queue.
Device Status Tracking:
- Introduced counters for tracking consecutive successes and failures for device checks to prevent intermittent "flashing" statuses.
- Threshold-based mechanism for determining device reachability based on multiple checks.
Error Handling and Logging:
- Improved error handling across modules, with comprehensive logging for easier troubleshooting.
- Enhanced System Log viewer with log level filters and search functionality.
- User Interface and Usability
Reduced Application Size:
- Optimized the codebase, reducing the overall size by approximately 50%.
- Simplified GUI code while adding new features, ensuring a cleaner and more maintainable codebase.
Improved Device Management:
- Streamlined device management dialogs (add, edit, delete) for easier interaction.
- Correctly tracks and highlights acknowledged devices in the Treeview.
Enhanced Visual Feedback:
- Improved visual indicators in the Treeview for device statuses, with color-coding for reachable and unreachable devices.
- Added a countdown timer and progress bar for refresh intervals, giving users clear feedback on the next check.
Environment Setup
Automated Setup:
- Automated environment setup ensures all necessary Python packages are installed.
- Added firewall configuration steps for both Windows and Linux to allow Syslog traffic on UDP port 514.