Files
html/monitoring-hub.html
2026-04-17 00:05:01 +02:00

103 lines
14 KiB
HTML

<!DOCTYPE html><html lang="fr"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Monitoring Hub — WEVAL</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}body{background:#0a0e1a;color:#e2e8f0;font-family:'Segoe UI',system-ui,sans-serif;min-height:100vh}
.top{background:linear-gradient(135deg,#0f172a 0%,#0a2e1a 50%,#1e293b 100%);padding:32px 40px;border-bottom:1px solid rgba(34,197,94,.2)}
.top h1{font-size:32px;font-weight:800;color:#fff}.top h1 span{background:linear-gradient(135deg,#22c55e,#4ade80);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.top p{color:#94a3b8;margin-top:6px;font-size:15px}
.nav{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.nav a{color:#86efac;text-decoration:none;padding:6px 16px;border:1px solid rgba(34,197,94,.3);border-radius:20px;font-size:13px;transition:.2s}.nav a:hover{background:rgba(34,197,94,.15);color:#fff}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;padding:24px 40px}
.stat{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.15);border-radius:14px;padding:16px;text-align:center}
.stat .v{font-size:22px;font-weight:800;color:#22c55e}.stat .l{font-size:11px;color:#94a3b8;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
h2{padding:12px 40px 0;font-size:15px;color:#22c55e;text-transform:uppercase;letter-spacing:1px;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px 40px}
.card{background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid rgba(34,197,94,.1);border-radius:14px;padding:24px;transition:.3s;text-decoration:none;color:inherit;display:block;position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#22c55e,#4ade80);opacity:0;transition:.3s}.card:hover::before{opacity:1}
.card:hover{border-color:rgba(34,197,94,.4);transform:translateY(-3px);box-shadow:0 12px 40px rgba(34,197,94,.12)}
.card h3{font-size:17px;color:#fff;margin-bottom:6px}.card p{color:#94a3b8;font-size:13px;line-height:1.5}
.tags{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.tag{padding:3px 10px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.tag.live{background:rgba(52,211,153,.12);color:#34d399}.tag.ext{background:rgba(251,191,36,.12);color:#fbbf24}.tag.int{background:rgba(14,165,233,.12);color:#38bdf8}
.footer{text-align:center;padding:24px 40px;color:#475569;font-size:12px;border-top:1px solid rgba(34,197,94,.08);margin-top:24px}
</style></head><body>
<!-- MEGA-NAV -->
<div style="background:rgba(99,102,241,.04);border-bottom:1px solid rgba(99,102,241,.1);padding:8px 40px;display:flex;gap:8px;flex-wrap:wrap;align-items:center">
<span style="color:#64748b;font-size:11px;font-weight:600;letter-spacing:1px">HUBS</span>
<a href="/wevia-hub.html" style="color:#10b981;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(16,185,129,.2);border-radius:12px">🧠 WEVIA</a>
<a href="/ai-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">🤖 AI</a>
<a href="/agents-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">👥 Agents</a>
<a href="/monitoring-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">📊 Monitor</a>
<a href="/email-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">📧 Email</a>
<a href="/office-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">📊 Office</a>
<a href="/ethica-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">👨‍⚕️ Ethica</a>
<a href="/wevads-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">📧 WEVADS</a>
<a href="/blade-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">⚡ Blade</a>
<a href="/security-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">🛡️ Sécu</a>
<a href="/gpu-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">⚡ GPU</a>
<a href="/keys-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">🔐 Keys</a>
<a href="/cloudflare-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">☁️ CF</a>
<a href="/google-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">🔍 Google</a>
<a href="/namecheap-hub.html" style="color:#818cf8;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(99,102,241,.2);border-radius:12px">🌐 NC</a>
<a href="/tools-hub.html" style="color:#f59e0b;text-decoration:none;font-size:12px;padding:3px 10px;border:1px solid rgba(245,158,11,.2);border-radius:12px;font-weight:700">⭐ ALL</a>
</div>
<div class="top"><h1>&#x1F4DF; <span>Monitoring</span> Hub</h1><p>Observabilite complete — Uptime Kuma, Prometheus, Grafana, Loki, Plausible, Langfuse</p>
<div class="nav"><a href="/admin.html">Admin</a><a href="/crons-monitor.html">Infra Monitor</a><a href="/l99-saas.html">L99 SaaS</a><a href="/wevia-master.html">Master</a></div></div>
<div class="stats">
<div class="stat"><div class="v">7</div><div class="l">Outils</div></div>
<div class="stat"><div class="v">16/16</div><div class="l">Services</div></div>
<div class="stat"><div class="v">50</div><div class="l">Crons</div></div>
<div class="stat"><div class="v">17</div><div class="l">Docker</div></div>
<div class="stat"><div class="v">83%</div><div class="l">Disk</div></div>
</div>
<h2>&#x1F4CA; Observabilite</h2>
<div class="grid">
<a class="card" href="https://monitor.weval-consulting.com" target="_blank"><h3>&#x1F49A; Uptime Kuma</h3><p>Surveillance uptime 9 subdomains + 16 services. Alertes Telegram instant</p><div class="tags"><span class="tag live">DOCKER</span></div></a>
<a class="card" href="https://analytics.weval-consulting.com" target="_blank"><h3>&#x1F4C8; Plausible Analytics</h3><p>Web analytics privacy-first. Trafic weval-consulting.com sans cookies</p><div class="tags"><span class="tag live">DOCKER</span></div></a>
<a class="card" href="https://langfuse.weval-consulting.com" target="_blank"><h3>&#x1F50D; Langfuse</h3><p>LLM observability — traces, latence, tokens, cout par provider</p><div class="tags"><span class="tag live">DOCKER</span></div></a>
<a class="card" href="/crons-monitor.html"><h3>&#x1F5A5; Infra Monitor</h3><p>enterprise-sync.php — 16 services, 50 crons, 17 Docker, ports scan</p><div class="tags"><span class="tag int">INTERNE</span></div></a>
</div>
<h2>&#x2699; Stack Prometheus</h2>
<div class="grid">
<div class="card"><h3>&#x1F4CA; Prometheus</h3><p>Time-series DB. Scrape metriques node_exporter toutes les 15s. Port 9090</p><div class="tags"><span class="tag live">DOCKER</span></div></div>
<div class="card"><h3>&#x1F4BB; Node Exporter</h3><p>CPU, RAM, disk, network, IO metriques systeme. Port 9100</p><div class="tags"><span class="tag live">DOCKER</span></div></div>
<div class="card"><h3>&#x1F4DD; Loki</h3><p>Log aggregation — centralise nginx, PHP-FPM, cron logs. Port 3100</p><div class="tags"><span class="tag live">DOCKER</span></div></div>
</div>
<h2>&#x1F9EA; Testing et QA</h2>
<div class="grid">
<a class="card" href="/l99-saas.html"><h3>&#x1F3AF; L99 SaaS</h3><p>957/957 PASS, 74 layers, Lean 6 Sigma + Theory of Constraints + Visual Regression</p><div class="tags"><span class="tag live">100%</span></div></a>
<a class="card" href="/api/l99-report.html"><h3>&#x1F4CB; L99 Report</h3><p>233/233 PASS, 0 FAIL, 0 WARN, 6.0 sigma. NonReg cron automatique</p><div class="tags"><span class="tag live">CRON</span></div></a>
<a class="card" href="/wevia-master.html"><h3>&#x1F916; Director</h3><p>Superviseur autonome — 0 issues, cron 15min, alerte Telegram si degradation</p><div class="tags"><span class="tag live">AUTONOME</span></div></a>
</div>
<div class="footer">WEVAL CONSULTING &middot; Monitoring Hub &middot; 7 outils &middot; Full observability stack &middot; 0 EUR</div>
<div style="padding:24px 40px">
<h2 style="font-size:20px;font-weight:700;color:#10b981;margin-bottom:16px">🔧 OUTILS INTERNES WEVAL</h2>
<div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px">
<a href="/command-center.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">📊 Command Center</div><div style="font-size:12px;color:#94a3b8">312 services monitorés en temps réel</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/l99-brain.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">🧪 L99 Brain</div><div style="font-size:12px;color:#94a3b8">Tests L99/NonReg/Playwright/Fullscan</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/ops-center.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">⚡ Ops Center</div><div style="font-size:12px;color:#94a3b8">Opérations infra, Docker, crons</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/kuma" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">🔍 Uptime Kuma</div><div style="font-size:12px;color:#94a3b8">Monitoring uptime 24/7</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/realtime-monitor-v3.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">📈 Realtime Monitor</div><div style="font-size:12px;color:#94a3b8">Métriques temps réel</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/cyber-monitor.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">🛡️ Cyber Monitor</div><div style="font-size:12px;color:#94a3b8">Alertes sécurité, intrusions</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
<a href="/nonreg.html" style="display:block;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:14px;text-decoration:none;transition:.2s"><div style="font-size:15px;font-weight:700;color:#10b981;margin-bottom:4px">📋 NonReg</div><div style="font-size:12px;color:#94a3b8">153/153 tests de non-régression</div><span style="display:inline-block;margin-top:6px;font-size:10px;padding:2px 8px;background:rgba(16,185,129,.15);color:#10b981;border-radius:6px">INTERNE</span></a>
</div>
</div>
<!-- CARTO_REMOVED -->
<!-- CARTO_BANNER_V1 -->
<div style="position:fixed;bottom:20px;right:20px;z-index:9999;background:linear-gradient(135deg,#141931,#2d1b5e);border:1px solid #64ffda;border-radius:12px;padding:12px 18px;box-shadow:0 4px 20px rgba(100,255,218,.3);font-family:-apple-system,Segoe UI,sans-serif;font-size:13px">
<a href="/cartographie-screens.html" style="color:#64ffda;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:8px" title="Cartographie exhaustive de tous les ecrans live">
<span style="font-size:18px">&#128506;</span> Cartographie live
<span id="carto-banner-count" style="color:#8892b0;font-size:11px">3914 ecrans</span>
</a>
</div>
<script>
(function(){
fetch('/api/screens-health.php?_='+Date.now(),{cache:'no-store'}).then(r=>r.json()).then(d=>{
const c=d.counts||{}; const up=c.UP||0; const slow=c.SLOW||0; const br=c.BROKEN||0;
const el=document.getElementById('carto-banner-count');
if(el) el.innerHTML=`<span style="color:#22c55e">${up} UP</span> / <span style="color:#f59e0b">${slow} Lent</span> / <span style="color:#ef4444">${br} 5xx</span>`;
}).catch(()=>{});
})();
</script>
<!-- /CARTO_BANNER_V1 -->
</body></html>