可以使用 vRealize Network Insight Cloud CLI 发现网络上的设备并将所发现设备的详细信息导出为 CSV 文件。

只能发现以下设备:

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

过程

  1. 支持用户身份登录到 收集器 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 凭据更新示例凭据文件。可以在 CSV 文件中输入多个凭据,只需为每个条目提供唯一的 credential_name 即可。
    1. (可选) 如果要发现 F5 Big-IP 负载均衡器,请输入您的 API 凭据。其他设备不支持 API 凭据。
    2. 保存文件。
  6. 使用 Python 脚本执行网络发现之前,请在 Python 脚本上运行帮助命令,以列出该脚本支持的可能选项。
    python3 script.py --help
    支持的选项如下所示。使用这些选项对凭据进行身份验证并执行网络发现。
    选项 描述
    --deployment type 要对其执行此操作的部署类型。接受的值为 onpremsaas

    默认值为 onprem

    --api_token 用于对 vRealize Network Insight Cloud 凭据进行身份验证的 API 刷新令牌。
    --cloud_location

    数据中心的位置。位置可以是 US、UK、JP、AU 或 DE。

    默认值为 US。

    --cloud_api_url vRealize Network Insight Cloud 的 URL。此选项将替代 --cloud_location 选项中提供的值。
    --proxy_ips 要在其中运行网络发现的代理 IP 地址列表。
    --credentials_file_path 包含 SSH、SNMP 或 API 凭据的凭据文件。
    --network_ranges 要开始网络发现的 IP 地址范围。您可以采用网络范围格式或 CIDR 范围格式指定 IP 地址。
    --seeds 要开始网络发现的网络设备的种子 IP 地址或种子 FQDN。
    --seed_depth 发现网络设备的深度。种子设备的深度为 0。种子设备邻居的深度为 1,以此类推。
    --ignored_list

    不希望在其中执行网络发现的 IP 地址列表。您可以采用以下格式指定 IP 地址:

    • 单个 IP 地址
    • FQDN 详细信息
    • 网络范围
    • CIDR 范围
    --download_discovered_devices 输入 true 可下载前面发现的设备。
    --out 如果操作成功,则包含已发现设备详细信息的 CSV 文件。输出文件的默认名称为 auto_gen_discovered_devices.csv
    --clear_all 用于清除发现的所有详细信息的选项,例如发现作业、凭据配置文件、作业结果和已发现的设备。输入 TrueFalse.
    --wait_time_in_secs 发现设备的最长等待时间(以秒为单位)。
  7. 使用您在步骤 5 中更新的最新凭据文件运行 Python 脚本。
    在运行 Python 脚本以执行网络发现时,您可以:
    选项 示例
    使用 --network_ranges 选项提供发现的网络范围。
    python3 script.py --deployment_type saas --api_token YourCSPAPIToken --cloud_location UK --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 saas --api_token YourCSPAPIToken --cloud_location UK --proxy_ips 10.xx.196.xxx --out discovered_devices.csv 
    --credentials_file_path sample_creds.csv --seeds 10.xxx.xx.xxx --seed_depth 2
    注: python 脚本仅发现在收集器网络可访问性范围内的设备。不会发现网络上可用但无法从收集器网络访问的设备。
  8. 查看有关 CLI 的信息以确定操作的状态。
  9. 如果操作完成,请打开 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"
    
  10. (可选) 如果操作失败或超时,您可以清除所发现设备的详细信息并启动新的网络发现操作。使用 --clear_all 命令运行 Python 脚本。例如:
    python3 script.py --deployment_type saas --api_token YourCSPAPIToken --cloud_location UK --proxy_ips 10.xx.xxx.xx --clear_all true

下一步做什么

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