ajout partie parseurs_logs_switch
This commit is contained in:
@@ -1,57 +1,131 @@
|
||||
# Parseur de Logs HPE 5130
|
||||
# Switch Log Parser & Excel Uplink Report & Uplink Diagram
|
||||
|
||||
Ce projet permet d'extraire automatiquement des informations pertinentes depuis les logs de switchs **HPE 5130**, notamment les connexions entre les switchs d'accès et le cœur de réseau. Les résultats sont exportés sous deux formats :
|
||||
## Description
|
||||
|
||||
- Un **fichier Excel** listant les interfaces côté accès et cœur.
|
||||
- Un **diagramme Mermaid** simplifié représentant les connexions.
|
||||
Cet outil permet de **récupérer les données des logs de différents types de switches** (HPE uniquement actuellement) et de **convertir ces informations en un format JSON normalisé basé sur des modèles OpenConfig en YANG**.
|
||||
|
||||
Il fournit également la possibilité de générer une **rapport des liens inter-switches format Excel** pour visualiser les liens entre les switches existants.
|
||||
Il fournit également la possibilité de générer une **rapport des interfaces format Excel** pour visualiser la liste des counters pour chaque interface.
|
||||
Il fournit également la possibilité de générer une **rapport des stack format Excel** pour visualiser les stack de chaque switch.
|
||||
Il founit également la possibilité de générer une **schéma de l'infrastructure** pour visualiser les liens entres les switches dans l'infrastructure.
|
||||
|
||||
## Fonctionnalités principales
|
||||
|
||||
1. **Analyse multi-switches**
|
||||
- Développement de scripts Python dédiés à chaque type de switch :
|
||||
- HPE
|
||||
- Extraction automatique des informations pertinentes à partir des fichiers de log respectifs.
|
||||
- display mac-address
|
||||
- display arp all
|
||||
- display ip routing-table
|
||||
- display fib
|
||||
- display version
|
||||
- display device manuinfo
|
||||
- display power
|
||||
- display fan
|
||||
- display environment
|
||||
- boot-loader infomation
|
||||
- display irf
|
||||
- display irf topology
|
||||
- display irf configuration
|
||||
- display process cpu slot [master]
|
||||
- display process slot [master]
|
||||
- display memory
|
||||
- display transceiver diagnosis interface
|
||||
- display transceiver interface
|
||||
- display logbuffer
|
||||
- display stp
|
||||
- display interface
|
||||
- display link-aggregation verbose
|
||||
- display current-configuration
|
||||
- display saved-configuration
|
||||
|
||||
2. **Conversion en JSON normalisé**
|
||||
- Export des configurations dans un format JSON structuré selon les modèles OpenConfig :
|
||||
- `openconfig-system`
|
||||
- `openconfig-lldp`
|
||||
- `openconfig-relay-agent`
|
||||
- `ietf-snmp`
|
||||
- `openconfig-vlan`
|
||||
- `openconfig-acl`
|
||||
- `openconfig-network-instance`
|
||||
- `openconfig-interfaces`
|
||||
- `openconfig-platform`
|
||||
- `openconfig-spanning-tree`
|
||||
|
||||
3. **Génération de rapport de liens inter-switches**
|
||||
- Script Python qui utilise le JSON normalisé pour générer automatiquement une matrice Excel détaillant :
|
||||
- les liens entre les switches
|
||||
|
||||
4. **Génération de rapport des stack**
|
||||
- Script Python qui utilise le JSON normalisé pour générer automatiquement une matrice Excel détaillant :
|
||||
- les stacks
|
||||
|
||||
5. **Génération de rapport des interfaces**
|
||||
- Script Python qui utilise le JSON normalisé pour générer automatiquement une matrice Excel détaillant :
|
||||
- les counters de chaque interface
|
||||
|
||||
6. **Génération de schéma de l'infrastructure**
|
||||
- Script Python qui utilise le JSON normalisé pour générer automatiquement un schéma accessible sur un navigateur détaillant :
|
||||
- les liens entre les switches
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Pré-requis
|
||||
```bash
|
||||
cd ..\..\
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\activate
|
||||
|
||||
pip install -r .\src\requirements.txt
|
||||
```
|
||||
|
||||
#### Commandes principales
|
||||
```bash
|
||||
python3 .\src\main.py hpe .\src\input\backup\ -d -u -i -s
|
||||
```
|
||||
#### Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| -o [nom_fichier] | Spécifie le nom du fichier JSON de sortie (optionnel)
|
||||
| -u | Génère un rapport Excel des liens inter-switches (optionnel)
|
||||
| -s | Génére un rapport Excel des stack (optionnel)
|
||||
| -i | Génére un rapport Excel des counters des interfaces (optionnel)
|
||||
| -d | Génère un schéma de l'infrastructure des liens inter-switches (optionnel)
|
||||
---
|
||||
|
||||
## 🧰 Fonctionnalités
|
||||
|
||||
- Extraction des données utiles depuis les fichiers `.log` au format **JSON**.
|
||||
- Génération d’un **rapport Excel (`uplink_report.xlsx`)** contenant :
|
||||
- Les informations des interfaces côté accès connectées au cœur.
|
||||
- Les informations des interfaces du cœur.
|
||||
- Création d’un **fichier Mermaid (`mermaid.md`)** représentant graphiquement les connexions.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Lancement
|
||||
|
||||
Pour lancer l’outil, placez-vous dans le dossier du projet et exécutez la commande suivante :
|
||||
## Arborescence du projet
|
||||
|
||||
```bash
|
||||
python .\src\main.py [fichier logs du cœur]
|
||||
```
|
||||
#### 💡 Exemple : python .\src\main.py .\src\logs\core_switch.log
|
||||
|
||||
---
|
||||
|
||||
## 📁 Arborescence du projet
|
||||
```makefile
|
||||
C:.
|
||||
└───src
|
||||
├───logs # Contient les fichiers .log des switchs (à déposer ici)
|
||||
├───output # Contient les fichiers générés (Excel et Mermaid)
|
||||
├───scripts # Contient les scripts de traitement
|
||||
│ ├───extract_json.py # Extraction des données en JSON
|
||||
│ ├───format.py # Formatage des données
|
||||
│ ├───mermaid.py # Formatage et génération du fichier Mermaid
|
||||
│ └───parse_uplinks.py # Création du fichier Excel
|
||||
└───main.py # Programme de lancement
|
||||
├───src
|
||||
│ ├───icons # Fichiers de logo pour export_schema_infra
|
||||
│ ├───input # Fichiers de logs
|
||||
│ ├───modèles # Modèles YANG
|
||||
│ ├───output # Fichiers JSON normalisés/Excel matrice de flux
|
||||
│ └───scripts # Fichiers python
|
||||
│ └───objets
|
||||
```
|
||||
|
||||
---
|
||||
## Structure du JSON généré
|
||||
|
||||
## 📌 Instructions d'utilisation
|
||||
1. Déposer les fichiers .log dans le dossier src/logs.
|
||||
2. Lancer le script main.py avec en argument le log du switch cœur.
|
||||
3. Les résultats seront disponibles dans le dossier src/output :
|
||||
- uplink_report.xlsx
|
||||
- mermaid.md
|
||||
```bash
|
||||
.json
|
||||
├── switch-device # type de switch (hpe)
|
||||
├── openconfig-system
|
||||
├── openconfig-lldp
|
||||
├── openconfig-relay-agent
|
||||
├── ietf-snmp
|
||||
├── openconfig-vlan
|
||||
├── openconfig-acl
|
||||
├── openconfig-network-instance
|
||||
├── openconfig-interfaces
|
||||
├── openconfig-platform
|
||||
└── openconfig-spanning-tree
|
||||
```
|
||||
|
||||
---
|
||||
## Auteurs
|
||||
|
||||
## ⚠️ Remarque
|
||||
- Bien penser à **mettre les fichiers de logs avec l'extension `.log`** dans le dossier `src/logs`.
|
||||
Projet développé par :
|
||||
- Julie Chevallier | Computacenter
|
||||
Reference in New Issue
Block a user