rConfig · Go · Linux and Windows · 1.1.0

Distributed config collection. One agent per site, every device covered.

The rConfig Vector Agent is a single Go binary that runs as a systemd or Windows service at each site. It polls your network devices over SSH, SNMP, and HTTP, then ships the configs back to rConfig over outbound only TLS.

No firewall pinholes. No VPN.

A first-class component of rConfig, the open-source, enterprise-grade network configuration management platform.

  • Go 1.24
  • Linux · Windows
  • SSH · SNMP · HTTP
  • rConfig V8+

What is a network configuration collector agent?

A network configuration collector agent is a small piece of software you run at each site to poll local network devices, capture their configurations, and ship the results back to a central NCM server. The rConfig Vector Agent does this over outbound TLS, so no inbound firewall rules are needed.

THE PROBLEM

One central server cannot reach every device on your network. It never could.

Real networks are segmented, regional, and political. A device in Frankfurt cannot be polled from New York without a firewall exception, a jump host, or a long running VPN. A device in a tenant VRF cannot be reached from the management VRF at all. A device in an OT segment is supposed to be unreachable from IT by design.

Traditional network configuration management runs from one host. That host accumulates credentials, firewall rules, and blast radius. It also becomes the bottleneck: every SSH poll, every SNMP walk, every diff ingest queues behind a single collector.

rconfigvector, the rConfig Vector Agent, is a single Go binary you deploy next to the devices. It fetches jobs from rConfig over an outbound only API, talks to devices on the local segment, and ships results back through the same secure channel. No inbound firewall rules. No credentials leaving the site. No central bottleneck.

CAPABILITIES

Built for real networks, not lab networks

Six engineering decisions that turn a tiny Go binary into a restart safe, size bounded, outbound only collector for distributed network configuration management.

  • Dynamic worker pool, Go-native

    Workers scale up and down from the live settings snapshot. No restart, no deploy. Each agent scales up to 1,000 devices per instance, with a watchdog per worker so a hung SSH session never takes the fleet down with it.

  • SSH, SNMP, Uptime, HTTP: all real

    Full interactive shell SSH with enable mode, pager handling, and legacy device quirks (Avaya Ctrl+Y, HP ProCurve press any key, Cisco ETM MACs). The same protocol surface your core collector supports.

  • SQLite-backed durable queues

    Jobs and logs persist to local SQLite in WAL mode. Agent restarts, network blips, and server side outages do not drop work. Everything replays from disk when connectivity returns.

  • Outbound-only, key-authenticated

    The agent dials out to rConfig over TLS with an API key and optional strict SSL verification. No inbound ports. No credentials shipped to the core server. Your infosec team will actually approve it.

  • Size-bounded log sync, 413-aware

    Log batches are built by byte size, not just count. The client splits oversized batches, quarantines pathological records, and stores bounded previews of remote error bodies. No memory blow-ups on a bad HTML error page.

  • Graceful shutdown, no lost jobs

    SIGTERM closes the quit channel, workers finish the job in hand, the main goroutine blocks on sync.WaitGroup, and only then do DB handles close. Restart the service and you lose nothing.

USE CASES

Who actually runs the Vector Agent

Every scenario here is a real team running the agent today. Enterprises, MSPs, and OT side network operators. Pick the one that sounds most like you.

  1. Multi-site enterprise

    “I manage devices in 40 branch offices behind separate firewalls.”

    Drop a Vector Agent at each site. Each agent polls its local devices and syncs back over outbound only TLS. Zero inbound firewall rules, zero site-to-site VPN required.

    Read the docs: multi-site deployment models
  2. MSP

    “I am collecting configs from 300 customers on separate networks.”

    One agent per tenant, keyed to one rConfig server. Configs stay isolated per customer, credentials never leave the customer site, and billing is straightforward because every job is tagged to its agent.

    Read the docs: MSP and multi-tenant deployment
  3. OT / air gap

    “I need to pull configs from an air gapped OT network.”

    Run the agent inside the OT segment with a one way outbound rule to rConfig. SSH polls stay on the OT side; only signed, structured job results cross the boundary. No IT side credentials inside OT.

    Read the docs: manual install on air-gapped hosts
  4. Horizontal scale

    “I want to offload collection load from my central rConfig server.”

    Point heavy polling device groups at a dedicated Vector Agent. The core server only receives structured job results. No SSH wait time, no TCP state, no credential handling in the hot path.

    Read the docs: Vector architecture and data flow
  5. Windows estate

    “My Windows server room cannot run Linux. I still need config backups.”

    Ship the Windows build. Same binary semantics, same API contract, runs as a Windows service. Network engineers on Windows only estates get the same distributed collection story as their Linux peers.

    Read the docs: agent installation by operating system
  6. Audit and zero trust

    “I need zero trust proof of what ran, on which device, by whom.”

    Every job carries a ULID, timing data, and a structured log trail that syncs back to rConfig with bounded size limits. Compliance auditors get an evidence chain; engineers get a deterministic replay.

ARCHITECTURE

How the agent talks to rConfig, and why you want it that way

A split architecture: rConfig holds the intent, the agents hold the reach. The data path is outbound only TLS with durable local queues on the agent side.

data flow · 1 manager · N collectorsoutbound tls
CENTRAL CONTROLrConfig Vector Serverapi/agentsync · jobs · logs · settingsHOLDS INTENT · SOURCE OF TRUTHOUTBOUND TLS ONLYVECTOR AGENTParis10.42.0.0/16sshsnmphttpLinuxpar1par2par3par4LOCAL DEVICE FLEETVECTOR AGENTDublin10.77.0.0/16sshsnmphttpLinuxdub1dub2dub3dub4LOCAL DEVICE FLEETVECTOR AGENTNew York10.10.0.0/16sshsnmphttpWindowsnyc1nyc2nyc3nyc4LOCAL DEVICE FLEET…N
  1. Jobs flow outbound only

    Agents poll rConfig for work on a configurable ticker. The rConfig server never initiates a connection. Firewall rules stay one directional.

  2. Credentials stay local

    Connection parameters are delivered per job over TLS, used once, and never persisted on disk outside the SQLite queue. rConfig holds the source of truth.

  3. Results and logs flow through one channel

    Successful job output uploads to api/agentsync/jobs/push. Structured logs replay through api/agentsync/logs/ingest with size bounded batching and 413 aware retries.

  4. Every site scales independently

    Agents are stateless except for their local queue. Add a site, drop in a binary, bind an API key. No shared DB, no shared cache, no coordination surface.

IN PRODUCTION

What it looks like running in production

The Vector Agent is boring on purpose. systemd starts it, it syncs, it runs, it does not surprise you at 3am. Measured on a reference site collector.

systemctl status12 days uptime
$ systemctl status rconfigvector
● rconfigvector.service - rConfig Vector Agent 1.1.0
     Loaded: loaded (/etc/systemd/system/rconfigvector.service; enabled)
     Active: active (running) since Wed 2026-04-24 10:12:04 UTC; 12d ago
   Main PID: 42881 (rconfigvector)
      Tasks: 18 (limit: 4915)
     Memory: 62.4M
        CPU: 2min 41.103s
     CGroup: /system.slice/rconfigvector.service
             └─42881 /var/www/html/rconfigvector

Apr 24 10:12:04 par-collector-01 rconfigvector[42881]: ✓ API status check
Apr 24 10:12:04 par-collector-01 rconfigvector[42881]: ✓ Agent settings syncer started
Apr 24 10:12:04 par-collector-01 rconfigvector[42881]: ✓ Log syncer started
Apr 24 10:12:05 par-collector-01 rconfigvector[42881]: worker_count=8 queue_depth=42
logs.db · local queuesqlite · WAL
$ sqlite3 /var/www/html/vectoragent/logs/logs.db \
    "SELECT level, message, sent_at FROM logs ORDER BY id DESC LIMIT 5;"
INFO  Worker 3 processing job ID 41207   2026-04-24T10:14:02Z
INFO  Data sent to Vector Server for 41207 2026-04-24T10:14:02Z
INFO  Worker 5 processing job ID 41208   2026-04-24T10:14:03Z
WARN  413 from logs/ingest, splitting batch (n=88)  2026-04-24T10:14:03Z
INFO  Recovered batch: 2 sub-batches accepted, 0 quarantined 2026-04-24T10:14:04Z

Runtime characteristics

Measured on a 4 vCPU / 4 GB Linux collector, Go 1.24 build, 8 workers, 25 jobs/min sustained. Local queue uses SQLite WAL.

  • 18 MBCold-start memory

    Linux, idle worker pool

  • 62 MBSteady-state memory

    8 workers × 25 jobs/min

  • 14 MBBinary size

    linux/amd64, stripped

  • 241 msAvg SSH fetch

    Cisco IOS show run

  • < 2 sQueue recovery

    after agent restart

  • 64 KBLog batch size

    default LOG_MAX_BATCH_BYTES

  • 1 RTTTLS handshake

    reused http.Transport

ALTERNATIVES

How the Vector Agent compares to other remote collectors

All of these approaches have shipped in production networks. The comparison is about which one to reach for when you need distributed, restart safe, outbound only config collection.

  • Capability
    Outbound only firewall profile
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    no not supported
  • Capability
    Per-site credential isolation
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    no not supported
  • Capability
    Durable local queue
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    no not supported
  • Capability
    Dynamic worker scaling
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    no not supported
    Custom cron scripts
    no not supported
  • Capability
    SSH · SNMP · Uptime · HTTP
    Vector Agent
    yes supported
    Direct SSH from core
    yes supported
    RANCID / Oxidized
    SSH only
    Vendor collector proxy
    varies
    Custom cron scripts
    varies
  • Capability
    Interactive shell SSH quirks (Avaya, HP, Cisco)
    Vector Agent
    yes supported
    Direct SSH from core
    partial partially supported
    RANCID / Oxidized
    partial partially supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    no not supported
  • Capability
    Windows supported
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    yes supported
  • Capability
    Structured, size bounded log sync
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    partial partially supported
    Custom cron scripts
    no not supported
  • Capability
    Commercial support available
    Vector Agent
    yes supported
    Direct SSH from core
    no not supported
    RANCID / Oxidized
    no not supported
    Vendor collector proxy
    yes supported
    Custom cron scripts
    no not supported
Comparison of the rConfig Vector Agent against direct SSH from a central collector, RANCID and Oxidized, vendor collector proxies, and custom cron based scripts for distributed network configuration management.
CapabilityVector AgentDirect SSH from coreRANCID / OxidizedVendor collector proxyCustom cron scripts
Outbound only firewall profileyes supportedno not supportedno not supportedpartial partially supportedno not supported
Per-site credential isolationyes supportedno not supportedno not supportedpartial partially supportedno not supported
Durable local queueyes supportedno not supportedno not supportedpartial partially supportedno not supported
Dynamic worker scalingyes supportedno not supportedno not supportedno not supportedno not supported
SSH · SNMP · Uptime · HTTPyes supportedyes supportedSSH onlyvariesvaries
Interactive shell SSH quirks (Avaya, HP, Cisco)yes supportedpartial partially supportedpartial partially supportedpartial partially supportedno not supported
Windows supportedyes supportedno not supportedno not supportedpartial partially supportedyes supported
Structured, size bounded log syncyes supportedno not supportedno not supportedpartial partially supportedno not supported
Commercial support availableyes supportedno not supportedno not supportedyes supportedno not supported

If you run a flat single subnet lab, a central collector is probably fine. If your network is segmented, multi site, or multi tenant, a distributed agent is the only approach that scales without adding firewall rules forever.

INSTALL PATH

From nothing to polling devices: three steps

Expand any step to see the exact commands.

WHERE IT FITS

Built for rConfig. Backed by 14+ years of NCM engineering.

The Vector Agent is the distributed arm of rConfig, the network configuration management platform trusted by enterprises, MSPs, and government networks. rConfig owns the workflows: scheduling, diffs, compliance, change alerts, RBAC, the API surface. The agent owns the reach.

rConfig Vector

Back office

The NCM control plane: schedules, diffs, compliance, RBAC, and the API surface every other layer talks to.

Explore rConfig Vector

rConfig Vector Agent

Data plane

The distributed Go collector you're reading about right now. Pulls jobs from Vector, talks to local devices, ships results back over outbound TLS.

See the architecture

rConfig Vector Prism

Front office

The white-label customer portal. Tag-scoped, MFA-mandatory, fully branded: what your end customers actually log in to.

Explore rConfig Vector Prism
FAQ

Frequently asked questions

Answers for network engineers, NCM platform teams, and MSPs deploying the Vector Agent across distributed sites.

What is the rConfig Vector Agent?

The rConfig Vector Agent is a lightweight Go binary that runs as a systemd or Windows service at each site, tenant, or network segment you need to manage. It polls local network devices over SSH, SNMP, Uptime, and HTTP, stores work in a durable SQLite queue, and syncs configs and logs back to a central rConfig server over outbound-only TLS.

Why do I need a distributed collector at all?

Because real networks are segmented. A single central collector either accumulates inbound firewall exceptions from every site until the security team revolts, or it gives up on coverage. The Vector Agent replaces that model. Every site gets its own collector, the agents dial out to rConfig, and no inbound firewall rules are required.

Which platforms and protocols does it support?

Linux and Windows, amd64 and arm64. It speaks SSH (including full interactive-shell support with enable mode, pager handling, and legacy-device quirks for Cisco, Avaya, and HP ProCurve), SNMP, Uptime, and HTTP. The same protocol surface rConfig's core collector supports.

How does the agent stay safe behind restrictive firewalls?

The agent only makes outbound TLS connections to rConfig. It pulls jobs, pushes results, and streams logs, all on the same outbound channel. rConfig never initiates a connection to the agent. This matches the zero-trust posture most infosec teams already require for new agents.

What happens if the agent or the network goes down?

Nothing is lost. Jobs and logs persist in local SQLite with WAL journaling. On restart, the agent replays unfinished work. If the rConfig API is unreachable, the agent keeps collecting and queues results locally. The log syncer drains the backlog when connectivity returns, with 413-aware batch splitting and bounded retry amplification.

How does it scale?

Two axes. Vertically, each agent has a dynamic worker pool: you set worker_count on the rConfig side and the pool scales up or down without restart. Horizontally, you deploy more agents. Agents are stateless except for their local queue, so adding a site is a binary drop plus an API key, not a coordination exercise.

Can I run it in an air-gapped or OT network?

Yes. Put the agent inside the segment with a single outbound rule to the rConfig API. SSH credentials and device traffic stay local to the OT segment; only signed, structured job results cross the boundary. Many customers use this pattern for NIS2, NERC-CIP, and internal OT compliance.

Is it open source?

The agent ships as part of the rConfig MSP and Enterprise license. The architecture, interfaces, and operational guardrails are fully documented. For licensing details, see pricing or speak to the team.

How does it handle credentials?

Device connection parameters (username, password, SSH key material, enable secrets) are delivered per-job from rConfig over TLS. The agent uses them during the job, persists only the minimum needed for queue durability, and keeps them local to the site. Credentials never leave the site perimeter.

Which rConfig versions does it work with?

rConfig V8 and later, with the Vector-Server Laravel package installed. Earlier rConfig versions used a different collection model. If you're on V7 or below, contact the team about upgrading before deploying agents.

How do I install it?

Download the agent binary from the rConfig download page, run the installer script (it registers a systemd unit on Linux or a service on Windows), drop your API URL and agent key into the local .env, and start the service. Total install time is usually under a minute per site.

What observability does the agent give me?

Every job and error emits a structured log event to local SQLite, which the log syncer streams to rConfig under size-bounded batching. You get the job ID, ULID, worker ID, device, protocol, elapsed time, and outcome for every fetch. Pathological records that trigger repeated 413s get quarantined locally rather than silently dropped.

Ship config collection to every site, segment, and tenant

The Vector Agent is a single Go binary that runs as a systemd or Windows service. Deploy it anywhere your devices live, and let rConfig handle the rest.