Configure Cribl
- Open Data → Sources → Splunk HEC in Stream. Add or enable a Source with the desired listening port (8088 by default).
- Under Auth Tokens, create a dedicated token for Forge. Keep authentication enabled and scope allowed indexes if your routing uses them.
- Enable TLS Settings (Server Side) with a valid server certificate. Forge verifies the certificate; use a hostname covered by the certificate.
- Leave Splunk HEC acks disabled. Cribl’s synthetic HEC acknowledgements do not attest to processing or downstream delivery.
- Connect the Source to a Destination through QuickConnect or Routes. Configure any required processing and destination authentication. Consider Cribl persistent queues and monitor downstream backpressure according to your durability requirements.
- Save and Commit & Deploy where required by your deployment.
/services/collector endpoint is also supported, including reverse-proxy prefixes. Do not append a trailing slash. Use the worker’s ingest endpoint, not the Stream management UI or REST API. Forge requires HTTPS and rejects credential-bearing query strings, URL user information, redirects, and unsafe production network targets.
Connect Forge
Open Settings → Integrations → Cribl:- Paste the HEC endpoint URL and token.
- Choose categories, minimum severity, and detail level in Scope.
- Save, then select Test. Find the
security_export.testevent in Cribl Live Data or at the routed destination. - Select Resume to enable live exports. Check delivery health and verify that your downstream system receives the events.
Event format
Forge reuses its HEC encoder: each HTTP body contains newline-separated HEC objects withtime, host, source, sourcetype, fields, and event containing the complete Forge event. Defaults are source=forge, sourcetype=forge:security_event, and host=forge-control-plane. Cribl can use this metadata to route events. No index is forced by default.
Every Forge event contains forge_schema = security_event.v1, stable event_id, organization_id, UTC occurred_at, category, severity, action, outcome, and available identity, evidence, detail, and links. The schema and supported categories are shared with all security exports:
agent_eventagent_attributionidentity_activity(optional, unchecked by default)governance_signalfindingorg_auditmanaged_config_auditcompliance_assessmentgovernance_workflow
_raw, depending on your Source and processing settings. Forge does not install a Cribl Pack, SIEM parser, or detection rules.
Delivery, replay, and monitoring
- Acceptance boundary: Delivered means the Cribl HEC input returned success. It does not mean a downstream index committed the event. Monitor Cribl Source, pipeline, queue, and Destination health separately.
- Buffering: Forge keeps per-category cursors over retained source events and a delivery-attempt ledger. Failed delivery blocks that category’s cursor; other destinations remain independent. Availability of raw body detail follows source retention.
- Retries: Network failures (including a 30-second HTTP timeout), HTTP 408, 429, and 5xx responses are retryable. Permanent rejections or exhausted retries make the destination unhealthy and create a dead letter. Correct the connection, Test, and Resume to recover the failed batch.
- Replay: Use Replay 90d for retained historical data. Replay has separate cursors and does not rewind live export progress. Detailed bodies may no longer be available even when their event metadata remains.
- Deduplication: Delivery is at least once. Retries or intentional replay can repeat an event; deduplicate by
organization_idandevent_idin your Cribl pipeline or downstream system. Forge suppresses already completed batches within its delivery-state retention window. - Monitoring: The Forge UI exposes delivered/skipped counts, stream coverage, replay jobs, recent attempts, and unresolved dead letters. Existing export metrics and telemetry-loss alert rules include Cribl. Configure alert routing for your deployment.
Self-hosted verification without a cloud account
Use Cribl’s official Docker image and deployment instructions. A local Stream instance provides the actual receiver, processing engine, Live Data view, and destinations; no cloud account is needed. Complete the local registration/license flow required by your version. For reproducible transport checks, use a dedicated HEC Source with TLS and a task-local token, route it to a filesystem destination, and verify receivedevent_id values after each operation:
- Test the destination in Forge and inspect the test record in Cribl.
- Resume live delivery and compare Forge’s ledger with received records.
- Disable the Source token. Confirm Forge becomes unhealthy without advancing the failed category cursor.
- Re-enable/rotate the token, save the replacement in Forge, Test, and Resume. Confirm the failed batch recovers and its event IDs are unchanged.
- Run replay and verify repeated IDs rather than assuming exactly-once delivery. A successful new replay resolves an earlier delivery-failure dead letter when the delivered category, batch event bounds, and event count match the failed batch. A replay with different batch bounds leaves that failure visible for investigation.
References
- Cribl Splunk HEC Source and acknowledgement semantics
- Cribl persistent queues
- OpenTelemetry’s HEC exporter: shared HEC envelope, auth headers, batching, and retries.
- Cribl’s official Helm charts: real Worker Group deployment and HEC listener ports.