From 067dec6bcd059edef56bca4d975b97b53120067c Mon Sep 17 00:00:00 2001 From: Khalid MOUTAOUAKIL Date: Tue, 7 Apr 2026 00:33:54 +0200 Subject: [PATCH] =?UTF-8?q?Agents=20inactifs:=20KPI=20cliquable=20avec=20*?= =?UTF-8?q?,=20l=C3=A9gende=20RHEL5/EOL,=20liste=20d=C3=A9taill=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- app/routers/qualys.py | 11 ++++++++++- app/templates/qualys_agents.html | 34 +++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/routers/qualys.py b/app/routers/qualys.py index 71f4fcc..cb34438 100644 --- a/app/routers/qualys.py +++ b/app/routers/qualys.py @@ -463,10 +463,19 @@ async def qualys_agents_page(request: Request, db=Depends(get_db)): ORDER BY s.hostname """)).fetchall() + # Agents inactifs + inactive = db.execute(text(""" + SELECT qa.hostname, qa.os, qa.agent_version, qa.last_checkin, s.etat + FROM qualys_assets qa + LEFT JOIN servers s ON qa.server_id = s.id + WHERE qa.agent_status ILIKE '%inactive%' + ORDER BY qa.hostname + """)).fetchall() + ctx = base_context(request, db, user) ctx.update({ "app_name": APP_NAME, "keys": keys, "summary": summary, - "no_agent_servers": no_agent, + "no_agent_servers": no_agent, "inactive_agents": inactive, }) return templates.TemplateResponse("qualys_agents.html", ctx) diff --git a/app/templates/qualys_agents.html b/app/templates/qualys_agents.html index 55a7618..11d0185 100644 --- a/app/templates/qualys_agents.html +++ b/app/templates/qualys_agents.html @@ -13,7 +13,7 @@
{{ summary.total_assets or 0 }}
Total assets
{{ summary.active or 0 }}
Agents actifs
-
{{ summary.inactive or 0 }}
Agents inactifs
+
{{ summary.inactive or 0 }}*
Agents inactifs
{{ no_agent_servers|length }}
Sans agent (prod)
@@ -109,4 +109,36 @@ {% endif %} + + +{% if inactive_agents %} +
+

* Agents inactifs ({{ inactive_agents|length }})

+
+ * Légende : Ces serveurs ont un agent Qualys installé mais qui ne communique plus avec le cloud Qualys. + Causes possibles : serveur éteint, flux réseau bloqué (port 443 vers qualysagent.qualys.eu), agent crashé, ou OS non supporté (RHEL 5 EOL). + Tous ces agents sont en version 6.1.0.28 sur RHEL 5.x — dernier check-in le 14/11/2025. +
+ + + + + + + + + + {% for a in inactive_agents %} + + + + + + + + {% endfor %} + +
HostnameOSVersion agentDernier check-inÉtat
{{ a.hostname }}{{ a.os or '-' }}{{ a.agent_version or '-' }}{{ a.last_checkin[:10] if a.last_checkin else '-' }}{{ a.etat or '-' }}
+
+{% endif %} {% endblock %}