Skip to content

Erreur32/LogviewR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LogviewR - Log Viewer Application

‼️ En cour de developpement ACTIF , Version BETA ‼️

LogviewR

LogviewR Status Docker React TypeScript License

Application de visualisation de logs en temps réel pour Apache, Nginx, NPM et logs système

Installation | Fonctionnalités | Plugins | Configuration | Documentation


📋 Table des matières


🎯 À propos

LogviewR est une application web moderne et performante pour visualiser et analyser les logs en temps réel. Conçue pour les administrateurs système et les développeurs, elle offre une interface intuitive pour surveiller les logs de vos serveurs web et systèmes.

Caractéristiques principales

  • 🚀 Temps réel : Streaming WebSocket pour un suivi en direct des logs
  • 🎨 Interface moderne : Design épuré avec thèmes personnalisables
  • 🔍 Recherche avancée : Filtres multiples (niveau, date, IP, méthode HTTP, etc.)
  • 📊 Statistiques : Tableaux de bord avec statistiques détaillées par plugin
  • 🔐 Sécurisé : Authentification JWT, gestion des rôles, permissions par plugin
  • 🐳 Docker-ready : Déploiement simplifié avec Docker Compose
  • Performant : Optimisations pour gérer des milliers de fichiers de logs

✨ Fonctionnalités

Visualisation des logs

  • Tableau interactif : Colonnes dynamiques selon le type de log
  • Tri adaptatif : Tri automatique par type (date, nombre, IP, texte)
  • Badges colorés : Visualisation intuitive des niveaux, codes HTTP, IP, hostnames

Filtres et recherche

  • Recherche texte : Recherche dans tous les champs des logs

Regex personnalisées

  • Éditeur intégré : Éditeur de regex avec test en temps réel
  • Regex par fichier : Configuration de regex personnalisées par fichier

Statistiques et analytique

  • Statistiques par plugin : Nombre de fichiers, fichiers lisibles/non lisibles
  • Plus gros fichiers : Top 10 des fichiers les plus volumineux
  • Statistiques en temps réel : Mise à jour automatique des statistiques
  • Tableaux de bord : Vue d'ensemble de tous les plugins actifs

🔌 Plugins

LogviewR supporte plusieurs plugins pour différents types de logs :

🖥️ Host System - Plugin pour les logs système Linux/Unix
  • Types de logs supportés :

    • Syslog (/var/log/syslog, /var/log/messages)
    • Auth logs (/var/log/auth.log, /var/log/secure)
    • Kernel logs (/var/log/kern.log)
    • Daemon logs (/var/log/daemon.log)
    • Mail logs (/var/log/mail.log)
    • Logs personnalisés
  • Fonctionnalités :

    • Détection automatique de l'environnement Docker
    • Support des formats syslog standard (RFC 3164, RFC 5424)
    • Parsing des timestamps avec gestion des timezones
    • Extraction des niveaux de sévérité
    • Fichiers personnalisés configurables
  • Configuration :

    • Chemin de base configurable (par défaut : /var/log ou /host/logs en Docker)
    • Patterns de fichiers personnalisables
    • Regex personnalisées par type de log
🌐 Apache - Plugin pour les logs Apache HTTP Server
  • Types de logs supportés :

    • Access logs (formats Combined, Common, VHost)
    • Error logs (formats standard et étendus)
  • Fonctionnalités :

    • Support des formats Virtual Host
    • Support IPv4 et IPv6
    • Extraction des champs : IP, timestamp, méthode HTTP, URL, code de statut, taille, referer, user-agent
    • Parsing des erreurs avec extraction du module, niveau, PID, TID, client IP
    • Regex par défaut pour chaque format
    • Regex personnalisées par fichier
  • Configuration :

    • Fichiers de logs personnalisés configurables
    • Regex par défaut modifiables
    • Support des fichiers compressés (.gz)
🚀 Nginx - Plugin pour les logs Nginx
  • Types de logs supportés :

    • Access logs (formats Combined, Common, Main, Extended)
    • Error logs
  • Fonctionnalités :

    • Support de multiples formats de logs Nginx
    • Extraction complète des champs HTTP
    • Parsing des timestamps avec gestion des timezones
    • Regex compatibles avec fail2ban et ELK
    • Regex par défaut pour chaque format
  • Configuration :

    • Fichiers de logs personnalisés configurables
    • Regex par défaut modifiables
    • Support des fichiers compressés (.gz)
🔄 Nginx Proxy Manager (NPM) - Plugin pour les logs Nginx Proxy Manager
  • Types de logs supportés :

    • Access logs (formats standard avec cache, sans cache, custom combined, extended)
    • Error logs
  • Fonctionnalités :

    • Support de 5 formats de logs NPM différents
    • Détection automatique du format
    • Extraction des champs : cache, upstream status, gzip ratio, etc.
    • Gestion des sous-domaines (proxy-host-xxx_access.log)
    • Regex par défaut pour chaque format
  • Configuration :

    • Fichiers de logs personnalisés configurables
    • Regex par défaut modifiables
    • Support des fichiers compressés (.gz)


⚙️ Configuration

Variables d'environnement

Variable Description Défaut Requis
JWT_SECRET Secret pour signer les tokens JWT - ✅ Oui
DASHBOARD_PORT Port du dashboard 7500 Non
HOST_IP IP de la machine hôte Auto-détection Non
CONFIG_FILE_PATH Chemin du fichier de configuration externe /app/config/logviewr.conf Non
ADM_GID GID du groupe adm sur l'hôte (pour lire les fichiers de logs) 4 Non
HOST_ROOT_PATH Chemin racine du système hôte monté dans le conteneur /host Non
Permissions des fichiers de logs système

Le plugin Host System Logs nécessite l'accès en lecture aux fichiers de logs système. Par défaut, ces fichiers appartiennent à root:adm avec des permissions 640 (lecture pour root et le groupe adm).

Configuration automatique

Le conteneur Docker est automatiquement configuré pour :

  • Ajouter l'utilisateur node au groupe adm (GID 4)
  • Permettre la lecture des fichiers appartenant à root:adm

Vérification du GID du groupe adm

Pour vérifier que le GID correspond entre l'hôte et le conteneur :

# Sur l'hôte
getent group adm | cut -d: -f3

# Dans le conteneur
docker exec logviewr id

Si le GID est différent de 4, ajoutez dans votre fichier .env :

ADM_GID=votre_gid

Fichiers avec permissions restrictives

Certains fichiers de logs peuvent avoir des permissions plus restrictives (600 - lecture/écriture pour root uniquement) :

Exemples de fichiers problématiques :

  • /var/log/php8.0-fpm.log (appartient à root:root avec 600)
  • /var/log/rkhunter.log.1 (appartient à root:root avec 600)

Solution : Modifier les permissions sur l'hôte pour permettre la lecture par le groupe adm :

# Changer le groupe en adm et ajouter la lecture pour le groupe
sudo chgrp adm /var/log/php8.0-fpm.log*
sudo chmod 640 /var/log/php8.0-fpm.log*

sudo chgrp adm /var/log/rkhunter.log*
sudo chmod 640 /var/log/rkhunter.log*

Vérification après modification :

# Vérifier les permissions
ls -la /var/log/php8.0-fpm.log
ls -la /var/log/rkhunter.log.1

# Devrait afficher : -rw-r----- 1 root adm (640)

Note de sécurité : Modifier les permissions des fichiers de logs pour permettre la lecture par le groupe adm est une pratique standard sur les systèmes Linux. Le groupe adm est conçu pour permettre l'accès aux fichiers de logs aux administrateurs système.

Configuration Docker

Montage des volumes

Le fichier docker-compose.yml configure automatiquement les montages nécessaires pour accéder aux logs du système hôte :

volumes:
  # Montage du système de fichiers hôte (lecture seule)
  # Cela monte tout le système, y compris /var/log, sous /host
  - /:/host:ro
  
  # Montage séparé de /proc et /sys pour une meilleure compatibilité
  - /proc:/host/proc:ro
  - /sys:/host/sys:ro

Important : Le système utilise automatiquement /host/var/log pour accéder aux logs. Un symlink /host/logs -> /host/var/log est créé automatiquement par le script docker-entrypoint.sh si possible, mais le code utilise /host/var/log directement comme fallback.

⚠️ Ne pas utiliser le montage explicite /var/log:/host/logs:ro car il cause des erreurs "read-only file system" avec Docker.

Accès aux fichiers de logs

Les plugins accèdent aux fichiers de logs via les chemins suivants :

  • Host System : /host/var/log/syslog, /host/var/log/auth.log, etc.
  • Apache : /host/var/log/apache2/access.log, /host/var/log/apache2/error.log
  • Nginx : /host/var/log/nginx/access.log, /host/var/log/nginx/error.log
  • NPM : /host/var/log/npm/*.log

La conversion des chemins est automatique : si vous configurez /var/log/apache2 dans un plugin, il sera automatiquement converti en /host/var/log/apache2 (ou /host/logs/apache2 si le symlink existe) dans le conteneur Docker.

Configuration des plugins

Chaque plugin peut être configuré depuis l'interface d'administration :

  1. Accéder aux paramètres : Menu → Paramètres → Plugins
  2. Sélectionner un plugin : Cliquer sur la carte du plugin
  3. Configurer les options :
    • Chemin de base des logs
    • Patterns de fichiers
    • Fichiers personnalisés
    • Regex par défaut
    • Option de lecture des fichiers compressés

🌟 Atouts

⚡ Performance
  • Chargement optimisé : Mode quick pour affichage rapide
  • 🚀 Chargement en deux phases : Quick stats → Complete stats
  • 📊 Gestion efficace : Optimisé pour gérer des milliers de fichiers
  • 💾 Décompression intelligente : Support .gz avec gestion mémoire optimisée
🎨 Interface utilisateur
  • 🎨 Design moderne : Interface épurée et intuitive
  • 🌈 Thèmes personnalisables : 6 thèmes disponibles (dark, glass, modern, nightly, neon, elegant)
  • 📱 Responsive : Interface adaptée à tous les écrans
  • 🔍 Recherche avancée : Filtres multiples et recherche texte
  • 🎯 Badges colorés : Visualisation intuitive avec couleurs cohérentes
🔐 Sécurité
  • 🔐 Authentification JWT : Tokens sécurisés avec expiration configurable
  • 👥 Gestion des rôles : Admin, User, Viewer avec permissions granulaires
  • 🛡️ Protection CSRF : Protection contre les attaques CSRF
  • 🔒 Mots de passe hashés : Utilisation de bcrypt (10 rounds)
  • 🚫 Protection brute force : Verrouillage de compte après tentatives échouées
🔌 Extensibilité
  • 🔌 Architecture modulaire : Système de plugins extensible
  • 📝 Regex personnalisables : Configuration flexible des patterns
  • 🎛️ Configuration par plugin : Options spécifiques à chaque plugin
  • 🔄 API REST complète : Intégration facile avec d'autres outils
🔄 Fiabilité
  • 🔄 Reconnexion automatique : Gestion automatique des déconnexions WebSocket
  • 📊 Statistiques en temps réel : Mise à jour automatique des métriques
  • 🐛 Gestion d'erreurs : Gestion robuste des erreurs avec messages clairs
  • 📈 Monitoring : Statistiques détaillées par plugin

📚 Documentation

Guides utilisateur


🤝 Contribution

Les contributions sont les bienvenues ! Pour plus d'informations sur la contribution.

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


🙏 Remerciements


Fait avec ❤️ pour les administrateurs système et développeurs

Issues | Discussions | Wiki

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages