Back to projects
Sep 11, 2025
4 min read

NodeSniff

Lightweight monitoring for Linux, Raspberry Pi, IoT and small distributed systems.

NodeSniff is a lightweight monitoring platform I designed and built for Linux servers, Raspberry Pi devices, IoT systems and small distributed environments. The idea was simple: provide useful infrastructure visibility without introducing the complexity and operational overhead of a large observability stack.

The idea

Modern monitoring platforms are extremely powerful, but for smaller environments that power often comes with unnecessary infrastructure, configuration and maintenance.

NodeSniff started from a simple question:

How much useful monitoring can I provide while keeping the whole system lightweight, understandable and easy to operate?

That principle drives the architecture. The goal is not to reproduce every feature of an enterprise observability platform, but to provide the capabilities that matter while keeping the number of moving parts small.

How it works

NodeSniff collects telemetry from distributed Linux systems and sends it securely to a central platform where the data is processed, stored and visualized. It provides visibility into CPU, memory, storage, network and operating system metrics, together with historical data available through a web interface.

The architecture is intentionally straightforward:

Linux / Raspberry Pi / IoT
          |
          v
   NodeSniff Agent
          |
      HTTPS / API
          |
          v
    FastAPI Backend
          |
          v
      PostgreSQL
          |
          v
    Web Interface

Each component has a clear responsibility. The agent collects telemetry at the edge, the API provides a controlled communication boundary, the backend processes incoming data, PostgreSQL stores it, and the web interface turns it into useful operational information. A monitored node first establishes its identity with the platform. The backend provisions credentials for subsequent communication, after which telemetry is authenticated and transmitted over HTTPS using API authentication and HMAC request signing.

The overall flow remains deliberately simple:

collect → authenticate → transmit → process → store → visualize

Technology and design

The platform is built around a relatively small and conventional technology stack:

  • Python / FastAPI for the backend and API
  • PostgreSQL for persistent storage
  • JavaScript / Chart.js for the web interface and visualization
  • Python / psutil for Linux telemetry collection
  • HTTPS / HMAC for secure agent communication

The monitoring agent is designed to remain lightweight and extensible. Metric collection can be extended through Python plugins, while the agent itself integrates with systemd and can run under a dedicated unprivileged account. The design deliberately favors simplicity, low operational overhead and maintainability over adding infrastructure for hypothetical future scale.

Where it fits

NodeSniff is primarily aimed at environments such as Linux servers, Raspberry Pi devices, home labs, IoT and edge systems, and other small distributed environments. The common denominator is the need for useful monitoring without turning monitoring itself into another large infrastructure project.

Built end-to-end

NodeSniff is also my way of staying directly involved with technology. My professional work increasingly focuses on project management, technology delivery and leadership, but I still want to understand systems by actually building them.

With NodeSniff I work across the complete chain:

agent → security → API → backend → database → frontend → deployment → operations

That includes architecture, implementation, troubleshooting, deployment, security and the operational consequences of those decisions.

Production

NodeSniff is a working production system, not a portfolio mock-up.

It runs on real infrastructure with deployed agents, authenticated communication, persistent monitoring data and a working web interface. Running the system in production is part of the project itself, because real usage exposes architectural assumptions and operational problems that are difficult to discover in a prototype.

Source

The NodeSniff Linux agent is publicly available on GitHub.