找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2900

积分

0

好友

401

主题
发表于 2025-12-16 02:38:40 | 查看: 67| 回复: 0

本文详细介绍了如何使用 orb-agent 进行网络扫描,收集 IP 信息,并通过 Diode 将数据自动化导入 NetBox。这两个工具都是 NetBox 官方推出的自动化发现产品,能够帮助运维团队高效管理网络资产。

整体架构

以下是整体架构示意图:

+------------------+
|    orb-agent     |
|------------------|
| 网络扫描/资产发现 |
+------------------+
          |
          | grpc 通过NMAP/SNMP等扫描结果(IP、主机、服务)
          v
+------------------+
|      Diode       |
|------------------|
| 数据清洗/转换    |
| 安全传输/推送    |
+------------------+
          |
          | grpc 通过Diode插件标准化后的资产数据
          v
+------------------+
|     NetBox       |
|------------------|
| IPAM / DCIM 管理 |
| 资产持续更新     |
+------------------+

相关文档


Diode 安装

环境要求

  • NetBox 版本 ≥ 4.2.3
  • Docker 版本 ≥ 27.0.3

Docker 国内安装

建议安装最新版本,并使用 Docker Compose V2 进行部署。国内用户可参考南京大学镜像站获取安装帮助:

Docker Hub 国内加速配置

执行以下命令配置镜像加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker-0.unsee.tech",
    "https://docker-cf.registry.cyou",
    "https://docker.1panel.live"
  ]
}
EOF
systemctl enable docker
systemctl daemon-reload && sudo systemctl restart docker

环境介绍

  • 操作系统:Rocky Linux 9.7
  • NetBox 版本:4.4.8(源码部署)
  • NetBox 访问地址http://192.168.31.173

Docker 安装 Diode Server

步骤 1:创建工作目录并下载安装脚本

mkdir /opt/diode
cd /opt/diode
curl -sSfLo quickstart.sh https://raw.githubusercontent.com/netboxlabs/diode/release/diode-server/docker/scripts/quickstart.sh
chmod +x quickstart.sh

步骤 2:运行脚本并启动服务

./quickstart.sh http://192.168.31.173
docker compose up -d

注意: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 Server

步骤 1:安装 Diode 插件

进入 NetBox 安装目录并激活 Python 虚拟环境:

cd /opt/netbox
source venv/bin/activate
pip install netboxlabs-diode-netbox-plugin

步骤 2:配置插件

编辑配置文件 configuration/configuration.py,启用插件并配置参数:

PLUGINS = [
    "netbox_diode_plugin",
]

PLUGINS_CONFIG = {
    "netbox_diode_plugin": {
        "diode_target_override": "grpc://<diode-server:port>/diode",
        "diode_username": "netbox-to-diode",
        "netbox_to_diode_client_secret": "NT3yLOQamJpx545nSacRf4IN8VrJ2zmWHkyrD2SkbAc="
    },
}

注意netbox_to_diode_client_secret 需填写上一步获取的密钥。

步骤 3:执行数据库迁移并重启服务

cd /opt/netbox/netbox
./manage.py migrate netbox_diode_plugin
sudo systemctl restart netbox netbox-rq

orb Agent 部署

步骤 1:创建工作目录

mkdir /opt/orb
cd /opt/orb

步骤 2:创建配置文件

创建配置文件 agent.yaml,定义网络扫描任务:

orb:
  config_manager:
    active: local

backends:
  common:
    diode:
      target: grpc://192.168.31.173:8080/diode
      client_id: ${DIODE_CLIENT_ID}
      client_secret: ${DIODE_CLIENT_SECRET}
      agent_name: agent01
  network_discovery:

policies:
  network_discovery:
    discovery_1:
      config:
        schedule: "* * * * *"
        timeout: 5
        defaults:
          description: IP discovered by network discovery
          tags: [net-discovery, orb-agent]
      scope:
        targets:
          - 192.168.31.0/24
          - google.com
        fast_mode: True
        max_retries: 0

注意:将 target 中的 IP 地址替换为实际 Diode Server 的 IP。

配置结构解析

  • config_manager:配置源为本地文件,便于测试
  • backends:定义数据上报后端,通过 gRPC 将扫描结果推送到 Diode
  • policies:定义每分钟执行一次的网络发现任务,扫描指定子网和域名,并打上标签

步骤 3:创建 Docker Compose 文件

创建 docker-compose.yml 文件:

services:
  orb-agent:
    image: netboxlabs/orb-agent:latest
    container_name: orb-agent
    environment:
      DIODE_CLIENT_ID: "diode-ingest"
      DIODE_CLIENT_SECRET: "NT3yLOQamJpx545nSacRf4IN8VrJ2zmWHkyrD2SkbAc="
    volumes:
      - /opt/orb:/opt/orb
    command: ["run", "-c", "/opt/orb/agent.yaml"]
    restart: unless-stopped

注意DIODE_CLIENT_SECRET 需通过以下命令获取:

echo $(jq -r '.[] | select(.client_id == "diode-ingest") | .client_secret' /opt/diode/oauth2/client/client-credentials.json)

步骤 4:启动 orb Agent 服务

docker compose up -d
docker compose logs

成果展示

部署完成后,NetBox 中将自动更新扫描到的 IP 地址等资产信息,实现网络资产的持续同步与管理。

NetBox资产导入成果示例


总结

通过 orb-agent 和 Diode 的组合使用,可以实现:

  • ✅ 自动化网络资产发现
  • ✅ 实时数据同步到 NetBox
  • ✅ 标准化的资产管理流程
  • ✅ 降低人工维护成本



上一篇:拓竹科技3D打印方案解析:技术整合如何重塑硬件开发流程与效率
下一篇:40岁以上程序员的职业发展路径剖析:从架构师到自由职业的多元选择
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-1 13:02 , Processed in 0.428957 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表