Installation
Prerequisites
- Go 1.24 or later (if building from source)
- Docker (for containerized deployment)
- Prometheus (for metrics collection)
Docker Deployment (Easiest)
Pre-built Images
Pre-built Docker images are available on Docker Hub:
tenkenx/udprobe-collectortenkenx/udprobe-reflector
Run Pre-built Images
Run Reflector:
docker run -d \
--name udprobe-reflector \
-p 8100:8100 \
-p 8200:8200 \
tenkenx/udprobe-reflector
Run Collector:
docker run -d \
--name udprobe-collector \
-v /path/to/config.yaml:/etc/udprobe/config.yaml \
-p 5200:5200 \
tenkenx/udprobe-collector
From Source
Clone the Repository
git clone https://github.com/nsw3550/udprobe.git
cd udprobe
Build the Binaries
# Build collector
go build -o udprobe-collector ./cmd/collector
# Build reflector
go build -o udprobe-reflector ./cmd/reflector
Run the Binaries
# Run reflector
./udprobe-reflector
# Run collector (requires configuration)
./udprobe-collector -udprobe.config /path/to/config.yaml
Building Docker Images from Source
Build Reflector:
docker build -t udprobe-reflector -f cmd/reflector/Dockerfile .
Build Collector:
docker build -t udprobe-collector -f cmd/collector/Dockerfile .
Multi-Architecture Docker Builds
To build images for both amd64 and arm64 architectures:
# Create builder
docker buildx create --name multiarch-builder --use
docker buildx inspect --bootstrap
# Build and load locally
docker buildx build \
--platform linux/amd64,linux/arm64 \
--file cmd/reflector/Dockerfile \
--tag udprobe-reflector:latest \
--load \
.
# Or build and push to registry
docker buildx build \
--platform linux/amd64,linux/arm64 \
--file cmd/reflector/Dockerfile \
--tag your-registry/udprobe-reflector:latest \
--push \
.