Ports & networking
The collector listens on a handful of local ports on the host it runs on — they're yours, not ours. Nothing here phones home except the outbound HTTPS export of your telemetry to the Trefur platform.
The core listeners
A default collector exposes four core listeners:
| Default | Purpose | Config key | Note |
|---|---|---|---|
:4317 | OTLP gRPC receiver | inputs.otel.grpc_addr | Standard OpenTelemetry OTLP/gRPC port |
:4318 | OTLP HTTP receiver | inputs.otel.http_addr | Standard OpenTelemetry OTLP/HTTP port |
:9090 | SDK telemetry receiver | inputs.sdk_proxy.addr | Trefur SDKs POST telemetry here |
:8888 | Health + Prometheus metrics | health.addr | /health, /metrics, /metrics/prometheus |
:4317 and :4318 are the standard OpenTelemetry OTLP ports, so any existing OTLP exporter you already run points at the collector with zero changes.
Optional input listeners
When you enable the optional capture inputs, each opens its own configurable listener:
| Default | Input | Config key |
|---|---|---|
:8889 | Shell hook | inputs.shell_hook.addr |
:8890 | HTTP forward proxy | inputs.http_proxy.addr |
:9091 | LLM reverse proxy | inputs.llm_proxy.addr |
:9092 | MCP proxy | inputs.mcp_proxy.addr |
:9053 | DNS proxy (UDP + TCP) | inputs.dns_proxy.addr |
:9094 | WebSocket proxy | inputs.ws_proxy.addr |
:9095 | Chrome DevTools (CDP) proxy | inputs.cdp_proxy.addr |
These only listen when you turn the corresponding input on.
Everything is configurable
Every listener is fully configurable — set the matching config key to any host:port. For example, to bind the OTLP HTTP receiver to a custom port on all interfaces:
inputs:
otel:
http_addr: "0.0.0.0:14318" # any free port, any interfaceA port clash fails fast — with a clear message
If a port the collector needs is already taken on the host, it does not silently keep running deaf on that listener. It fails loudly at startup with a message that names the exact config key to change. For example, if something already holds :4318:
OTEL HTTP receiver: cannot bind :4318: listen tcp :4318: bind: address
already in use — if the port is already in use, set inputs.otel.http_addr
in the collector config to a free portThe fix is exactly what the message says — point that input at a free port:
inputs:
otel:
http_addr: ":14318" # any free port:8889–:8897) and logs which port it landed on, rather than failing startup. Every ingest-path listener fails fast as above.Networking summary
- All listeners are local to the host — the collector doesn't expose anything to the public internet on its own.
- The only outbound connection is the HTTPS export of your telemetry to the Trefur platform.
- Standard OTLP ports mean existing OpenTelemetry exporters work unchanged.
- Any clash is a loud, actionable startup failure — never a silent half-running collector.
Next
- Configuration reference — every YAML field, secrets, TLS, and buffering.
- Collector quickstart — install and run in 30 seconds with safe default ports.
- Collector inputs — what each listener captures.