📊 Analisi File Log con Python e IA
Impara a leggere, analizzare e gestire file di log con sistemi intelligenti
Introduzione
Benvenuto in questa esercitazione pratica di Python per l’analisi di file di log! Simuleremo un sistema di monitoraggio server che analizza automaticamente file di log per identificare errori, warning e pattern critici.
Lavorerai come sistemista in un’azienda tech che ha bisogno di automatizzare l’analisi di file di log per monitorare la salute dei server e identificare problemi prima che diventino critici.
⚠️ ATTENZIONE: COPIA BLOCCATA
Il codice è protetto da sistema anti-copia. Dovrai SCRIVERE manualmente tutto il codice per imparare veramente! 🚫📋
Parte 1: Creazione del File Log di Test
▶ Scrittura del File Log
Crea una nuova cella su Google Colab e crea il file log:
# CREAZIONE FILE LOG DI TEST
log_content = """[INFO] 2024-01-15 08:30:15 - Server avviato correttamente
[WARNING] 2024-01-15 09:15:22 - RAM usage al 85%
[ERROR] 2024-01-15 10:05:47 - Connessione database fallita
[INFO] 2024-01-15 10:30:00 - Backup completato
[ERROR] 2024-01-15 11:20:33 - Timeout API endpoint /users
[INFO] 2024-01-15 12:00:00 - 1500 richieste gestite
[WARNING] 2024-01-15 13:45:18 - Disco pieno al 92%
[ERROR] 2024-01-15 14:30:55 - Servizio di autenticazione non risponde
[INFO] 2024-01-15 15:00:00 - Aggiornamento sicurezza applicato
[INFO] 2024-01-15 16:20:10 - Monitoraggio attività normale"""
# Scrivi il file log
with open('server_log.txt', 'w') as file:
file.write(log_content)
print("📝 FILE LOG CREATO: server_log.txt")
print("="*50)
print(log_content)
▶ Lettura e Analisi Base
Leggi il file log e analizza le righe:
# 2. LETTURA FILE LOG
print("\n📖 LETTURA FILE LOG" + "="*40)
with open('server_log.txt', 'r') as file:
log_lines = file.readlines()
print(f"Numero righe log: {len(log_lines)}")
print("\nContenuto riga per riga:")
for i, line in enumerate(log_lines, 1):
print(f"{i:2d}. {line.strip()}")
Parte 2: Analisi Intelligente con IA Rule-based
▶ Sistema IA per Categorizzazione Log
Crea il sistema di intelligenza artificiale per analizzare i log:
# 3. SISTEMA IA PER ANALISI LOG
print("\n🤖 ANALISI INTELLIGENTE LOG" + "="*50)
log_analisi = []
errori_critici = 0
warning = 0
info = 0
for line in log_lines:
line_lower = line.lower()
# Analisi IA Rule-based per errori
if "[error]" in line_lower:
tipo = "🚨 ERRORE CRITICO"
errori_critici += 1
# Pattern recognition avanzato
if "database" in line_lower:
causa = "Database"
elif "timeout" in line_lower:
causa = "Timeout"
elif "autenticazione" in line_lower:
causa = "Autenticazione"
else:
causa = "Generico"
elif "[warning]" in line_lower:
tipo = "⚠️ WARNING"
warning += 1
if "ram" in line_lower or "disco" in line_lower:
causa = "Risorsa Sistema"
else:
causa = "Generico"
elif "[info]" in line_lower:
tipo = "✅ INFO"
info += 1
if "server" in line_lower:
causa = "Server"
elif "backup" in line_lower:
causa = "Backup"
elif "monitoraggio" in line_lower:
causa = "Monitoraggio"
else:
causa = "Generico"
else:
tipo = "🔍 SCONOSCIUTO"
causa = "Da analizzare"
risultato = f"{tipo} | Causa: {causa} | Messaggio: {line.strip()}"
log_analisi.append(risultato)
# Visualizza analisi
for analisi in log_analisi:
print(analisi)
print(f"\n📊 STATISTICHE: Errori: {errori_critici} | Warning: {warning} | Info: {info}")
• Pattern Matching: Riconosce pattern specifici nei messaggi di log
• Categorizzazione Automatica: Classifica automaticamente i log in categorie
• Rule-based Intelligence: Usa regole per determinare la gravità
• Context Awareness: Capisce il contesto dal contenuto del messaggio
Parte 3: Organizzazione e Report
▶ Creazione Report Automatico
Crea un report organizzato dei risultati:
# 4. CREAZIONE REPORT ORGANIZZATO
print("\n📋 REPORT ANALISI LOG" + "="*50)
# Organizza per categoria
log_errori = []
log_warning = []
log_info = []
for analisi in log_analisi:
if "ERRORE" in analisi:
log_errori.append(analisi)
elif "WARNING" in analisi:
log_warning.append(analisi)
elif "INFO" in analisi:
log_info.append(analisi)
print(f"\n🚨 ERRORI CRITICI ({len(log_errori)}):")
for err in log_errori[:3]: # Mostra solo primi 3 errori
print(f" • {err}")
print(f"\n⚠️ WARNING ({len(log_warning)}):")
for warn in log_warning[:3]:
print(f" • {warn}")
print(f"\n✅ INFORMAZIONI ({len(log_info)}):")
for inf in log_info[:3]:
print(f" • {inf}")
▶ Interfaccia per Sistemista
Crea un sistema di consultazione per il personale IT:
# 5. INTERFACCIA PER SISTEMISTA
print("\n" + "="*60)
print("🖥️ SISTEMA DI ANALISI LOG INTELLIGENTE")
print("="*60)
scelta = input("\nCosa vuoi visualizzare? (ERRORI/WARNING/INFO/TUTTO/STATS): ").upper()
if scelta == "ERRORI":
print(f"\n🚨 PANORAMICA ERRORI ({len(log_errori)}):")
for err in log_errori:
print(f" • {err}")
elif scelta == "WARNING":
print(f"\n⚠️ PANORAMICA WARNING ({len(log_warning)}):")
for warn in log_warning:
print(f" • {warn}")
elif scelta == "INFO":
print(f"\n✅ PANORAMICA INFO ({len(log_info)}):")
for inf in log_info:
print(f" • {inf}")
elif scelta == "TUTTO":
print(f"\n📊 PANORAMICA COMPLETA:")
print(f" 🚨 Errori critici: {len(log_errori)}")
print(f" ⚠️ Warning: {len(log_warning)}")
print(f" ✅ Info: {len(log_info)}")
print(f" 📈 Totale log: {len(log_lines)}")
elif scelta == "STATS":
print("\n📈 STATISTICHE AVANZATE:")
print(f" Percentuale errori: {(len(log_errori)/len(log_lines))*100:.1f}%")
print(f" Percentuale warning: {(len(log_warning)/len(log_lines))*100:.1f}%")
print(f" Percentuale info: {(len(log_info)/len(log_lines))*100:.1f}%")
else:
print("❌ Scelta non valida. Usa: ERRORI, WARNING, INFO, TUTTO o STATS")
Parte 4: Estensioni Avanzate
▶ Salvataggio Report su File
Salva l'analisi su file per report futuri:
# 6. SALVATAGGIO REPORT SU FILE
print("\n💾 SALVATAGGIO REPORT" + "="*40)
report_content = f"""REPORT ANALISI LOG - {len(log_lines)} eventi analizzati
===========================================
ERRORI CRITICI: {len(log_errori)}
WARNING: {len(log_warning)}
INFORMAZIONI: {len(log_info)}
-------------------------------------------
STATISTICHE:
- Errori: {(len(log_errori)/len(log_lines))*100:.1f}%
- Warning: {(len(log_warning)/len(log_lines))*100:.1f}%
- Info: {(len(log_info)/len(log_lines))*100:.1f}%
===========================================
ANALISI ESEGUITA CON SISTEMA IA RULE-BASED
"""
with open('log_analysis_report.txt', 'w') as report_file:
report_file.write(report_content)
print("✅ Report salvato in: log_analysis_report.txt")
print("\n📄 Contenuto report:")
print(report_content)
Concetti di Python e IA Appresi
Congratulazioni! Ora conosci:
- ✓ File I/O in Python: Lettura e scrittura di file di testo
- ✓ Manipolazione Stringhe: Analisi e parsing di contenuti testuali
- ✓ Pattern Recognition: Riconoscimento pattern in dati testuali
- ✓ Categorizzazione Automatica: Classificazione intelligente di dati
- ✓ Report Generation: Creazione automatica di report
- ✓ System Monitoring: Tecniche di monitoraggio sistemi
- ✓ Rule-based AI: Sistemi a regole per analisi automatica
Prossimi Passi nell'Analisi Dati
Nella prossima esercitazione imparerai:
- 📈 Analisi di grandi dataset con Pandas
- 🔍 Pattern recognition avanzato con regex
- 🤖 Machine Learning per predizione errori
- 📊 Dashboard real-time per monitoraggio
- 🌐 Analisi log distribuiti in cloud
Hai costruito un sistema professionale per l'analisi intelligente di log!