fix(ui): Standby-Node zeigt keinen "alle Backends down"-Fehlalarm mehr — v1.3.8
Der Dashboard-Down-Backends-Alarm liest die LIVE-HAProxy-Stats des lokalen
Nodes. Auf dem keepalived-BACKUP-Node erreicht die lokale HAProxy die Backend-
Subnetze nicht (VLAN-Gateway-VIPs liegen beim Master) → alle Backends L4-down.
v1.3.7 stoppte nur den alert_events-Spam (scheduler), nicht die Anzeige.
Jetzt: ist der Node BACKUP (vip_status.vrrp_state), wird der rote "N Backends
down"-Alarm durch einen ruhigen Info-Hinweis ersetzt ("Standby-Node — Backend-
Health lokal nicht aussagekräftig, Master bedient den Traffic"). Auf MASTER/
UNKNOWN bleibt der echte Alarm.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -303,6 +303,13 @@ export default function DashboardPage() {
|
||||
return down
|
||||
})()
|
||||
|
||||
// Auf dem keepalived-BACKUP-Node erreicht die lokale HAProxy die Backend-
|
||||
// Subnetze nicht (die VLAN-Gateway-VIPs liegen beim Master) → sie sieht
|
||||
// ALLE Backends als down. Das ist strukturell erwartet, kein Ausfall:
|
||||
// der Master bedient den Traffic. Deshalb den roten Down-Alarm auf dem
|
||||
// Standby durch einen ruhigen Hinweis ersetzen.
|
||||
const isBackup = vipStatus.data?.vrrp_state === 'BACKUP'
|
||||
|
||||
const alerts = recentAlerts.data ?? []
|
||||
const nCritical = alerts.filter(e => e.severity === 'critical' || e.severity === 'error').length
|
||||
const nWarning = alerts.filter(e => e.severity === 'warning').length
|
||||
@@ -366,13 +373,20 @@ export default function DashboardPage() {
|
||||
)}
|
||||
|
||||
{/* ─ Operational alerts ─────────────────────────────── */}
|
||||
{downBackends.length > 0 && (
|
||||
{downBackends.length > 0 && !isBackup && (
|
||||
<Alert
|
||||
type="error" showIcon className="mb-12"
|
||||
message={t('dashboard.downBackendsAlert', { count: downBackends.length })}
|
||||
description={<Space wrap size={4}>{downBackends.map(n => <Link key={n} to="/backends">{n}</Link>)}</Space>}
|
||||
/>
|
||||
)}
|
||||
{downBackends.length > 0 && isBackup && (
|
||||
<Alert
|
||||
type="info" showIcon className="mb-12"
|
||||
message={t('dashboard.backupNodeBackends')}
|
||||
description={t('dashboard.backupNodeBackendsDesc')}
|
||||
/>
|
||||
)}
|
||||
{maintenanceDomains.length > 0 && (
|
||||
<Alert
|
||||
type="warning" showIcon className="mb-12"
|
||||
|
||||
Reference in New Issue
Block a user