Skip to content

SIEM Integration Overview

Arbitex generates a structured audit event for every request processed through the gateway, every DLP trigger, every authentication event, and every account change. These events can be streamed in real time to your SIEM using one or more SIEM connectors running inside the Arbitex platform.


┌──────────────────────────────────────────┐
│ Arbitex Platform │
│ │
Requests ─────────►│ Gateway → Policy Engine → DLP → Audit │
│ │ │
│ Event Publisher │
│ │ │
│ ┌─────────────┼──────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ Splunk Sentinel Elastic │
│ HEC (DCR/DCE) Bulk API │
│ │ │ │ │
│ Datadog Sumo Logic │
│ Logs API HTTP Source │
└──────────────────────────────────────────┘

When an audit event is generated, it is dispatched to every configured and healthy SIEM connector. Connectors operate independently — a failure in one connector does not affect delivery to others. Each connector maintains its own in-memory buffer, retry queue, and dead letter file.


All events are formatted as Open Cybersecurity Schema Framework (OCSF) v1.1 JSON. OCSF provides a vendor-neutral, normalized schema that allows events from different systems to be correlated and analyzed in a consistent structure without per-source parsing rules.

Most SIEM platforms require custom parsers or mapping rules for each log source they ingest. OCSF removes this step by providing a schema that maps directly to common SIEM data models. When Arbitex events arrive in OCSF format, your SIEM can apply standard detection rules and dashboards designed for OCSF-compliant sources without additional transformation.

Core OCSF fields present in every Arbitex event

Section titled “Core OCSF fields present in every Arbitex event”
FieldDescription
class_uidOCSF event class integer identifier
class_nameHuman-readable event class name
category_uidOCSF category integer identifier
category_nameHuman-readable category name
activity_idActivity type within the class
activity_nameHuman-readable activity name
severity_idSeverity integer (0=Unknown, 1=Informational, 2=Low, 3=Medium, 4=High, 5=Critical)
severityHuman-readable severity
status_idOutcome integer (0=Unknown, 1=Success, 2=Failure)
statusHuman-readable outcome
timeEvent timestamp, epoch milliseconds
messageHuman-readable event description
metadata.versionOCSF schema version (1.1.0)
metadata.product.nameAlways Arbitex
FieldDescription
actor.user.uidInternal user ID
actor.user.email_addrUser email address
actor.user.nameUser display name
actor.org.uidOrganization ID
actor.org.nameOrganization name
FieldDescription
src_endpoint.ipSource IP address of the request
src_endpoint.location.countryISO 3166-1 alpha-2 country code
src_endpoint.location.cityCity name (GeoIP enrichment)
src_endpoint.location.latLatitude (GeoIP enrichment)
src_endpoint.location.longLongitude (GeoIP enrichment)
src_endpoint.is_anonymousTrue if the IP is a known VPN/proxy/Tor exit

OCSF classclass_uidTrigger
API Activity6003Every request proxied through the gateway
Security Finding2001DLP rule trigger — BLOCK, REDACT, CANCEL, or SKIP
Authentication3002Login, SSO callback, token exchange, logout
Account Change3001User invite, group membership change, role assignment

ConnectorProtocolAuthenticationFormatStatus
Splunk HECHTTPS POSTHEC tokenOCSF JSON in HEC envelopeAvailable
Microsoft SentinelHTTPS POST (DCR Log Ingestion API)Azure AD client credentialsOCSF JSON arrayAvailable
ElasticsearchHTTPS Bulk APIAPI key or basic authOCSF NDJSONAvailable
DatadogHTTPS Logs Intake API v2API keyOCSF JSON in log envelopeAvailable
Sumo LogicHTTPS HTTP SourceURL-embedded authOCSF NDJSONAvailable
IBM QRadarSyslog CEF over TLSTLS client certCEFComing soon
Palo Alto Cortex XSIAMHTTPSAPI keyOCSF JSONComing soon

Multiple connectors can be active simultaneously. Events are delivered to all healthy connectors.


Global connectors are configured at the platform level using environment variables on the Arbitex platform deployment. They receive events from all organizations. This is the default and most common configuration — set once, stream everything.

Configure global connectors by setting the connector-specific environment variables described in each connector guide.

Any organization can configure dedicated SIEM connectors that receive only that org’s audit events, independently of the global connector configuration. Per-org connectors are stored in the siem_configs database table with Fernet-encrypted credential payloads.

Per-org connectors support all seven connector types: Splunk HEC, Microsoft Sentinel, Elasticsearch, Datadog, Sumo Logic, Cortex XSIAM, and IBM QRadar.

For full configuration reference including config schema per connector type, Fernet encryption, and delivery status tracking, see the Per-org SIEM configuration guide.

Organizations on dedicated Outpost deployments can also configure connector-level SIEM sinks inside the Outpost. See the Outpost deployment guide.


All connectors share the same delivery model:

  • Buffering: Events are accumulated in memory and flushed when the buffer reaches the configured batch size (default: 100 events) or the flush interval elapses (default: 5 seconds).
  • Retry: On transient HTTP errors (429, 503) or connection failures, the connector retries with exponential backoff: 1s, 2s, 4s, up to the configured maximum retries (default: 3 attempts).
  • Dead letter queue: Events that cannot be delivered after all retries are written to a JSONL file on the platform host. Each connector has its own dead letter path. Dead letter events are not automatically replayed — they require manual intervention.
  • Independence: Each connector runs independently. A failure in one connector does not affect delivery to other connectors or block request processing.

There is no cross-connector deduplication or ordered delivery guarantee. Events may arrive slightly out of order if a connector retries a batch while a subsequent batch is already delivered.