Contrail 见解网络设备监控常见问题
JTI Timestamp 在 Contrail 见解图表中关闭
JTI 数据的时间戳无法与用户当前的时间戳同步,存在问题。因此,JTI 数据在 Contrail 见解图表中显示为前面或后面。
要解决不与用户时间戳同步的 JTI 时间戳:
使用网络时间协议 (NTP) 同步 Junos 设备时间。验证命令的结果
show system uptime
与 AppFormix-VM 的时间相同。JTI 流通过 vFPC 时间戳从虚拟转发引擎 (vFPC) 直接发出,vFPC/vCP 具有单独的 NTP 服务。您应强制 vFPC – vCP 之间的 NTP 同步,并移除本地时间故障切换。
[root@vfpc]# vi /etc/ntp.conf server 128.0.0.1 iburst ####### 128.0.0.1 is vCP internal IP #server 127.127.0.1 #### comment out LOCAL HARDWARE CLOCK
然后运行:
[root@vfpc]# service ntpd stop && service ntpd start
运行以下命令以检查偏移是否恢复正常:
run ntpq -p
不显示图表中数据的 JTI 设备
有关 JTI 设备未在图表中显示数据的故障排除信息,请参阅 Contrail 见解 JTI (UDP) 监控。
不报告数据的 SNMP 设备
SNMP 设备不报告数据的原因有以下几个,包括:
设备可访问性。
未安装 MIB。
Contrail 见解插件,不将设备数据分配给正确的 Contrail 见解收集器。
要纠正设备可访问性或未安装 MIB:
登录您的
appformix_network_agents
节点。如果聚合有多个主机,请在所有这些主机中验证。运行
cd /opt/appformix/manager/tailwind_manager/
。直接从此文件夹运行插件文件。如果某些特定 MIB 不工作(例如
plugin_config_file
,对于该 MIBconfig_file.py
),请运行以下命令:python check_snmp_network_device_template.py -d {ip} -f config_file -c {snmp_community} -v 2c
命令可因不同 SNMP 版本而更改。
运行以下命令以检查脚本中可能出现的变量:
python check_snmp_network_device_template.py -h
要检查插件的配置文件名称,请从 Ansible 安装器文件夹中的该插件的 JSON 文件中
certified_plugins
获取信息。
要更正 Contrail 见解插件,不将设备数据分发给正确的收集器:
使用 Contrail 见解插件 API 获取任何 SNMP 插件的分布图。它位于 Plugin > Config > ObjectList 中。有关更多信息,请联系 mailto:AppFormix-Support@juniper.net 了解您的具体案例。您还可以从仪表板中查看数据,方法 是选择设置>插件,然后选择特定插件来查看启用的指标。
未报告数据的 gRPC 设备
gRPC 设备不报告数据的原因有以下几个,包括:
未使用 openconfig/network-agent 软件包正确安装设备。
设备配置不正确。
appformix_network_agents
无法从设备接收数据。
要纠正未正确安装有 Openconfig 文件包、网络代理包或设备未正确配置的设备:
登录设备以验证是否具有正确的软件包和配置。
在设备上运行
show version
以检查设备模块和 Junos 版本。运行
show system software | grep na
以检查network_agent包是否正确安装在设备上。运行
show system software | grep open
以检查 openconfig 软件包是否正确安装在设备上。运行
show system services extension-service
以检查设备上的 gRPC 配置。以下是所需输出的示例:request-response { grpc { clear-text { port 50051; } skip-authentication; } } notification { allow-clients { address 0.0.0.0/0; } }
要更正 appformix_network_agents
未从设备接收数据:
验证您没有任何防火墙 IPtables 阻止连接。运行以下命令以清除 IPtables 规则:
iptables -F iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT
(可选)使用 Contrail 见解插件 API 获取任何 SNMP 插件的分布图。它位于 Plugin > Config > ObjectList 中。有关更多信息,请联系 mailto:AppFormix-Support@juniper.net 了解您的具体案例。
从appformix_network_agents运行 gRPC 测试脚本,检查 Contrail 见解能否从设备获取 gRPC 数据。Contrail 见解在名为
check_grpc_device_test.py
的文件夹中/opt/appformix/manager/tailwind_manager
提供测试脚本。运行以下命令调试:cd /opt/appformix/manager/tailwind_manager source ../venv/bin/activate python check_grpc_device_test.py -ip {device_ip} -port {port} -sensor {sensor_path}
如果您能从
check_grpc_device_test.py
中获取数据,则能够从 Contrail 见解软件获取数据。如果无法从
check_grpc_device_test.py
中获取数据,可通过运行以下命令在设备上启用 gRPC 日志:set system services extension-service traceoptions file extension-service.log set system services extension-service traceoptions file size 5m set system services extension-service traceoptions file files 2 set system services extension-service traceoptions flag all
要获取 gRPC 日志,请运行 命令:
show log extension-service.log
JTI 数据因rp_filter而未交付到应用程序套接口
在某些情况下,来自设备的 UDP 数据包由接口接收(基于 tcpdump 输出),但无法接收到应用程序插座。使用 Python 代码运行 socket.recvfrom
时,无法接收端口 42596 上的任何数据。
要纠正此问题,请通过运行以下命令禁rp_filter
eth1
用接口(即接口设备将数据发送至):
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
现在,您应该在 Contrail 见解仪表板中看到数据。
仪表板中未显示的 SNMP 陷阱
要排除 SNMP 陷阱为何未在仪表板中显示的故障,请执行以下步骤以确定是否有不正确:
检查端口 42597 是否开放且通过运行
netstat -plan|grep 42597
在所有appformix_controller
节点中侦听。snmp_trap_network_device
确认集群中存在插件。选择插件>设置。从仪表板报警页面检查集群中是否存在名为
network_device_snmp_trap
的报警。验证设备上的 SNMP 陷阱配置正确。有关完整配置详细信息 ,请参阅 Contrail 见解中的 SNMP 陷阱 。
检查所有 Contrail 见解平台节点是否都在报告数据。如果在平台节点的主机图表中看到数据,则可以确认这一点。选择 仪表板>主机 选项卡,然后选择主机节点以查看更多详细信息。
如果您发现上述任何问题,需要尝试几件事。检查问题是否在每步之后修复,因为可能不需要所有步骤:
重新运行指南以再次添加插件和报警(步骤 2 和步骤 3)。
验证并更新设备上的 SNMP 陷阱配置(步骤 4)。
最后,重新启动平台节点上的 Contrail 见解代理。