check_interfaces.py

Deterministic Network Interface Monitoring

check_interfaces.py is a deterministic network interface monitoring tool designed for operators and monitoring systems that require reproducible, audit‑transparent interface state.
It provides canonical filtering, speed enforcement, and structured output suitable for Nagios, Icinga, and automation pipelines.

Overview

check_interfaces.py inspects local network interfaces using a deterministic, reproducible pipeline.
It supports canonical filtering rules, interface selection, speed validation, and structured metadata extraction.
The tool is built around three principles:

  1. Determinism — same host → same output
  2. Reproducibility — no environment‑dependent behavior
  3. Audit Transparency — explicit, structured interface metadata

Key Features

  1. Canonical interface filtering (alias, virtual, local, ignore, require)
  2. Speed enforcement and validation
  3. Deterministic metadata extraction
  4. JSON, verbose, and Nagios output modes
  5. Operator‑grade error classification
  6. Consistent behavior across Linux distributions

Canonical Filtering

Deterministic Behavior

Architecture Overview

1. Discovery Layer

Enumerates all network interfaces and retrieves raw metadata from the operating system.
All fields are normalized for reproducibility.

2. Filtering Layer

Applies canonical filtering rules to remove irrelevant or non‑operator interfaces.
Filtering is deterministic and fully explicit.

3. Validation Layer

4. Output Layer

Produces deterministic JSON, verbose, or Nagios output.
All fields are explicit and audit‑transparent.

Current Status

Roadmap

Near‑Term

Mid‑Term

Long‑Term

Why check_interfaces.py Exists

Traditional interface checkers often produce inconsistent output, rely on distribution‑specific behavior, or provide limited visibility into interface metadata.
check_interfaces.py solves this by applying deterministic engineering principles:

  1. explicit filtering
  2. reproducible output
  3. audit‑transparent reporting
  4. no hidden behavior or implicit assumptions
It’s not just an interface checker — it’s a deterministic interface inspection engine.

Links

Related Projects