📊 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.

Scenario Reale:
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

1
Crea una nuova cella su Google Colab e crea il file log:
PYTHON
# 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

2
Leggi il file log e analizza le righe:
PYTHON
# 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

3
Crea il sistema di intelligenza artificiale per analizzare i log:
PYTHON
# 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}")

Spiegazione del Sistema IA:
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

4
Crea un report organizzato dei risultati:
PYTHON
# 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

5
Crea un sistema di consultazione per il personale IT:
PYTHON
# 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

6
Salva l'analisi su file per report futuri:
PYTHON
# 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!

Torna in alto