"Cache paramètres de connexion"
This commit is contained in:
42
Monitor.py
42
Monitor.py
@@ -4,9 +4,16 @@ from datetime import datetime, timedelta
|
||||
import time
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
import pandas as pd
|
||||
from dotenv import load_dotenv
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
if os.name != 'nt':
|
||||
log_dir = Path('/home/debian/Gestion_sondes/Logs')
|
||||
else:
|
||||
log_dir = Path.cwd() / 'Logs'
|
||||
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
load_dotenv()
|
||||
|
||||
@@ -18,11 +25,6 @@ config = {
|
||||
"database": os.getenv("DB_NAME")
|
||||
}
|
||||
|
||||
# Charger les destinataires depuis .env
|
||||
# Charger les destinataires depuis .env
|
||||
|
||||
destinataires = os.getenv("DESTINATAIRES_MAIL", "").split(',')
|
||||
|
||||
# --- Suivi des alertes actives pour rappels ---
|
||||
alertes_actives = {}
|
||||
|
||||
@@ -30,18 +32,14 @@ alertes_actives = {}
|
||||
def envoyer_mail(sujet, message, destinataires_list):
|
||||
msg = MIMEText(message)
|
||||
msg['Subject'] = sujet
|
||||
msg['From'] = 'alertes_saclay@domo91.fr'
|
||||
msg['From'] = os.getenv("EMAIL_FROM")
|
||||
msg['To'] = ', '.join(destinataires_list)
|
||||
try:
|
||||
with smtplib.SMTP_SSL('smtp.mail.ovh.net', 465) as server:
|
||||
|
||||
server.login('alertes_saclay@domo91.fr', 'Kdpke674y23Feq^H')
|
||||
try:
|
||||
with smtplib.SMTP_SSL(os.getenv("SMTP_HOST"), int(os.getenv("SMTP_PORT"))) as server:
|
||||
server.login(os.getenv("EMAIL_FROM"), os.getenv("EMAIL_PASSWORD"))
|
||||
server.sendmail(msg['From'], destinataires_list, msg.as_string())
|
||||
print(f"📧 Mail envoyé à {destinataires_list}", flush=True)
|
||||
server.login('alertes_saclay@domo91.fr','Kdpke674y23Feq^H')
|
||||
server.sendmail(msg['From'], destinataires, msg.as_string())
|
||||
print(f"📧 Mail envoyé à {destinataires}", flush=True)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Erreur envoi mail : {e}", flush=True)
|
||||
|
||||
@@ -107,7 +105,8 @@ def surveiller():
|
||||
f"La sonde '{nom_sonde}' du site '{lieu}' a dépassé le seuil de {seuil}°C "
|
||||
f"depuis plus de 30 minutes.\nHeure : {maintenant.strftime('%Y-%m-%d %H:%M:%S')}"
|
||||
)
|
||||
envoyer_mail(sujet, message, destinataires)
|
||||
destinataires_list = os.getenv("EMAIL_DESTINATAIRES").split(",")
|
||||
envoyer_mail(sujet, message, destinataires_list)
|
||||
|
||||
# Suivi pour rappels
|
||||
alertes_actives[nom_sonde] = maintenant
|
||||
@@ -121,7 +120,8 @@ def surveiller():
|
||||
f"La sonde '{nom_sonde}' du site '{lieu}' est TOUJOURS en dépassement de seuil (>{seuil}°C).\n"
|
||||
f"Heure : {maintenant.strftime('%Y-%m-%d %H:%M:%S')}"
|
||||
)
|
||||
envoyer_mail(sujet, message, destinataires)
|
||||
destinataires_list = os.getenv("EMAIL_DESTINATAIRES").split(",")
|
||||
envoyer_mail(sujet, message, destinataires_list)
|
||||
alertes_actives[nom_sonde] = maintenant
|
||||
|
||||
# Vérifier retour à la normale (Acquittement)
|
||||
@@ -147,9 +147,15 @@ def surveiller():
|
||||
conn.close()
|
||||
|
||||
if log_entries:
|
||||
import pandas as pd
|
||||
df_logs = pd.DataFrame(log_entries)
|
||||
df_logs.to_csv("/var/log/monitor.csv", sep=";", index=False)
|
||||
df_logs.to_csv("/home/debian/Gestion_sondes/Logs/monitor.csv", sep=";", index=False)
|
||||
|
||||
# Sauvegarde principale
|
||||
df_logs.to_csv(log_dir / "monitor.csv", sep=";", index=False)
|
||||
|
||||
# Sauvegarde secondaire (Linux uniquement)
|
||||
if os.name != 'nt':
|
||||
df_logs.to_csv("/var/log/monitor.csv", sep=";", index=False)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Erreur : {e}", flush=True)
|
||||
|
||||
Reference in New Issue
Block a user