2025/12/29 1:12:55
网站建设
项目流程
贵州域网网站建设,类似58的推广平台有哪些平台,只做网站应该找谁,东莞常平新楼盘简介本文章主要讲解使用orb-agent 扫描网络收集IP信息#xff0c;通过Diode 摄取到NetBox。这两个工具都是NetBox官方的自动化发现产品#xff0c;下面是示意图。------------------| orb-agent ||------------------|| 网络扫描/资产发现 |------------------|| grpc 通过NM…简介本文章主要讲解使用orb-agent 扫描网络收集IP信息通过Diode 摄取到NetBox。这两个工具都是NetBox官方的自动化发现产品下面是示意图。------------------| orb-agent ||------------------|| 网络扫描/资产发现 |------------------|| grpc 通过NMAP/SNMP等扫描结果IP、主机、服务v------------------| Diode ||------------------|| 数据清洗/转换 || 安全传输/推送 |------------------|| grpc 通过Diode插件标准化后的资产数据v------------------| NetBox ||------------------|| IPAM / DCIM 管理 || 资产持续更新 |------------------相关文档https://github.com/netboxlabs/diodehttps://github.com/netboxlabs/diode/blob/develop/GET_STARTED.mdDiode安装环境要求NetBox 版本大于 4.2.3Docker 版本大于 27.0.3Docker 国内安装PS安装最新版使用compose V2部署。https://mirror.nju.edu.cn/mirrorz-help/docker-ce/?mirrorNJUDocker Hub国内加速sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json -EOF{registry-mirrors: [https://docker-0.unsee.tech,https://docker-cf.registry.cyou,https://docker.1panel.live]}EOFsystemctl enable dockersystemctl daemon-reload sudo systemctl restart dockersystemctl enable docker环境介绍系统使用Rocky Linux 9.7使用源码部署的NetBox 4.4.8NetBox访问地址为 http://192.168.31.173NetBox部署教程https://songxwn.com/netbox4-CN/Docker安装Diode Servermkdir /opt/diode# 创建 Diode 服务的工作目录用于存放配置和 compose 文件cd /opt/diode# 进入工作目录后续文件都会下载到这里curl -sSfLo quickstart.sh https://raw.githubusercontent.com/netboxlabs/diode/release/diode-server/docker/scripts/quickstart.sh# 从官方仓库下载 Diode 的 quickstart 脚本用于自动生成 docker-compose.yaml 等文件# -sSfL 参数确保失败时退出并跟随重定向chmod x quickstart.sh# 给 quickstart.sh 添加可执行权限./quickstart.sh http://192.168.31.173# 运行 quickstart 脚本指定你的 NetBox访问 URL# 脚本会自动生成 docker-compose.yaml、配置文件和默认目录结构docker compose up -d# 启动 Diode 服务PostgreSQL、Redis、Diode Server 等并以后台方式运行# 注意会占用宿主机8080端口。查看netbox-to-diode用户的密钥 - 用于diode插件echo $(jq -r .[] | select(.client_id netbox-to-diode) | .client_secret /opt/diode/oauth2/client/client-credentials.json)Netbox 接入Diode Servercd /opt/netbox# 进入 NetBox 的安装目录通常包含 venv、configuration、netbox 源码等source venv/bin/activate# 激活 NetBox 的 Python 虚拟环境确保插件安装到 NetBox 的 venv 中pip install netboxlabs-diode-netbox-plugin# 在 NetBox 的虚拟环境中安装 Diode NetBox 插件用于与 Diode/Orb 集成]开启插件并配置接入Diode参数编辑configuration/configuration.py文件PLUGINS [netbox_diode_plugin,PLUGINS_CONFIG {netbox_diode_plugin: {# Diode gRPC target for communication with Diode serverdiode_target_override: grpc://diode-server:port/diode,# NetBox username associated with changes applied via plugindiode_username: netbox-to-diode,# netbox-to-diode client secret from earlier stepnetbox_to_diode_client_secret: NT3yLOQamJpx545nSacRf4IN8VrJ2zmWHkyrD2SkbAc},}注意netbox_to_diode_client_secret 填写密钥为上面获取到的。使能插件生效cd /opt/netbox/netbox# 进入 NetBox 的 Django 项目目录包含 manage.py插件迁移必须在这里执行./manage.py migrate netbox_diode_plugin# 执行 Diode 插件的数据库迁移创建插件所需的表结构sudo systemctl restart netbox netbox-rq# 重启 NetBox 主服务和后台任务队列使插件加载并生效orb Agent 部署mkdir /opt/orb# 创建 Orb Agent 的工作目录用于存放配置文件、agent.yaml、compose 文件等cd /opt/orb# 进入 Orb Agent 的工作目录后续所有操作都会在这里进行创建/opt/orb/agent.yaml - 网络扫描导入orb:config_manager:active: localbackends:common:diode:target: grpc://192.168.31.173:8080/diodeclient_id: ${DIODE_CLIENT_ID}client_secret: ${DIODE_CLIENT_SECRET}agent_name: agent01network_discovery:policies:network_discovery:discovery_1:config:schedule: * * * * *timeout: 5defaults:description: IP discovered by network discoverytags: [net-discovery, orb-agent]scope:targets:- 192.168.31.0/24 # IP subnet- google.com # dns lookupfast_mode: Truemax_retries: 0注意grpc://192.168.31.173:8080/diode 把IP替换为你的服务器IP即可。 ORB 配置结构总览这段 YAML 主要定义了三个部分config_managerORB 自身的配置管理方式backendsORB 如何把数据上报到后端如 diodepolicies定义具体的任务这里是 network discovery你可以把它类比成config_manager ORB 的“配置源”backends ORB 的“输出插件”policies ORB 的“任务调度器 任务定义”✅ 1. config_managerconfig_manager:active: local意思是ORB 的配置来源是 本地文件local而不是从远端配置中心如 diode server动态拉取这意味着你修改本地 YAML 就能立即生效适合开发/测试环境。✅ 2. backends数据上报后端backends:common:diode:target: grpc://192.168.31.173:8080/diodeclient_id: ${DIODE_CLIENT_ID}client_secret: ${DIODE_CLIENT_SECRET}agent_name: agent01network_discovery: 解释common.diode这是一个通用 backend所有 policy 都可以复用它。字段说明字段 作用target diode server 的 gRPC 地址client_id / client_secret 用于认证通常来自环境变量agent_name ORB agent 的标识便于后端区分来源你可以把它理解为ORB 发现到的 IP、DNS 结果等会通过 gRPC 推送到 diode。network_discovery:这里留空表示 network_discovery policy 默认使用 common backend。✅ 3. policies任务定义这里定义了一个名为 discovery_1 的网络发现任务。policies:network_discovery:discovery_1:✅ 3.1 config任务执行参数config:schedule: * * * * *timeout: 5defaults:description: IP discovered by network discoverytags: [net-discovery, orb-agent] 字段解释字段 作用schedule: * * * * * 每分钟执行一次cron 表达式timeout: 5 每个探测任务最多执行 5 秒defaults.description 发现的资产默认描述defaults.tags 给发现的资产自动打标签你可以把它理解为每分钟跑一次扫描扫描结果会带上默认标签和描述便于后端分类。✅ 3.2 scope扫描范围scope:targets:- 192.168.31.0/24- google.comfast_mode: Truemax_retries: 0 字段解释✅ targets扫描目标列表支持CIDR如 192.168.31.0/24域名如 google.comORB 会自动对子网进行 ping/port 探测对域名进行 DNS 解析✅ fast_mode: True快速扫描模式不做深度端口探测不做反向 DNS更适合大规模快速发现✅ max_retries: 0失败不重试适合快速巡检。✅ 整体流程用你的视角总结ORB 的执行流程理解每分钟└─ network_discovery policy 启动├─ 扫描 192.168.31.0/24├─ DNS 解析 google.com├─ 发现结果打上默认标签└─ 通过 diode backend 上报到 192.168.31.173:8080Docker compose 部署orb Agent创建/opt/orb/docker-compose.yml文件services:orb-agent:image: netboxlabs/orb-agent:latestcontainer_name: orb-agentenvironment:DIODE_CLIENT_ID: diode-ingestDIODE_CLIENT_SECRET: NT3yLOQamJpx545nSacRf4IN8VrJ2zmWHkyrD2SkbAcvolumes:- /opt/orb:/opt/orbcommand: [run, -c, /opt/orb/agent.yaml]restart: unless-stoppedDIODE_CLIENT_SECRET密钥通过命令echo $(jq -r .[] | select(.client_id diode-ingest) | .client_secret /opt/diode/oauth2/client/client-credentials.json) 获取部署启动docker compose up -ddocker compose logs