你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于故障排除的网络结构只读命令
对网络设备进行故障排除是高效管理网络的关键方面。 确保基础结构的运行状况和最佳性能需要及时诊断和解决问题。 本指南提供了使用只读 (RO) 命令对 Azure 运营商关系设备进行故障排除的综合性方法。
了解只读命令
RO 命令充当网络管理员的基本工具。 与修改设备配置的读写(RW) 命令不同,RO 命令允许管理员在不更改设备状态的情况下收集诊断信息。 这些命令提供有关设备状态、配置和操作数据的宝贵见解。
只读诊断 API
只读诊断 API 使用户能够通过 API 调用在网络设备上执行 show
命令。 通过这种高效的方法,管理员可以跨所有网络结构设备远程运行诊断查询。 只读诊断 API 的主要功能包括:
效率 - 在不直接访问设备控制台的情况下执行
show
命令。与 AZCLI 的无缝集成:用户可以利用常规的 Azure 命令行接口 (AZCLI) 传递所需的“show 命令”。之后,API 促进命令在目标设备上的执行,从而提取输出。
JSON 输出:已执行命令的结果以 JSON 格式显示,因而便于解析和分析。
安全存储:输出数据存储在客户拥有的存储帐户中,从而确保数据的安全性和合规性。
通过使用只读诊断 API,网络管理员可以在其 Azure 运营商关系设备上高效地排查问题、验证配置和监视设备运行状况。
先决条件
若要使用 Network Fabric 只读命令,请完成以下步骤:
成功预配 Nexus Network Fabric。
生成存储 URL。
请参阅创建容器来创建容器。
注意
仅使用小写字母输入容器的名称。
请参阅生成共享访问签名以创建容器的 SAS URL。 为 SAS 提供写入权限。
注意
SAS URL 的有效期较短。 默认情况下,它设置为在 8 小时后过期。 如果 SAS URL 过期,则必须重新修补结构。
通过支持工单提供具有写入访问权限的存储 URL。
注意
存储 URL 必须位于与 Network Fabric 不同的区域。 例如,如果 Fabric 托管在美国东部,则存储 URL 应位于美国东部之外。
命令限制
为了确保安全性和合规性,RO 命令必须遵循以下特定规则:
- 仅应提供绝对命令作为输入。 不支持简短形式和提示。 例如:
- 输入
show interfaces Ethernet 1/1 status
- 不要输入
sh int stat
或sh int e1/1 status
- 输入
- 名称不得为 null 或空,也不得只包含单个词。
- 命令不得包含竖线 (|) 字符。
- Show 命令不受限制,但此限制列表中特别提到的 CPU 使用率过高的密集型命令除外。
- 命令不得以
tech-support
、agent logs
、ip route
或ip route vrf all
结尾。 - 在特定设备上一次只能使用一个
show
命令。 - 可以在另一个 CLI 窗口中并行运行
show
命令。 - 可以同时在不同的设备上运行
show
命令。
使用只读命令进行故障排除
若要使用只读命令进行故障排除,请执行以下步骤:
开具 Microsoft 支持工单。 支持工程师进行必要的更新。
执行以下 Azure CLI 命令:
az networkfabric device run-ro --resource-name "<NFResourceName>" --resource-group "<NFResourceGroupName>" --ro-command "show version"
预期输出:
{ }
输入以下命令:
az networkfabric device run-ro --resource-group Fab3LabNF-6-0-A --resource-name nffab3-6-0-A-AggrRack-CE1 --ro-command "show version" --no-wait --debug
显示以下(截断的)输出。 通过个人预览版复制 URL。 在以下步骤中使用 URL 的此部分来检查操作的状态。
https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.ManagedNetworkFabric/locations/EASTUS2EUAP/operationStatuses/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e*A9E6DB3DF5C58D67BD395F7A608C056BC8219C392CC1CE0AD22E4C36D70CEE5C?api-version=2022-01-15-privatepreview***&t=638485032018035520&c=MIIHHjCCBgagAwIBAgITfwKWMg6goKCq4WwU2AAEApYyDjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwMTMwMTAzMDI3WhcNMjUwMTI0MTAzMDI3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMk1pBZQQoNY8tos8XBaEjHjcdWubRHrQk5CqKcX3tpFfukMI0_PVZK-Kr7xkZFQTYp_ItaM2RPRDXx-0W9-mmrUBKvdcQ0rdjcSXDek7GvWS29F5sDHojD1v3e9k2jJa4cVSWwdIguvXmdUa57t1EHxqtDzTL4WmjXitzY8QOIHLMRLyXUNg3Gqfxch40cmQeBoN4rVMlP31LizDfdwRyT1qghK7vgvworA3D9rE00aM0n7TcBH9I0mu-96JE0gSX1FWXctlEcmdwQmXj_U0sZCu11_Yr6Oa34bmUQHGc3hDvO226L1Au-QsLuRWFLbKJ-0wmSV5b3CbU1kweD5LUCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-
使用以下 Azure CLI 命令以编程方式检查操作的状态:
az rest -m get -u "<Azure-AsyncOperation-endpoint url>"
操作状态指示 API 是成功还是失败,显示内容类似于以下输出:
https://management.azure.com/subscriptions/xxxxxxxxxxx/providers/Microsoft.ManagedNetworkFabric/locations/EASTUS/operationStatuses/xxxxxxxxxxx?api-version=20XX-0X-xx-xx
查看并下载生成的输出文件。 下面显示了示例输出。
{ "architecture": "x86_64", "bootupTimestamp": 1701940797.5429916, "configMacAddress": "00:00:00:00:00:00", "hardwareRevision": "12.05", "hwMacAddress": "c4:ca:2b:62:6d:d3", "imageFormatVersion": "3.0", "imageOptimization": "Default", "internalBuildId": "d009619b-XXXX-XXXX-XXXX-fcccff30ae3b", "internalVersion": "4.30.3M-33434233.4303M", "isIntlVersion": false, "memFree": 3744220, "memTotal": 8107980, "mfgName": "Arista", "modelName": "DCS-7280DR3-24-F", "serialNumber": "JPAXXXX1LZ", "systemMacAddress": "c4:ca:2b:62:6d:d3", "uptime": 8475685.5, "version": "4.30.3M" }