xConnect Bridge
This platform component is used to enable private/isolated network's agents access to the xConnect API. This is only required for environments that are monitoring devices that do not have a direct route or unfettered access to the internet.
It will host a squid server to proxy HTTP(S) traffic from the agents to the *.senecaxconnect.com API endpoints.
graph LR
A(Edge Devices) --> B(Agent)
B --> A
B -->|HTTPS|C(Bridge - Optional)
C -->|HTTPS|D(xConnect Cloud Dashboard - Azure);
style C fill:#04acec;
linkStyle default stroke-width:2px,fill:none,stroke:black;
Requirements
- Host must have northbound and southbound network access
- Northbound - Route to internet (specifically, *.senecaxconnect.com)
- Southbound - Route to private network where devices being monitored are
- Minimum System Requirements:
- Physical or Virtual Machine
- Linux-based distribution that supports docker, podman, or kubernetes
- 2 CPU Cores
- 4 GB RAM
Deploying with Docker
-
Note: Take note of the IP address of the host system for the xConnect Bridge
-
Install docker ce if not already installed
- Install docker-compose if not already installed
curl https://download.senecaxconnect.com/files/Bridge/xconnectbridge.conf -o xconnectbridge.conf
Docker Compose
curl https://download.senecaxconnect.com/files/Bridge/docker-compose.yml -o docker-compose.yml
docker compose up -d
Docker Swarm
- Ensure Docker Swarm mode is enabled (
docker swarm init
) curl https://download.senecaxconnect.com/files/Bridge/docker-compose.yml -o docker-compose.yml
docker stack deploy -c docker-compose.yml xconnect
Deploying with Kubernetes
curl https://download.senecaxconnect.com/files/Bridge/xconnectbridge.conf -o xconnectbridge.conf
kubectl create configmap squid-conf --from-file=xconnectbridge.conf
kubectl apply -f https://download.senecaxconnect.com/files/Bridge/xconnectbridge-k8s.yaml
Configure Agents to leverage the xConnect Bridge
-
Note: default port that the agent will try to connect with is 8884 unless changed in docker-compose.yml
-
curl --request POST 'http://localhost:8886/updateProfile' --header 'Content-Type: application/json' --data-raw '{"profile": {"proxy_host": "<IP_ADDRESS_OF_BRIDGE_HOST>"}}'
Security
- This bridge is a simple forward proxy server and is restricted to only work for xconnect services.
- Only traffic destined for *.senecaxconnect.com over https will be allowed through
- All traffic not destined for *.senecaxconnect.com will be denied