Apache Kafka
Apache Kafka
Discover Kafka topics and sample messages for detection.
- Category
- Streaming
- Source type
- KAFKA
- Produces
- topic
Event streams carry the same personal data as the databases they feed, often with less scrutiny — a topic is a pipe, and nobody reads what goes through a pipe.
What you need to connect
A bootstrap host and port, and one of four connection modes:
| Mode | What you supply |
|---|---|
| None | Nothing — a plaintext broker, typically internal |
| SASL | Username, password, mechanism, and a CA certificate |
| Client certificate | An access key, certificate and CA bundle (mTLS) |
| REST Proxy | Username and password for a Kafka REST Proxy over HTTP(S) |
The REST Proxy mode needs no broker-protocol access at all, which is often the only way in from outside a cluster’s network.
What Classifyre reads
One asset per topic, whose content is a sample of messages from it. Scope by
topic allow- and denylist, cap the topic count, and choose whether internal
topics (__consumer_offsets and friends) are included.
Metadata on every asset
Asset kind · topic
| Field | Type | Always present | What it is |
|---|---|---|---|
| partition_count | integer | Yes | Number of partitions |
| replication_factor | integer | No | Replication factor |
| earliest_offset | integer | No | Sum of earliest offsets across partitions |
| latest_offset | integer | No | Sum of latest offsets across partitions |
| retention_ms | integer | No | Topic retention in milliseconds |
| cleanup_policy | string | No | Topic cleanup policy (delete/compact) |
Lineage
Lineage
This source records no lineage. Nothing in the system it reads describes data moving from one place to another, so no FLOW edges are produced. Related items are still linked — see Lineage & Relationships for what those links mean and how they differ from lineage.
Worth knowing
- Reading does not disturb consumers. Messages are sampled without committing offsets on your consumer groups.
- A dedicated read-only principal is the right credential — it needs describe and read on the topics you want.
Configuration
Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.
Required
Without these, the source will not save.
This section depends on which authentication method you pick — one of the following applies.
No Authentication
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| auth_mode | "NONE" | Yes | — | — |
| host | string | Yes | Kafka broker host name or IP (e.g. kafka.example.com) | — |
| port | integer | Yes | Kafka broker port | 9092 |
SASL (Username/Password)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| auth_mode | "SASL" | Yes | — | — |
| host | string | Yes | Kafka broker host name or IP (e.g. kafka.example.com) | — |
| port | integer | Yes | Kafka broker port | 9092 |
Client Certificate (mTLS)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| auth_mode | "CLIENT_CERT" | Yes | — | — |
| host | string | Yes | Kafka broker host name or IP (e.g. kafka.example.com) | — |
| port | integer | Yes | Kafka broker port | 9092 |
Kafka REST Proxy (Username/Password)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| auth_mode | "REST" | Yes | — | — |
| host | string | Yes | Kafka REST proxy host name or IP (e.g. kafka-rest.example.com) | — |
| port | integer | Yes | Kafka REST proxy port | 8082 |
Secrets
Stored encrypted and never shown again after you save them. See Configuration & Fields.
This section depends on which authentication method you pick — one of the following applies.
No Authentication
Secret fields · No Authentication: none for this source.
SASL (Username/Password)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| sasl_username | string | Yes | SASL username | — |
| sasl_password | string | Yes | SASL password | — |
| ca_certificate | string | No | PEM-encoded CA certificate used to verify the broker's TLS certificate — the provider's ca.pem. Required for private or self-signed CAs; leave empty to trust the system CA bundle. | — |
Client Certificate (mTLS)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| access_key | string | Yes | PEM-encoded client private key — the block starting with -----BEGIN PRIVATE KEY----- (Aiven: service.key) | — |
| access_certificate | string | Yes | PEM-encoded client certificate — the block starting with -----BEGIN CERTIFICATE----- (Aiven: service.cert) | — |
| ca_certificate | string | No | PEM-encoded CA certificate used to verify the broker's TLS certificate — the provider's ca.pem. Required for private or self-signed CAs; leave empty to trust the system CA bundle. | — |
Kafka REST Proxy (Username/Password)
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| username | string | Yes | REST proxy username | — |
| password | string | Yes | REST proxy password | — |
Optional
Everything you can tune. Sensible defaults apply when you leave them alone.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| optional | object | No | —no extra properties | — |
| connection | object | No | Kafka client connection and security options.no extra properties | — |
| connection.request_timeout_ms | integer | No | Client request timeout in millisecondsmin 1000 | 30000 |
| connection.rest_use_tls | boolean | No | REST proxy only: call the proxy over HTTPS. Turn off for a plain-HTTP proxy (e.g. a local Karapace). | true |
| connection.sasl_mechanism | enum | No | SASL mechanism used when security_protocol is SASL_* Allowed: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 | PLAIN |
| connection.security_protocol | enum | No | Kafka client security protocol. Leave unset to derive it from the authentication mode (SASL → SASL_SSL, Client Certificate → SSL, No Authentication → PLAINTEXT); set it only to override, e.g. SASL_PLAINTEXT for a SASL broker without TLS. Allowed: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL | — |
| scope | object | No | Kafka topic selection scope.no extra properties | — |
| scope.exclude_topics | array | No | Topic denylist | — |
| scope.exclude_topics[] | string | No | — | — |
| scope.include_internal | boolean | No | Include internal topics (names starting with __) | false |
| scope.include_topics | array | No | Optional topic allowlist | — |
| scope.include_topics[] | string | No | — | — |
| scope.topic_limit | integer | No | Optional cap on number of topic assetsmin 1 | — |