Skip to content
Ingestion

Collectors

Point your existing security telemetry at Rokkhe.

A collector is a registered source that sends events to Rokkhe. Registration is explicit: a source exists as a record with its own type, health, and failure queue.

Which sources are supported?

Each source type below has a native adapter that maps the vendor's payload into Rokkhe's alert shape. Register the source with one of its type values.

SourceType values
Splunksplunk, splunk_es
Elasticelastic, elasticsearch, elk, kibana, filebeat, ecs
Microsoft Sentinelsentinel, microsoft_sentinel, azure_sentinel, defender
CrowdStrike Falconcrowdstrike, falcon
OCSF and Amazon Security Lakeocsf, security_lake
AWS Security Hubaws_security_hub, securityhub, asff
Amazon GuardDutyaws_guardduty, guardduty
Google Security Command Centergoogle_scc, gcp_scc, scc
Wazuhwazuh
Syslogsyslog, rsyslog

Registering a source

bashcurl -X POST https://your.rokkhe/api/alerts/sources \
  -H 'authorization: Bearer <token>' \
  -H 'content-type: application/json' \
  -d '{"type": "splunk", "name": "prod-es"}'

GET /api/alerts/source-types lists what the deployment accepts. Each source belongs to a workspace, and every event it sends inherits that boundary.

Sending events

EndpointUse
POST /api/alerts/ingestA single event.
POST /api/alerts/ingest/batchMany events in one request. Prefer this for anything high-volume.
POST /api/alerts/sources/{id}/backfillsReplay a historical window through the same path as live traffic.

Native adapters normalize each vendor’s payload rather than flattening it, so a Splunk notable, a Sentinel incident, and a CrowdStrike detection keep their own fields while becoming comparable.

When ingestion fails

Rejected events are not dropped. They go to the source’s dead-letter queue with the reason attached, and can be retried once the cause is fixed.

EndpointUse
GET /api/alerts/sources/{id}/statusHealth and last-seen for one source.
GET /api/alerts/sources/{id}/dlqWhat failed, and why.
POST /api/alerts/sources/{id}/dlq/{failure_id}/retryReplay one failure after fixing it.
GET /api/alerts/quarantineEvents held back rather than rejected outright.
GET /api/alerts/ingest-telemetryThroughput and rejection counts across sources.
A quiet collector is a visible one

A source that stops sending shows in its status rather than simply disappearing from the queue. Silence is a state you can alert on, not an absence you have to notice.