Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

KzNetWatch

by Karoza — Surveillance réseau temps réel en ligne de commande, avec alertes sonores et notifications de bureau.

CI Release Go Reference License: MIT

Dépôt : github.com/karozadev/KzNetWatch


KzNetWatch surveille en temps réel la vitesse de connexion (téléchargement / envoi) sur vos interfaces réseau. Dès qu'un seuil configurable est dépassé (par ex. 2MB/s), il vous alerte via un bip sonore, une notification bureau native, un webhook (Slack/Discord) et journalise l'incident — le tout pilotable en mode démon pour tourner discrètement en arrière-plan.

Sommaire

Fonctionnalités

  • 📡 Surveillance temps réel du débit montant/descendant sur n'importe quelle interface réseau.
  • 🖱️ Menu interactif de sélection de carte réseau (nom, IP, statut, débit courant).
  • 🔔 Alertes multi-canal en cas de dépassement de seuil : bip terminal, bip système, notification bureau (macOS, Linux, Windows), webhook HTTP/Slack/Discord.
  • 📝 Journal d'incidents : vitesse et processus responsable du pic enregistrés dans un fichier log.
  • 🕵️ kznet top : tableau de bord des processus les plus actifs sur le réseau.
  • 🧩 Mode démon : lancez la surveillance en arrière-plan (start / stop / status).
  • 🖥️ Multi-plateforme : Linux, macOS, Windows.

Installation

Script d'installation (recommandé — Linux / macOS)

curl -fsSL https://raw.githubusercontent.com/karozadev/KzNetWatch/main/install.sh | bash

ou avec wget :

wget -qO- https://raw.githubusercontent.com/karozadev/KzNetWatch/main/install.sh | bash

Le script détecte automatiquement votre OS/architecture, télécharge le binaire kznet correspondant à la dernière release GitHub, vérifie son checksum SHA-256, puis l'installe dans /usr/local/bin (ou ~/.local/bin si vous n'avez pas les droits d'écriture). Variables d'environnement disponibles :

Variable Description
KZNET_VERSION Tag de version à installer (défaut : dernière release).
KZNET_INSTALL_DIR Répertoire d'installation (défaut : /usr/local/bin).
# Installer une version précise dans un répertoire personnalisé
KZNET_VERSION=v0.1.0 KZNET_INSTALL_DIR=$HOME/bin \
  curl -fsSL https://raw.githubusercontent.com/karozadev/KzNetWatch/main/install.sh | bash

Utilisateurs Windows : téléchargez l'archive .zip correspondante depuis la page Releases.

Avec go install

go install github.com/karozadev/KzNetWatch@latest

Depuis les releases GitHub

Téléchargez le binaire correspondant à votre plateforme depuis la page Releases, puis :

tar -xzf kznet_*_linux_amd64.tar.gz
sudo mv kznet /usr/local/bin/

Depuis les sources

git clone [email protected]:karozadev/KzNetWatch.git
cd KzNetWatch
go build -o kznet .

Démarrage rapide

kznet monitor

Sans --interface, KzNetWatch ouvre un menu interactif pour choisir la carte réseau à surveiller. Avec --interface, il démarre directement :

kznet monitor --interface eth0 --threshold 2MB --sound

Sélection interactive de l'interface

Au lancement de kznet monitor sans flag --interface, un menu TUI liste toutes les interfaces détectées (nom, statut actif/inactif, adresses IP). Naviguez avec les flèches ↑/↓ et validez avec Entrée :

KzNetWatch — sélection de l'interface réseau

▶ eth0           ● active   192.168.1.42
  lo             ● active   127.0.0.1
  wlan0          ● inactive sans adresse
  docker0        ● active   172.17.0.1

↑/↓ naviguer • entrée sélectionner • q/esc quitter

Une fois l'interface choisie, le tableau de bord temps réel s'affiche :

KzNetWatch — surveillance de eth0

╭──────────────────────────────╮
│ Téléchargement: 1.24 MB/s    │
│ Envoi:          312.50 KB/s  │
│ Seuil configuré: 2.00 MB/s   │
╰──────────────────────────────╯

q/esc quitter

Commandes

Commande Description
kznet monitor Tableau de bord temps réel du débit d'une interface, avec alertes.
kznet top Liste les processus les plus actifs sur le réseau.
kznet daemon start Démarre la surveillance en arrière-plan.
kznet daemon stop Arrête le démon en arrière-plan.
kznet daemon status Affiche le statut du démon (PID, interface surveillée).
kznet config Gère la configuration persistante (show, init, path).
kznet version Affiche la version installée.

Chaque commande accepte --help pour la liste complète des options.

Alertes : seuil, bip et notifications

kznet monitor --interface eth0 \
  --threshold 2MB \
  --sound \
  --beep \
  --desktop-notify \
  --webhook https://hooks.slack.com/services/XXX \
  --webhook-kind slack
Flag Description
--threshold Seuil de déclenchement (2MB, 512KB, 1.5GB, ou un nombre d'octets).
--sound Bip terminal (\a) à chaque alerte. Activé par défaut.
--beep Bip système (haut-parleur) via la synthèse audio légère de l'OS.
--desktop-notify Notification bureau native (macOS, Linux, Windows). Activée par défaut.
--webhook URL d'un webhook HTTP/Slack/Discord à notifier.
--webhook-kind Type de payload webhook : generic, slack ou discord.
--cooldown Délai minimum entre deux alertes (anti-spam), 10s par défaut.

Chaque incident est journalisé (vitesse, direction, processus responsable, PID) dans ~/.config/kznet/incidents.log (sur Linux ; voir Configuration pour les autres OS).

Mode démon

Le mode démon lance la surveillance en tâche de fond, détachée du terminal :

# Démarrer la surveillance de eth0 en arrière-plan, seuil 2 Mo/s
kznet daemon start --interface eth0 --threshold 2MB --desktop-notify

# Consulter le statut (PID, interface surveillée)
kznet daemon status
# → démon KzNetWatch: actif (PID 12345, interface eth0)

# Arrêter le démon
kznet daemon stop

Le démon écrit son PID dans ~/.config/kznet/kznet.pid, ses logs dans ~/.config/kznet/daemon.log, et refuse de démarrer une seconde instance tant que la première est active.

Configuration

kznet config init     # écrit une configuration par défaut
kznet config show     # affiche la configuration actuelle
kznet config path     # affiche le chemin du fichier de configuration

Le fichier de configuration YAML est stocké dans le répertoire de configuration standard de l'OS ($XDG_CONFIG_HOME/kznet/config.yaml sur Linux, ~/Library/Application Support/kznet sur macOS, %AppData%\kznet sur Windows).

Contribuer

Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour le workflow GitFlow, les conventions de commit et le processus de Pull Request.

Licence

Distribué sous licence MIT.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages