可以在 vRealize Network Insight 收集器 CLI 中生成并运行脚本,以自动发现网络中的设备,并将所发现设备的详细信息导出为 .csv 文件。

注:

在未来版本的 vRealize Network Insight 中,将弃用通过运行 CLI 命令发现网络设备。

您可以通过运行 CLI 命令发现以下设备:

  • Cisco 交换机
  • Arista 交换机
  • Juniper 交换机
  • Dell 交换机
  • F5 Big-IP
  • Brocade 交换机
  • Palo Alto 网络
  • Check Point 防火墙
  • Cisco ASA

过程

  1. 支持用户身份登录到 vRealize Network Insight 收集器 CLI。
    使用安全套接字 Shell (SSH) 客户端提供您的 CLI 登录凭据。
  2. 切换到 Ubuntu 用户。
    ub
  3. 运行以下命令,以在当前的工作目录中生成 Python 脚本。
    java -cp "/home/ubuntu/build-target/common-utils/tools-0.001-SNAPSHOT.jar" com.vnera.tools.DiscoveredDevicesTool -w script.py

    您可以使用此脚本执行网络发现。

  4. 运行以下命令,以在当前的工作目录中生成示例凭据文件。
    java -cp "/home/ubuntu/build-target/common-utils/tools-0.001-SNAPSHOT.jar" com.vnera.tools.DiscoveredDevicesTool -s sample_creds.csv 

    您可以使用示例凭据文件访问网络中的设备。

    以下是示例凭据文件的一个示例:

    "credential_name","connection_type", "username", "password", "snmp_version",
    "community_string", "snmp_user", "snmp_context", "snmp_auth_type", "snmp_auth_password",
    "snmp_privacy_type", "snmp_privacy_password"
    "SSH1","SSH","admin","admin","","","","","","","",""
    "API1","API","admin","admin","","","","","","","",""
    "SNMP1","SNMP","","","v2c","community","","","","","",""
    "SNMP2","SNMP","","","v3","","user","context","authtype","authpass","privacytype","privacypass"
    
  5. 使用 SSH、SNMP v2c、SNMPv3 或 API 凭据更新示例凭据文件。

    可以在该文件中输入多个凭据,只需为每个条目提供唯一的 credential_name 即可。

    要发现 F5 Big-IP 负载均衡器,必须输入 API 凭据。
    注: 无法使用 API 凭据发现其他网络设备。
  6. 对 Python 脚本运行 help 命令,以查看该脚本支持的选项。
    python3 script.py --help

    可以使用这些选项对凭据进行身份验证并执行网络发现。

    选项 描述
    --host vRealize Network Insight 平台节点 1 的 IP 地址。
    --deployment type 要对其执行此操作的部署类型。接受的值为 onpremsaas

    默认值为 onprem

    --username 平台用户的用户名。
    注: 必须始终将用户名用单引号引起来。
    --password 平台用户的密码。
    注: 必须始终将密码用单引号引起来。
    --domain_type 用于对用户凭据进行身份验证的域类型。接受的值为 LOCALLDAP
    --domain_value 如果域类型为 LDAP,请提供 LDAP 域名。
    --proxy_ips vRealize Network Insight 收集器的 IP 地址。
    --credentials_file_path 包含 SSH、SNMP 或 API 凭据的凭据文件的位置。
    --network_ranges 要对其执行网络发现的 IP 地址范围。您可以采用网络范围格式或 CIDR 范围格式指定 IP 地址。
    --seeds

    要开始网络发现进程的网络设备的种子 IP 地址或种子 FQDN。

    注:

    运行网络发现脚本时,将以给定的种子 IP 地址作为起点开始网络发现进程。

    根据 CDP 和 LLDP 等行业协议发现每个种子的邻居设备。然后,将每个发现的设备用作种子,以递归方式发现网络中的其他设备,直到发现网络中的所有设备或达到种子深度。

    --seed_depth

    发现网络设备的深度。

    注:

    种子深度指示必须从种子 IP 地址探索的邻居的层级数。默认情况下,种子的深度为 0;种子的邻居的深度为 1:种子的邻居的邻居的深度为 2,依此类推。

    如果输入的种子深度为 2,则可以发现种子的设备、种子的邻居和种子的邻居的邻居。

    --ignored_list

    要从网络发现中排除的 IP 地址列表。您可以采用以下格式指定 IP 地址:

    • 单个 IP 地址
    • FQDN
    • 网络范围
    • CIDR 范围
    --download_discovered_devices 用于下载以前发现的设备的选项。输入 TrueFalse
    --out 成功网络发现的 CSV 输出文件的名称。输出文件的默认名称为 auto_gen_discovered_devices.csv
    --clear_all 用于清除发现的详细信息(例如发现作业、凭据配置文件、作业结果和已发现的设备)的选项。输入 TrueFalse
    --wait_time_in_secs 发现设备的最长等待时间(以秒为单位)。
  7. 使用以下选项之一运行 Python 脚本:
    选项 示例
    使用 --network_ranges 选项提供发现的网络范围。
    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --domain_type LOCAL --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --network_ranges 10.xxx.xx.158/24
    使用 --seeds--seed_depth 选项提供网络发现的种子地址和种子深度。
    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --domain_type LDAP --domain_value vmware.com --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --seeds 10.xxx.xx.xxx --seed_depth 2
    注:

    您必须使用更新的凭据文件(包括 SSH、SNMP v2c、SNMPv3 或 API 凭据)运行 Python 脚本。

    python 脚本仅发现在收集器网络可访问性范围内的设备。不会发现网络上可用但无法从收集器网络访问的设备。

  8. 根据操作的状态,执行以下操作之一:
    状态 操作
    操作成功。

    打开 CSV 文件。示例 CSV 文件如下所示:

    "DataSourceType","IP","fqdn","Username","Password","CSPRefreshToken","NickName",
    "CentralCliEnabled","IPFixEnabled","SwitchType","ParentvCenter","IsVMC",
    "snmp_version","snmp_community_string","snmp_username","snmp_password",
    "snmp_auth_type","snmp_privacy_type","ProxyIP"
    "DataSource1","","Domain_name","username","<pwd>","",
    "nick_name_discovered_devices_1","","","","","","","","","","","","10.xx.xxx.xx"
    "DataSource2","10.1xx.xx.1x","","username","pwd","",
    " nick_name_discovered_devices_2","","","","","","","","","","","","10.xx.xx.xxx"
    
    操作失败或超时。

    运行 Python 脚本并包含 --clear_all 选项,清除已发现设备的详细信息并启动新的网络发现操作。

    例如:

    python3 script.py --deployment_type onprem --username 'user' --password 'pwd' --proxy_ips 10.xxx.xxx.xx --clear_all true
       

下一步做什么

可以使用 network-insight-sdk-python SDK 在 vRealize Network Insight 中将发现的网络设备批量添加为数据源。有关详细信息,请参见使用 Python SDK 批量添加数据源