管理 NetQ 代理
运行以下命令以查看代理的状态、禁用代理、管理日志记录以及配置代理收集的事件。
查看 NetQ 代理状态
NetQ 代理状态命令的语法是
netq [<hostname>] show agents
[fresh | dead | rotten | opta]
[around <text-time>]
[json]
您可以查看给定交换机、主机或 NetQ 设备或虚拟机的状态。您还可以按状态进行筛选,并查看过去某个时间点的状态。
要查看所有 NetQ 代理的当前状态,请运行
cumulus@switch~:$ netq show agents
要查看未通信的 NetQ 代理,请运行
cumulus@switch~:$ netq show agents rotten
No matching agents records found
要在 NetQ 设备或 VM 上查看 NetQ 代理状态,请运行
cumulus@switch~:$ netq show agents opta
Matching agents records:
Hostname Status NTP Sync Version Sys Uptime Agent Uptime Reinitialize Time Last Changed
----------------- ---------------- -------- ------------------------------------ ------------------------- ------------------------- -------------------------- -------------------------
netq-appliance Fresh yes 4.12.0-ub20.04u49~1728015156.144ca36 Tue Oct 8 12:06:08 2024 Tue Nov 12 17:03:14 2024 Tue Nov 12 17:04:09 2024 Tue Dec 3 15:43:47 2024
查看 NetQ 代理配置
您可以查看 NetQ 代理的当前配置,以确定它收集哪些数据以及将数据发送到哪里。此命令的语法是
sudo netq config show agent
[cpu-limit|frr-monitor|loglevel|ssl|stats|wjh|wjh-threshold]
[json]
以下示例显示了本地部署中的 NetQ 代理,它使用默认端口和 VRF 与 127.0.0.1 上的设备或 VM 通信。
cumulus@switch:~$ sudo netq config show agent
netq-agent value default
------------------------ --------- ---------
exhibitport
exhibiturl
server 127.0.0.1 127.0.0.1
cpu-limit 100 100
agenturl
wjh Enabled Enabled
enable-opta-discovery False False
agentport 8981 8981
port 31980 31980
vrf default default
is-gnmi-enabled False False
netq_stream_port 7680 7680
netq_stream_address 127.0.0.1 127.0.0.1
is-ssl-enabled False False
ssl-cert
generate-unique-hostname False False
agent-hostname cumulus cumulus
()
要查看 NetQ 代理特定方面的配置,请使用各种选项。
此示例显示配置了 CPU 限制为 60% 的 NetQ 代理。
cumulus@switch:~$ sudo netq config show agent cpu-limit
CPU Quota
-----------
60%
()
修改节点上 NetQ 代理的配置
代理配置命令允许您
- 添加、禁用和删除 NetQ 代理
- 启动和停止 NetQ 代理
- 配置 NetQ 代理以收集选定的数据(CPU 使用率限制、FRR、WJH)
- 配置 NetQ 代理以将数据发送到服务器集群
- 排除 NetQ 代理故障
命令一次应用于一个代理,您需要在 NetQ 代理所在的交换机或主机上运行它们。
添加或删除 NetQ 代理
要添加或删除 NetQ 代理,您必须从 NetQ 配置文件 `/etc/netq/netq.yml` 中添加或删除 IP 地址(以及端口和 VRF,如果指定)。这会添加或删除有关代理向其发送收集的数据的服务器的信息。
要使用 NetQ CLI 在交换机或主机上添加或删除 NetQ 代理,请运行
sudo netq config add agent server <text-opta-ip> [port <text-opta-port>] [vrf <text-vrf-name>] [inband-interface <interface-name>]
如果您想在服务器上使用特定端口,请使用 `port` 选项。如果您想通过特定的虚拟路由接口发送数据,请使用 `vrf` 选项。
此示例显示了如何添加 NetQ 代理,并告知它使用默认端口(本地部署为端口 31980,云部署为端口 443)和默认 VRF (mgmt) 将其收集的数据发送到 IPv4 地址为 10.0.0.23 的 NetQ 服务器。未指定端口和 VRF,因此 NetQ 假定为默认设置。
cumulus@switch~:$ sudo netq config add agent server 10.0.0.23
cumulus@switch~:$ sudo netq config restart agent
此示例显示了如何添加 NetQ 代理,并告知它使用默认端口(本地部署为端口 31980,云部署为端口 443)和 `default` VRF 将其收集的数据发送到 IPv4 地址为 10.0.0.23 的 NetQ 服务器,该 VRF 用于通过接口 `swp1` 上的带内连接管理的交换机
cumulus@switch~:$ sudo netq config add agent server 10.0.0.23 vrf default inband-interface swp1
cumulus@switch~:$ sudo netq config restart agent
要在交换机或主机上删除 NetQ 代理,请运行
sudo netq config del agent server
禁用和重新启用 NetQ 代理
您可以临时禁用节点上的 NetQ 代理。禁用 NetQ 代理会保留 NetQ 数据库中已收集的数据,但会阻止 NetQ 代理收集新数据,直到您重新启用它。
要禁用 NetQ 代理,请运行
cumulus@switch:~$ sudo netq config stop agent
要重新启用 NetQ 代理,请运行
cumulus@switch:~$ sudo netq config restart agent
配置 NetQ 代理以限制交换机 CPU 使用率
您可以限制 NetQ 代理仅使用交换机上 CPU 资源的特定百分比。此设置需要运行 Cumulus Linux 3.7、4.1 或更高版本的交换机。
有关此功能的更多详细信息,请参阅此知识库文章。
此示例限制 NetQ 代理在 Cumulus Linux 交换机上消耗超过 40% 的 CPU 资源。
cumulus@switch:~$ sudo netq config add agent cpu-limit 40
cumulus@switch:~$ sudo netq config restart agent
要删除限制,请运行
cumulus@switch:~$ sudo netq config del agent cpu-limit
cumulus@switch:~$ sudo netq config restart agent
配置 NetQ 代理以从选定服务收集数据
您可以启用和禁用有关 FRRouting (FRR) 和刚刚发生的事情 (WJH) 的数据收集。
要配置代理启动或停止收集 FRR 数据,请运行
cumulus@chassis~:$ sudo netq config add agent frr-monitor
cumulus@switch:~$ sudo netq config restart agent
cumulus@chassis~:$ sudo netq config del agent frr-monitor
cumulus@switch:~$ sudo netq config restart agent
要配置代理启动或停止收集 WJH 数据,请运行
cumulus@chassis~:$ sudo netq config add agent wjh
cumulus@switch:~$ sudo netq config restart agent
cumulus@chassis~:$ sudo netq config del agent wjh
cumulus@switch:~$ sudo netq config restart agent
配置 NetQ 代理以将数据发送到服务器集群
如果您有高可用性服务器集群配置,则应配置 HA 服务器以在服务器之间分配 NetQ 代理收集的数据。
要配置代理将数据发送到集群中的服务器,请运行
sudo netq config add agent cluster-servers <text-opta-ip-list> [port <text-opta-port>] [vrf <text-vrf-name>]
您必须用逗号(而不是空格)分隔 IP 地址列表。您可以选择性地指定端口或 VRF。
此示例配置交换机上的 NetQ 代理以使用 rocket VRF 将数据发送到位于 10.0.0.21、10.0.0.22 和 10.0.0.23 的三台服务器。
cumulus@switch:~$ sudo netq config add agent cluster-servers 10.0.0.21,10.0.0.22,10.0.0.23 vrf rocket
要停止 NetQ 代理向服务器集群发送数据,请运行
cumulus@switch:~$ sudo netq config del agent cluster-servers
配置日志记录以排除 NetQ 代理故障
用于 NetQ 代理的日志记录级别确定了在交换机或主机上记录有关 NetQ 代理的哪些类型的事件。
首先,您需要决定要配置的日志记录级别。您可以将日志记录级别配置为对每个 NetQ 代理都相同,或者有选择地增加或减少有问题的节点上的 NetQ 代理的日志记录级别。
日志记录级别 | 描述 |
---|---|
调试 | 发送所有调试、信息、警告和错误消息的通知。 |
信息 | 发送信息、警告和错误消息的通知(默认)。 |
警告 | 发送警告和错误消息的通知。 |
错误 | 发送错误消息的通知。 |
您可以直接查看 NetQ 代理日志。消息具有以下结构
<时间戳> <节点> <服务>[PID]: <级别>: <消息>
元素 | 描述 |
---|---|
时间戳 | 事件发生的日期和时间,UTC 格式 |
节点 | 事件发生的网络节点的主机名 |
服务 [PID] | 生成事件的服务和进程标识符 |
级别 | 为给定事件分配的日志记录级别:debug、error、info 或 warning |
消息 | 事件的文本描述,包括事件发生的节点 |
例如

要配置日志记录级别,请按照以下步骤操作。此示例将日志记录级别设置为 debug
设置日志记录级别
cumulus@switch:~$ sudo netq config add agent loglevel debug
重启 NetQ 代理
cumulus@switch:~$ sudo netq config restart agent
(可选)通过查看 `netq-agent.log` 消息来验证与 NetQ 设备或 VM 的连接。
禁用代理日志记录
如果您将日志记录级别设置为 debug 以进行故障排除,NVIDIA 建议您在完成故障排除后将日志记录级别更改为不太详细的模式或禁用代理日志记录。
要将日志记录级别从 debug 更改为另一个级别,请运行
cumulus@switch:~$ sudo netq config add agent loglevel [info|warning|error]
cumulus@switch:~$ sudo netq config restart agent
要禁用所有日志记录
cumulus@switch:~$ sudo netq config del agent loglevel
cumulus@switch:~$ sudo netq config restart agent
更改 NetQ 代理轮询数据和频率
NetQ 代理包含一组预配置的模块化命令,这些命令定期运行并将事件和资源数据发送到 NetQ 设备或 VM。您可以使用 NetQ CLI 微调代理可以轮询哪些事件以及轮询频率。
例如,如果您的网络未运行 EVPN,则可以禁用轮询 EVPN 事件的命令。或者,您可以将 LLDP 的轮询间隔从默认的 60 秒减少到 120 秒。通过不轮询选定的数据或降低轮询频率,您可以减少 NetQ 代理对交换机 CPU 的使用率。
根据交换机平台,NetQ 代理可能不会执行某些受支持的协议命令。例如,如果交换机没有 VXLAN 功能,则代理会跳过所有与 VXLAN 相关的命令。
支持的命令
要查看受支持的模块化命令列表,请运行
cumulus@switch:~$ sudo netq config show agent commands
Service Key Period Active Command Timeout
----------------------- -------- -------- -------------------------------------------------------------- ---------
bgp-neighbors 60 yes ['/usr/bin/vtysh', '-c', 'show ip bgp vrf all neighbors json'] 30
evpn-vni 60 yes ['/usr/bin/vtysh', '-c', 'show bgp l2vpn evpn vni json'] 30
lldp-json 120 yes /usr/sbin/lldpctl -f json 30
clagctl-json 60 yes /usr/bin/clagctl -j 30
mstpctl-bridge-json 60 yes /sbin/mstpctl showall json 30
ports 3600 yes Netq Predefined Command 30
proc-net-dev 30 yes Netq Predefined Command 30
dom 1800 yes Netq Predefined Command 30
roce 60 yes Netq Predefined Command 30
roce-config 300 yes Netq Predefined Command 30
nvue-roce-config 300 yes Netq Predefined Command 30
ntp 30 yes Netq Predefined Command 45
agent_stats 300 yes Netq Predefined Command 30
agent_util_stats 300 yes Netq Predefined Command 30
tcam-resource-json 300 yes /usr/cumulus/bin/cl-resource-query -j 30
nvue-mon-json 300 yes Netq Predefined Command 30
cl-support-json 3600 yes Netq Predefined Command 30
resource-util-json 300 yes findmnt / -n -o FS-OPTIONS 30
smonctl-json 120 yes /usr/sbin/smonctl -j 30
sensors-json 1800 yes sensors -u 30
ssd-util-json 86400 yes /usr/sbin/smartctl -a /dev/sda 30
ssd-util-nvme-json 86400 yes /usr/sbin/smartctl -a /dev/nvme0 30
ecmp-hash-info 300 yes cat /etc/cumulus/datapath/traffic.conf 30
ecmp-info 60 yes Netq Predefined Command 30
ptp-config-info 60 yes cat /etc/ptp4l.conf 30
ptp-clock-info 60 yes Netq Predefined Command 30
ptp-clock-status 60 yes Netq Predefined Command 30
ptp-statistics 60 yes Netq Predefined Command 30
ptp-correction 30 yes Netq Predefined Command 30
log-exporter 60 yes Netq Predefined Command 30
adaptive-routing-config 300 yes Netq Predefined Command 30
ber-info 30 yes Netq Predefined Command 30
修改轮询频率
您可以更改模块化命令的轮询频率(以秒为单位)。例如,要将 `ntp` 命令的轮询频率从默认的 30 秒更改为 60 秒,请运行
cumulus@switch:~$ sudo netq config add agent command service-key ntp poll-period 30
Successfully added/modified Command service misc command None
cumulus@switch:~$ sudo netq config show agent commands
Service Key Period Active Command Timeout
----------------------- -------- -------- -------------------------------------------------------------- ---------
bgp-neighbors 60 yes ['/usr/bin/vtysh', '-c', 'show ip bgp vrf all neighbors json'] 30
evpn-vni 60 yes ['/usr/bin/vtysh', '-c', 'show bgp l2vpn evpn vni json'] 30
lldp-json 120 yes /usr/sbin/lldpctl -f json 30
clagctl-json 60 yes /usr/bin/clagctl -j 30
mstpctl-bridge-json 60 yes /sbin/mstpctl showall json 30
ports 3600 yes Netq Predefined Command 30
proc-net-dev 30 yes Netq Predefined Command 30
dom 1800 yes Netq Predefined Command 30
roce 60 yes Netq Predefined Command 30
roce-config 300 yes Netq Predefined Command 30
nvue-roce-config 300 yes Netq Predefined Command 30
ntp 60 yes Netq Predefined Command 45
agent_stats 300 yes Netq Predefined Command 30
agent_util_stats 300 yes Netq Predefined Command 30
tcam-resource-json 300 yes /usr/cumulus/bin/cl-resource-query -j 30
nvue-mon-json 300 yes Netq Predefined Command 30
cl-support-json 3600 yes Netq Predefined Command 30
resource-util-json 300 yes findmnt / -n -o FS-OPTIONS 30
smonctl-json 120 yes /usr/sbin/smonctl -j 30
sensors-json 1800 yes sensors -u 30
ssd-util-json 86400 yes /usr/sbin/smartctl -a /dev/sda 30
ssd-util-nvme-json 86400 yes /usr/sbin/smartctl -a /dev/nvme0 30
ecmp-hash-info 300 yes cat /etc/cumulus/datapath/traffic.conf 30
ecmp-info 60 yes Netq Predefined Command 30
ptp-config-info 60 yes cat /etc/ptp4l.conf 30
ptp-clock-info 60 yes Netq Predefined Command 30
ptp-clock-status 60 yes Netq Predefined Command 30
ptp-statistics 60 yes Netq Predefined Command 30
ptp-correction 30 yes Netq Predefined Command 30
log-exporter 60 yes Netq Predefined Command 30
adaptive-routing-config 300 yes Netq Predefined Command 30
ber-info 30 yes Netq Predefined Command 30
禁用命令
您可以禁用不必要的命令。这有助于减少 NetQ 代理在交换机上消耗的计算资源。例如,如果您的网络未运行 EVPN,则可以禁用 EVPN 命令
cumulus@switch:~$ sudo netq config add agent command service-key evpn-vni enable False
Command Service evpn-vni is disabled
重置为默认值
要恢复为原始命令设置,请运行
cumulus@switch:~$ sudo netq config agent factory-reset commands
Netq Command factory reset successful