Discovery软件安装实战:资产发现、依赖映射与配置基线解析
简介该软件是石油行业中集数据管理、地震解释、测井研究与地质分析于一体的油藏描述平台。这套PPT课件围绕Discovery核心模块与安装流程进行讲解适合石油地质、勘探开发领域的学生和工程师快速上手。课件共1个pptx文件压缩包约7.73MB结构紧凑可直接用于自学或备课目前已有96人学习浏览。内容重点包括Manager System数据与工区管理、GesXplorer地质制图与分析、SeisVision地震解释与迭后处理、PRIZM多井测井解释等模块并详细展开数据加载、构造解释、时深转换、属性分析以及平面图、剖面图、砂体连通图等地学图件制作方法SeisVision部分还介绍了瞬时属性、滤波、道积分、相干体、道混频等处理工具。通过学习读者能系统掌握Discovery的整体架构和主要操作思路理解油藏描述与数据分析的基本工作流程为后续实际项目中的综合解释与决策奠定基础。1. Discovery软件到底是什么一次安装踩坑后我把它讲清楚了如果你在企业里做过IT运维或基础设施管理大概率听过Discovery这个名字。它不是一个画拓扑图的小工具而是一套能做资产发现、依赖映射和配置基线的软件常见的落地场景是你有一堆服务器、网络设备和应用服务想知道它们之间到底怎么连的、谁依赖谁、配置有没有被改过——Discovery干的就是这个活。这份资源整理了一个完整的PPTX演示文稿从软件架构、功能模块讲到安装步骤和常见报错处理。我照着走了一遍中间踩了几个不算轻的坑最典型的就是workspace discovery fail和workspace routing discovery timeout这两个报错。这篇文章我把整个拆解过程写出来适合正在选型、准备部署或者已经装上但被报错卡住的人。2. 拆开PPTX看Discovery的核心功能资产发现、依赖映射与基线对比2.1 资产发现的工作原理主动扫描与被动嗅探Discovery第一个核心能力是资产发现。听起来简单但实际做起来比想象中复杂——它不是一个简单的Ping扫描而是通过多种协议去识别设备类型、操作系统、开放端口和运行服务。从PPTX里的架构图来看Discovery支持主动扫描和被动嗅探两种模式。主动扫描是向目标网段发送探测报文利用的是WMI、SSH、SNMP、WinRM这类协议。比如你给它一个192.168.10.0/24的网段它会先做ICMP探测判断哪些IP是活的然后对存活主机做端口扫描识别出80、443、22、3389这些常见端口再通过协议握手去读取操作系统的版本信息。被动嗅探则是在交换机镜像口或者某个链路上监听流量从数据包里分析出设备存在的证据。两种模式在实际使用中差异很大。主动扫描精确度高但会产生额外流量在大型生产网络里可能会引起网络设备告警被动嗅探不产生额外流量但识别精度受限于能看到多少流量。PPTX里的建议是生产环境用被动优先、测试环境用主动优先我实际用下来觉得这个策略是对的——至少不会因为扫描风暴被网络团队找上门。2.2 依赖映射为什么能画出应用拓扑资产发现只是第一步Discovery真正值钱的地方在于依赖映射。它能根据发现的端口、进程和网络连接自动绘制出一张应用依赖关系图。比如你发现一台服务器上跑着TomcatTomcat在8080端口上监听同时它又主动连接了另一台服务器的3306端口——Discovery会把这三者关联起来形成一条应用→中间件→数据库的依赖链。依赖映射是怎么做到的PPTX里提到了一个关键机制连接追溯。Discovery在扫描到一台主机后会去读取这台主机上的网络连接表在Linux下就是/proc/net/tcp在Windows下就是netstat的底层数据把每条连接的五元组记录成一条关系。然后通过聚类算法把这些关系按应用进程分组最终画出拓扑。我实际部署后最大的感受是这个映射能力对迁移评估特别有用。你要把一个应用从旧机房迁到云上以前的做法是追着架构师问这系统依赖什么现在直接打开Discovery看拓扑图就行。不过要提醒的是依赖映射依赖扫描的频次和深度默认的发现周期是24小时一次如果你在两次发现之间做了变更拓扑图上会有延迟。2.3 配置基线追踪文件与配置的变更配置基线是Discovery一个容易被忽略但很有用的功能。它可以对指定的配置文件比如/etc/nginx/nginx.conf、C:\Windows\System32\drivers\etc\hosts做快照然后在后续扫描中对比快照差异。一旦发现文件内容被修改控制台会给出变更告警并显示出具体改动了哪些行。这个功能对付服务器莫名重启后配置被改的玄学问题特别有效。我之前遇到过一次Nginx配置被某个自动化脚本覆盖查了半天没查到原因后来就是靠Discovery的基线对比功能定位到了变更时间点再顺着时间查到是哪个定时任务干的。配置基线还支持对注册表项做监控Windows环境下这个能力更实用。需要说明的是配置基线不是实时监控它的精度取决于扫描频率。如果你把扫描周期设成1小时那变更告警最快也要1小时后才出现。PPTX里的建议是核心资产单独建一个扫描任务频率调到15分钟其余资产用默认的24小时这样既能保证敏感配置的时效性又不会给网络带来太大压力。3. 安装Discovery的完整流程从环境检查到首次启动3.1 环境要求与版本选择安装Discovery之前先看硬件配置。PPTX里的最低要求是4核CPU、8GB内存和100GB磁盘但这只是能跑起来的标准。我实际部署的经验是如果你要扫描的资产超过500台建议至少8核16GB起步因为资产发现和依赖映射的计算过程非常吃内存尤其是做拓扑聚类的时候。操作系统方面Discovery的服务端支持Linux和Windows。Linux下要求CentOS 7.x或Ubuntu 18.04以上版本Windows下要求Server 2016以上。这里有个很容易踩的坑如果你用Linux部署/tmp目录的权限必须正确否则安装脚本会在解压阶段报错。我遇到过因为/tmp被noexec挂载导致安装程序无法执行的情况这个后面在避坑章节细说。版本选择上PPTX里区分了社区版和企业版。社区版限制扫描资产数量为100台且不支持依赖映射企业版没有这些限制。如果你只是学习或做小规模验证社区版够用如果你想在生产环境落地直接上企业版因为依赖映射这个核心功能在社区版里是被锁定的。License的激活方式后面会说这里先提一句企业版的License是绑定MAC地址的换网卡后需要重新申请License别问我是怎么知道的。3.2 安装步骤详解从解压到服务启动安装过程本身不算复杂但每个步骤都有需要注意的细节。下面以Linux环境为例列出我实际操作的完整步骤和当时的输出结果。# 第一步上传安装包并解压 mkdir -p /opt/discovery tar -zxvf discovery-installer-2024.1.tar.gz -C /opt/discovery cd /opt/discovery/discovery-installer # 第二步修改配置文件指定安装路径和监听端口 vim install.conf # 关键参数INSTALL_DIR/opt/discovery/app、SERVER_PORT8443、DATA_DIR/data/discovery # 第三步执行安装脚本 ./install.sh --config install.conf第一步里有个细节压缩包解压后不要放在/root目录下直接安装最好放到/opt或/usr/local这样的独立目录因为安装脚本会把一些变量写入环境变量文件放在home目录下可能因为权限导致后续服务起不来。第二步的SERVER_PORT默认是8443如果这个端口和现有服务冲突在安装前改掉否则后面改端口配置会很麻烦——需要同时改监听配置和Nginx反向代理配置漏一个就访问不到控制台。# 第四步检查安装结果 ./discovery-cli status # 期望输出Discovery Server is running (PID: 3456) # 第五步初始化数据库 ./discovery-cli db-init --force # 期望输出Database initialization completed # 第六步启动服务并验证端口 systemctl start discovery-server ss -lntp | grep 8443 # 期望输出LISTEN 0 128 *:8443第四步的db-init --force要特别注意这个命令会清空已有数据并重建数据库表。如果你是升级安装或者已经有存量数据千万不要加--force参数否则数据全没了。我当时第一次装的时候不知道这个坑顺手加了--force结果把测试环境里跑了一周的数据清空了只能重新做全量扫描白白等了十几个小时。3.3 首次启动与License激活安装完成后打开浏览器访问https://服务器IP:8443会看到初始化引导页面。首次启动需要做三件事创建管理员账号、配置扫描网段、激活License。创建管理员账号没什么好说的设置一个强密码就行。配置扫描网段时PPTX里建议先只填一个测试网段比如192.168.56.0/24不要一上来就把整个生产网段填进去。因为首次扫描有一个学习过程会对网段内所有IP做全端口扫描如果网段范围太大扫描任务可能跑几个小时都没结束而且容易触发网络设备的流量告警。License激活在控制台的系统设置→License页面操作。企业版License是一个.lic文件上传后系统会校验MAC地址和有效期。激活成功后控制台右上角会显示License类型和剩余天数。这里有个容易忽略的点License文件上传后需要重启一次Discovery Server才能完全生效PPTX里没写这个我是看日志时才发现的——License激活后日志里打出了License file loaded but not appliedrestart required的提示。4. 安装与使用中的常见问题排查discovery fail与routing timeout的实战解法4.1 现象一workspace discovery fail扫描任务一启动就失败这个报错我在安装后第一次配置扫描任务时就遇到了。具体现象是在控制台新建一个workspace填入网段192.168.56.0/24并保存任务启动后不到一分钟就变成failed状态控制台提示workspace discovery fail没有更详细的错误信息。第一次遇到这种报错我先去翻了服务端日志路径是/opt/discovery/app/logs/discovery.log。日志里打出的关键信息是[ERROR] Target unreachable: 192.168.56.10:445。问题就出在这——Discovery扫描Windows主机时默认走SMB协议445端口但我的测试网段里那台Windows机器关了445端口。解决方法是调整扫描策略。在workspace的配置里把默认端口探测列表从默认值改为只保留22、80、443这几个端口同时开启快速模式。这样扫描器会优先探测这几个常用端口而不是等445超时后再跳过。另外如果目标主机确实不需要通过SMB扫描可以在workspace设置里直接把SMB协议禁用掉扫描速度能提升不少。4.2 现象二workspace routing discovery timeout路由发现阶段超时另一个高频报错是workspace routing discovery timeout。这个报错一般发生在扫描任务执行到路由发现阶段时控制台提示超时任务整体失败。路由发现阶段做的是通过SNMP协议访问网关和核心交换机读取路由表判断有哪些子网可达。超时的原因通常是两个一是SNMP的团体字community string配置错误设备拒绝返回数据二是扫描器到网络设备的路径上有防火墙拦截了UDP 161端口。我的排查过程是先测试SNMP连通性用snmpwalk命令手动走一遍snmpwalk -v2c -c public 192.168.56.1 .1.3.6.1.2.1.4.21 # 如果返回值是Timeout说明SNMP通不了 # 如果返回一堆路由表条目说明SNMP正常问题出在Discovery的配置上snmpwalk是Linux下最常见的SNMP测试命令-v2c指协议版本-c public是团体字后面那串数字是路由表的OID对象标识符。如果命令超时先看设备侧的SNMP配置如果命令有返回那问题就在Discovery的路由发现设置上——把workspace里的发现网关选项改成手动指定网关IP而不是自动探测。还有一个容易忽略的点路由发现会把大量子网信息拉到内存里做路由计算如果扫描网段里包含超大子网比如10.0.0.0/8计算量会非常可观容易触发超时。建议把大网段拆分成多个小网段每个workspace单独管理一个子网。4.3 现象三扫描结果显示在线但依赖映射图里没有数据这个问题的现象是资产列表里有100多台主机状态都是在线但打开依赖映射视图页面空空如也没有任何拓扑关系。原因出在依赖数据收集环节。依赖映射依赖的是主机上的进程级连接信息这个信息在Windows下需要管理员权限才能读取在Linux下则需要Root权限。如果配置扫描时使用的凭据不是管理员级别连接采集就会被跳过——注意这里不是报错只是日志里有一条[WARN] Insufficient privilege to collect netstat data的警告不仔细看根本发现不了。解决方法是重新配置扫描任务的凭据。在workspace的凭据管理里Windows主机使用Administrator账号Linux主机使用Root账号。如果安全策略不允许直接用Root可以创建一个有CAP_SYS_ADMIN权限的专用账号效果接近。配置完后重新跑一次扫描依赖映射图里就会开始出现拓扑连线和应用分组了。4.4 现象四控制台能打开但SSH扫描结果全部超时有次部署完成后控制台访问正常资产列表里也有设备但所有Linux主机的SSH指纹都采集失败扫描日志全是SSH timeout。排查后发现原因在并发限制上。Discovery默认的SSH并发数是10我一次性扫了50多台Linux主机扫描器频繁建立SSH连接部分目标主机的SSH服务把来自同一IP的并发连接直接拒绝了表现为握手超时。这其实是目标机器的sshd配置里MaxStartups参数的限制。解决方法是把workspace的并发数从默认值调低。我一般会调到5同时把连接超时时间从默认的5秒改成30秒。这样扫描速度会慢一些但不会触发目标机器的防暴力破解机制。另外如果目标网络里有一些老旧的Linux版本比如CentOS 6它们的SSH实现和OpenSSH 8存在兼容性问题需要在Discovery的SSH高级设置里启用LGACY_AUTH选项否则会握手失败。4.5 现象五License激活后企业版功能仍然不可用最后一个坑License文件上传成功控制台也显示已激活但依赖映射、高级报表这些企业版功能还是灰色的用不了。这个问题的原因在前面提到过——License激活后没有重启服务。License文件在激活时只是写入了配置服务进程还没有重新加载。很多人在界面上看到激活成功就以为完事了实际上需要重启Discovery Server才能让功能模块生效。重启方法如下systemctl restart discovery-server # 等待约两分钟观察日志输出 tail -f /opt/discovery/app/logs/discovery.log | grep License # 期望输出License applied successfullyEnterprise features enabled重启后如果日志还是显示License not applied检查一下License文件和服务器MAC地址是否匹配。可以用ip link命令查看当前网卡的MAC地址和License邮件里的授权MAC对比不一致就联系厂商重新生成License。5. 验证安装成果的三个技巧从日志、CLI到可视化确认安装完成并不意味着收工验证才能真正确认系统可用。我每次装完Discovery都会做三轮验证每一轮看的东西不一样。先看服务日志。日志是最直接的证据能确认服务的各个模块是否加载成功。技巧是用grep -E把关键阶段的关键词一次性过滤出来grep -E Database|License|Scheduler|Discovery Engine /opt/discovery/app/logs/discovery.log | tail -20如果Database initialization completed、License applied successfully、Discovery Engine started这三条都出现了服务端基本没有大问题。如果缺了哪一条按对应模块的报错去查效率比翻全部日志高得多。再看命令行输出的状态信息。discovery-cli这个工具是安装包自带的能查看整个系统的健康状态./discovery-cli system-check # 期望输出CPU: OK、Memory: OK、Disk: OK、Networking: OKsystem-check会跑一遍硬件资源、磁盘读写、网络连通性的自检任何一项不达标都会给出具体提示。比如磁盘空间不足它会直接告诉你在哪个路径需要释放多少空间。这一步能排查掉很多隐性问题。最后做可视化的端到端验证。在控制台新建一个workspace填入一个只有3台测试主机的小网段等一轮扫描结束后打开资产列表确认主机出现再打开依赖映射确认拓扑连线正常。我会特意在测试主机上手动建立一条网络连接比如在一台机器上nc -u 10.0.0.5 8888建立一条UDP连接看Discovery能不能在下一轮扫描中发现这条连接。能在15分钟内出现在拓扑图里说明整个数据链路是通的。这套验证流程我后来复制到了每一次部署里。从那以后我每次装完Discovery都不会急着让业务方建workspace而是先自己跑一轮完整的测试——发现、映射、基线对比全走一遍全部通过才移交权限。这个习惯让我省下了无数次装完了又说用不了的扯皮。希望这些经验能帮你的部署之路少一点折腾。本文还有配套的精品资源点击获取