diff --git a/python_ml/syslog_parser.py b/python_ml/syslog_parser.py index c1a7f51..2832c63 100644 --- a/python_ml/syslog_parser.py +++ b/python_ml/syslog_parser.py @@ -185,8 +185,12 @@ class SyslogParser: def main(): """Main entry point""" + print("[DEBUG] Avvio syslog_parser...") + # Carica variabili d'ambiente da .env + print("[DEBUG] Caricamento .env da /opt/ids/.env...") load_dotenv("/opt/ids/.env") + print("[DEBUG] .env caricato") # Configurazione database da environment # IMPORTANTE: Usa 127.0.0.1 invece di localhost per forzare IPv4 @@ -198,24 +202,55 @@ def main(): 'password': os.getenv('PGPASSWORD', 'ids_password_change_me') } + print(f"[DEBUG] Configurazione database:") + print(f"[DEBUG] Host: {db_config['host']}") + print(f"[DEBUG] Port: {db_config['port']}") + print(f"[DEBUG] Database: {db_config['database']}") + print(f"[DEBUG] User: {db_config['user']}") + # File log da processare log_file = '/var/log/mikrotik/raw.log' + print(f"[DEBUG] File log: {log_file}") + + # Verifica esistenza file + if not os.path.exists(log_file): + print(f"[ERROR] File log non trovato: {log_file}") + print(f"[ERROR] Verifica che rsyslog sia configurato correttamente") + return + + print(f"[INFO] File log trovato: {log_file}") # Crea parser + print("[DEBUG] Creazione parser...") parser = SyslogParser(db_config) try: # Connetti al database + print("[DEBUG] Connessione database...") parser.connect_db() # Processa file in modalità follow (come tail -f) + print("[INFO] Avvio processamento log (modalità follow)...") parser.process_log_file(log_file, follow=True) + except Exception as e: + print(f"[ERROR] Errore critico: {e}") + import traceback + traceback.print_exc() finally: + print("[DEBUG] Chiusura connessione database...") parser.disconnect_db() if __name__ == "__main__": print("=== SYSLOG PARSER PER ROUTER MIKROTIK ===") print("Pressione Ctrl+C per interrompere\n") - main() + + try: + main() + except KeyboardInterrupt: + print("\n[INFO] Terminazione da utente (Ctrl+C)") + except Exception as e: + print(f"\n[ERROR] Errore fatale: {e}") + import traceback + traceback.print_exc()