Arista EOS Device Health Check
Structured triage procedure for assessing Arista EOS device health. Produces a
prioritized findings report with severity classifications and recommended actions.
EOS runs on a Linux kernel with individual processes (agents) managing each
protocol and subsystem. This architecture means Linux-native tools (bash top,
bash df, bash dmesg) are valid supplements to EOS show commands. Agent
health is a first-class concern — a crashed or stuck agent can silently affect
a subsystem even when aggregate device metrics look normal.
The procedure covers core device health first, then extends to MLAG and
VXLAN/EVPN for data center deployments.
When to Use
- - Device reported as slow, dropping traffic, or unresponsive
- Scheduled health audit of Arista switches (leaf, spine, or border)
- Post-change verification after upgrades, patches, or configuration changes
- Capacity planning data collection for CPU, memory, and link utilization
- Incident response when an Arista switch is suspected as the fault domain
- MLAG inconsistency or split-brain detection in a data center pair
- VXLAN/EVPN overlay health assessment — VTEP reachability, BGP EVPN peering
- Agent crash or restart detected in syslog
Prerequisites
- - SSH or console access to the device (privilege 1 minimum)
- EOS 4.28 or later (commands validated against EOS 4.30+)
- Network reachability to management interface confirmed
- Awareness of the device's normal baseline (CPU, memory, traffic patterns)
- For MLAG configurations: access to both MLAG peers for cross-validation
- For VXLAN/EVPN: knowledge of expected VTEP count and BGP EVPN peer list
Procedure
Follow this sequence. Core device health (Steps 1–5) applies to all deployments.
Steps 6–7 are data center extensions for MLAG and VXLAN/EVPN — skip if not
configured on this device.
Step 1: Establish Baseline Context
CODEBLOCK0
Record: hostname, EOS version, uptime, hardware model, total memory, current time.
Short uptime indicates a recent reload or crash — check show reload cause for
the trigger. Note the hardware platform — Arista's 7050X, 7280R, 7500R, and
720X series have different memory and CPU profiles.
Step 2: CPU and Memory Assessment
EOS reports CPU and memory through both EOS commands and Linux-native tools.
CODEBLOCK1
Linux-native alternative (provides more granularity):
CODEBLOCK2
INLINECODE4 shows per-process CPU and memory similar to Linux top.
EOS CPU is typically consumed by agents — each protocol has its own process.
Key agents to watch:
- - Stp — Spanning Tree: high CPU indicates topology instability
- Rib — Routing Information Base: route churn or large table operations
- Ebra — EOS Bridge Agent: L2 forwarding, MAC learning storms
- IpRib — IP RIB agent: routing table processing
- Bgp — BGP agent: peer negotiations, route processing
- Fap-sobek / Sand — ASIC agents: forwarding plane, hardware programming
EOS memory: show version includes total and free memory. Free memory below
20% of total is warning. Linux free -m provides buffer/cache detail — EOS
uses Linux page cache aggressively, so "used" memory includes reclaimable cache.
Step 3: Agent and Daemon Health
EOS runs each subsystem as an independent agent. A crashed or stuck agent
affects its subsystem silently — device-level metrics may look normal while
one protocol is completely inoperative.
CODEBLOCK3
INLINECODE8 lists all EOS agents with their PID, state, and uptime.
Healthy state: all agents show running with uptimes matching device uptime.
Red flags:
- - Agent with shorter uptime than device → it crashed and restarted
- Agent in
crashed or not running state → subsystem is down - Multiple agent restarts in logs → recurring instability
If an agent shows recent restart, check its logs: show agent [name] logs.
Common restart causes: memory exhaustion, uncaught exception, watchdog timeout.
Step 4: Interface Health
CODEBLOCK4
For interfaces with errors:
CODEBLOCK5
Error classification:
- - CRC / FCS errors → Layer 1 (cabling, optics, SFP seating)
- Input errors without CRC → buffer overruns, MTU mismatch
- Alignment errors → duplex mismatch or L1 issue
- Output discards → egress congestion; check QoS or link capacity
- Late collisions → duplex mismatch (should not occur on modern links)
Optics DOM: show interfaces transceiver provides Tx/Rx power, temperature,
voltage. Low Rx power (below -10 dBm for most 10G SFP+) indicates fiber or
optic degradation.
Step 5: Environment and Platform
CODEBLOCK6
Check: all temperature sensors within limits, all power supplies OK, all
fans operational. show environment all is a comprehensive single command.
INLINECODE15 — if the device recently reloaded, this explains why.
Expected causes: user-initiated, software upgrade. Unexpected causes:
kernel panic, watchdog timeout, power loss.
Review syslog for tracebacks, panics, or agent crashes. EOS logs are also
accessible via bash cat /var/log/messages | tail 50.
Step 6: MLAG Health (Data Center Extension)
Skip this step if MLAG is not configured. MLAG state is often the single most
important health indicator in an Arista data center deployment — a degraded
MLAG pair can cause traffic black-holes or asymmetric forwarding.
CODEBLOCK7
MLAG state assessment:
| Field | Healthy Value | Problem Indicator |
|---|
| state | active | disabled, inactive |
| negotiation status |
connected | connecting, disconnected |
| peer-link status | up | down, errdisabled |
| local-interface status | up | down |
| config-sanity | consistent | inconsistent |
INLINECODE17 provides:
- - Peer address and peer-link interface status
- Heartbeat interval and status — lost heartbeats indicate control plane
reachability issues between peers
- - Reload delay timers — critical for preventing traffic loss during boot
INLINECODE18 checks for configuration mismatches between peers.
Inconsistencies can cause traffic loops or black-holes. Address any inconsistent
result before continuing other triage.
INLINECODE20 — verify all MLAG interfaces show active-full on both
sides. active-partial means one side is down — reduced redundancy.
disabled means the MLAG interface is administratively or operationally down.
Step 7: VXLAN/EVPN Health (Data Center Extension)
Skip this step if VXLAN/EVPN is not configured. This assesses overlay fabric
health for VXLAN deployments using BGP EVPN as the control plane.
CODEBLOCK8
VXLAN health checks:
- -
show vxlan vtep — verify expected VTEP count. Missing VTEPs indicate
underlay reachability or BGP EVPN peering issues.
- -
show interfaces vxlan 1 — VTEP source interface must be up. Flood list
should match expected remote VTEPs (for flood-and-learn) or be empty
(for BGP EVPN with ingress replication).
- -
show vxlan address-table — MAC learning across the overlay. Stale or
missing entries indicate control plane issues.
BGP EVPN peering:
- -
show bgp evpn summary — all EVPN peers must be in Established state.
Peers in Active/Connect state have transport or configuration issues.
- - Compare EVPN route count to baseline — significant deviation indicates
route withdrawal or redistribution problems.
For L3 VXLAN (symmetric IRB):
CODEBLOCK9
Verify: VRF route counts match expectations, no unexpected route withdrawals,
EVPN type-5 routes present for inter-VRF routing.
Threshold Tables
Reference: references/threshold-tables.md for detailed per-parameter thresholds.
| Parameter | Normal | Warning | Critical | Notes |
|---|
| CPU 5-min avg | < 40% | 40–70% | > 70% | Per-agent breakdown in INLINECODE29 |
| Memory free |
> 30% | 20–30% | < 20% | Linux page cache is reclaimable |
| Agent state | All running | Agent restarted | Agent crashed/not running | Check
show agent |
| Interface error rate | < 0.01% | 0.01–0.1% | > 0.1% | |
| Output discards/hr | < 100 | 100–1000 | > 1000 | |
| MLAG state | active/connected | config inconsistency | peer-link down | |
| VXLAN VTEP count | Matches expected | Missing VTEPs | Vxlan1 interface down | |
| Temperature | Within spec | 5°C of max | At/above max | Per-sensor |
Decision Trees
Primary Triage
CODEBLOCK10
MLAG State Triage
CODEBLOCK11
Escalation Criteria
Escalate to senior engineer or Arista TAC when:
- - CPU sustained > 90% for 15+ minutes with no identifiable cause
- Memory below 15% free with no recent change to explain consumption
- Agent in crashed state that does not recover after restart
- Multiple agents crashing or restarting within a short period
- Traceback or kernel panic in logs (
show logging, bash dmesg) - Any environmental alarm (power, fan, temperature)
- More than 3 routing neighbor state changes in the last hour
- MLAG peer-link failure with no clear physical cause
- MLAG config-sanity inconsistencies that cannot be resolved
- VXLAN overlay losing more than 10% of expected VTEPs
Report Template
CODEBLOCK12
Troubleshooting
Device Unresponsive to SSH
Try console access. If console is also unresponsive, check power and environment
via out-of-band management. After recovery: show reload cause for the trigger,
bash dmesg | tail 50 for kernel messages, show logging last 50 for pre-crash
syslog. EOS stores crash data in /var/log/ — accessible via bash ls -la /var/log/.
Agent Crash and Recovery
If show agent shows an agent as crashed or with uptime shorter than the device:
- 1. Check agent logs: INLINECODE40
- Check syslog: INLINECODE41
- Linux-level: INLINECODE42
- If the agent is not running, attempt:
agent [name] shutdown then
no agent [name] shutdown in configuration mode (note: this is a config change)
Agent crashes are the most common EOS-specific failure mode. Collect logs before
restarting — the crash data is needed for TAC investigation.
CPU Spikes During Health Check
EOS show commands can briefly spike CPU on the management plane. Wait 30 seconds
after connecting before collecting CPU data. Use show processes top once rather
than interactive top (which holds a session) for scripted checks.
MLAG Split-Brain Detection
If both peers report MLAG state active but negotiation shows disconnected,
this is a split-brain condition. Both peers believe they are the primary. Causes:
peer-link physical failure, peer-link VLAN issue, or heartbeat network partition.
Immediate action: verify physical peer-link connectivity. If peer-link is
physically up but MLAG reports disconnected, check VLAN trunking on the
peer-link and the heartbeat network (usually the management VRF).
Linux-Native Diagnostics
EOS's Linux foundation means standard Linux tools work from bash:
- -
bash top -bn1 — process-level CPU and memory (more granular than EOS top) - INLINECODE52 — memory with buffer/cache detail
- INLINECODE53 — filesystem usage (important for /mnt/flash and /var/log)
- INLINECODE54 — kernel messages (hardware errors, driver issues)
- INLINECODE55 — load averages
- INLINECODE56 — detailed memory breakdown
These supplement EOS show commands when deeper investigation is needed.
Prefix all commands with bash from the EOS CLI, or enter bash for a shell.
Inconsistent Memory Readings
EOS's Linux page cache uses available memory for file caching. show version
may report low free memory while actual memory pressure is low. Use
bash free -m and check the available column (not free) for the real
available memory. The available column accounts for reclaimable cache and
buffers.
Arista EOS 设备健康检查
用于评估 Arista EOS 设备健康的结构化分类流程。生成带有严重性分类和推荐操作的优先级发现报告。
EOS 运行在 Linux 内核上,每个协议和子系统由独立的进程(代理)管理。这种架构意味着 Linux 原生工具(bash top、bash df、bash dmesg)是 EOS show 命令的有效补充。代理健康是一级关注事项——即使设备整体指标看起来正常,崩溃或卡死的代理也可能静默影响子系统。
该流程首先覆盖核心设备健康,然后扩展到数据中心部署的 MLAG 和 VXLAN/EVPN。
使用时机
- - 设备报告为缓慢、丢包或无响应
- Arista 交换机(叶、脊或边界)的定期健康审计
- 升级、补丁或配置变更后的变更验证
- CPU、内存和链路利用率的容量规划数据收集
- 怀疑 Arista 交换机为故障域的事件响应
- 数据中心对中的 MLAG 不一致或脑裂检测
- VXLAN/EVPN 覆盖网络健康评估——VTEP 可达性、BGP EVPN 对等
- 系统日志中检测到代理崩溃或重启
前提条件
- - 设备的 SSH 或控制台访问(最低权限 1)
- EOS 4.28 或更高版本(命令已在 EOS 4.30+ 上验证)
- 确认管理接口的网络可达性
- 了解设备的正常基线(CPU、内存、流量模式)
- 对于 MLAG 配置:访问两个 MLAG 对等体以进行交叉验证
- 对于 VXLAN/EVPN:了解预期的 VTEP 数量和 BGP EVPN 对等体列表
流程
按此顺序执行。核心设备健康(步骤 1-5)适用于所有部署。步骤 6-7 是用于 MLAG 和 VXLAN/EVPN 的数据中心扩展——如果此设备上未配置,则跳过。
步骤 1:建立基线上下文
show version
show uptime
show clock
show inventory
记录:主机名、EOS 版本、运行时间、硬件型号、总内存、当前时间。运行时间短表示最近重新加载或崩溃——检查 show reload cause 以了解触发原因。注意硬件平台——Arista 的 7050X、7280R、7500R 和 720X 系列具有不同的内存和 CPU 配置文件。
步骤 2:CPU 和内存评估
EOS 通过 EOS 命令和 Linux 原生工具报告 CPU 和内存。
show processes top once
show version | include Free memory
Linux 原生替代方案(提供更细粒度):
bash timeout 5 top -bn1 | head 20
bash free -m
show processes top once 显示每个进程的 CPU 和内存,类似于 Linux top。EOS CPU 通常由代理消耗——每个协议都有自己的进程。
需要关注的代理:
- - Stp — 生成树:高 CPU 表示拓扑不稳定
- Rib — 路由信息库:路由抖动或大型表操作
- Ebra — EOS 桥接代理:L2 转发、MAC 学习风暴
- IpRib — IP RIB 代理:路由表处理
- Bgp — BGP 代理:对等协商、路由处理
- Fap-sobek / Sand — ASIC 代理:转发平面、硬件编程
EOS 内存:show version 包含总内存和空闲内存。空闲内存低于总内存的 20% 是警告。Linux free -m 提供缓冲区/缓存详细信息——EOS 积极使用 Linux 页面缓存,因此已用内存包括可回收的缓存。
步骤 3:代理和守护进程健康
EOS 将每个子系统作为独立代理运行。崩溃或卡死的代理会静默影响其子系统——设备级指标可能看起来正常,而一个协议完全无法工作。
show agent
show agent [name] logs | tail 20
show logging last 50 | include AGENT|agent|crash|restart
show agent 列出所有 EOS 代理及其 PID、状态和运行时间。
健康状态:所有代理显示 running,运行时间与设备运行时间匹配。
红旗:
- - 代理运行时间短于设备运行时间 → 它已崩溃并重新启动
- 代理处于 crashed 或 not running 状态 → 子系统已关闭
- 日志中出现多次代理重启 → 反复不稳定
如果代理显示最近重启,检查其日志:show agent [name] logs。常见重启原因:内存耗尽、未捕获异常、看门狗超时。
步骤 4:接口健康
show interfaces status
show interfaces counters errors
show interfaces counters discards
对于有错误的接口:
show interfaces [name]
show interfaces [name] transceiver
错误分类:
- - CRC / FCS 错误 → 第 1 层(布线、光模块、SFP 安装)
- 无 CRC 的输入错误 → 缓冲区溢出、MTU 不匹配
- 对齐错误 → 双工不匹配或 L1 问题
- 输出丢弃 → 出口拥塞;检查 QoS 或链路容量
- 晚期冲突 → 双工不匹配(不应发生在现代链路上)
光模块 DOM:show interfaces transceiver 提供 Tx/Rx 功率、温度、电压。低 Rx 功率(大多数 10G SFP+ 低于 -10 dBm)表示光纤或光模块退化。
步骤 5:环境和平台
show environment all
show environment cooling
show environment power
show environment temperature
show reload cause
show logging last 30 | include ERR|WARN|traceback|panic
检查:所有温度传感器在限制范围内,所有电源正常,所有风扇运行。show environment all 是一个全面的单一命令。
show reload cause — 如果设备最近重新加载,这解释了原因。预期原因:用户发起、软件升级。意外原因:内核恐慌、看门狗超时、断电。
审查系统日志中的回溯、恐慌或代理崩溃。EOS 日志也可通过 bash cat /var/log/messages | tail 50 访问。
步骤 6:MLAG 健康(数据中心扩展)
如果未配置 MLAG,则跳过此步骤。MLAG 状态通常是 Arista 数据中心部署中最重要的健康指标——退化的 MLAG 对可能导致流量黑洞或非对称转发。
show mlag
show mlag detail
show mlag interfaces
show mlag config-sanity
MLAG 状态评估:
| 字段 | 健康值 | 问题指标 |
|---|
| 状态 | active | disabled, inactive |
| 协商状态 |
connected | connecting, disconnected |
| 对等链路状态 | up | down, errdisabled |
| 本地接口状态 | up | down |
| 配置一致性 | consistent | inconsistent |
show mlag detail 提供:
- - 对等地址 和 对等链路 接口状态
- 心跳 间隔和状态——丢失心跳表示对等体之间的控制平面可达性问题
- 重新加载延迟 定时器——对于防止启动期间的流量丢失至关重要
show mlag config-sanity 检查对等体之间的配置不匹配。不一致可能导致流量环路或黑洞。在继续其他分类之前,解决任何 inconsistent 结果。
show mlag interfaces — 验证所有 MLAG 接口在两侧都显示 active-full。active-partial 表示一侧关闭——冗余减少。disabled 表示 MLAG 接口在管理上或操作上关闭。
步骤 7:VXLAN/EVPN 健康(数据中心扩展)
如果未配置 VXLAN/EVPN,则跳过此步骤。这评估使用 BGP EVPN 作为控制平面的 VXLAN 部署的覆盖网络健康。
show vxlan vtep
show vxlan address-table
show interfaces vxlan 1
show bgp evpn summary
VXLAN 健康检查:
- - show vxlan vtep — 验证预期的 VTEP 数量。缺少 VTEP 表示底层可达性或 BGP EVPN 对等问题。
- show interfaces vxlan 1 — VTEP 源接口必须处于 up 状态。泛洪列表应与预期的远程 VTEP 匹配(对于泛洪学习)或为空(对于具有入口复制的 BGP EVPN)。
- show vxlan address-table — 跨覆盖网络的 MAC 学习。过期或缺失的条目表示控制平面问题。
BGP EVPN 对等:
- - show bgp evpn summary — 所有 EVPN 对等体必须处于 Established 状态。处于 Active/Connect 状态的对等体存在传输或配置问题。
- 将 EVPN 路由计数与基线比较——显著偏差表示路由撤销或重新分发问题。
对于 L3 VXLAN(对称 IRB)