Hub
Cloud

Kubernetes Audit Logs

Kubernetes API server audit log events — CRUD operations on cluster resources, health probes, RBAC access checks, watch streams, pod exec/attach, and API discovery across a multi-namespace production cluster.

Quick Start

uv tool install eventum-generator
git clone https://github.com/eventum-generator/content-packs.git
cd content-packs
eventum generate \
  --path generators/kubernetes-audit/generator.yml \
  --id kubernetes-audit \
  --live-mode true

Event Types

Event IDDescriptionFrequencyCategory
health-probeHealth/readiness/liveness probe checks~25%web
get-resourceGET single resource (pods, services, configmaps, secrets)~17%web
list-resourceLIST resources across namespaces~13%web
watch-resourceLong-running WATCH streams from controllers/operators~15%web
api-discoveryAPI discovery endpoints (/api, /apis, /openapi)~10%web
create-resourceCREATE new resources (pods, deployments, services)~5%web
update-resourceUPDATE/PATCH existing resources and status subresources~5%web
delete-resourceDELETE resources~2%web
rbac-accessRBAC operations (clusterroles, roles, bindings)~5%iam
exec-attachPod exec, attach, port-forward, and log access~3%process

Realism Features

  • Jinja2 base template macro eliminates boilerplate across 10 templates
  • Multi-namespace cluster — 8 namespaces with weighted selection
  • Error injection (~3%) — 403, 404, 409, 422 status codes
  • Realistic user agents — kubectl, kube-probe, controller-manager, operator SDKs
  • 5 identity types — human users, service accounts, system components
  • Full audit metadata — auditID, request/stage timestamps, annotations

Sample Output

{
  "@timestamp": "2026-03-06T14:30:45.123456+00:00",
  "agent": {
    "ephemeral_id": "d27511c8-9cd1-402c-8b1b-234abbd9dcae",
    "id": "6e730a0c-7da5-48ff-b4c9-f6c63844975d",
    "name": "kind-control-plane",
    "type": "filebeat",
    "version": "8.17.0"
  },
  "ecs": {
    "version": "8.17.0"
  },
  "data_stream": {
    "dataset": "kubernetes.audit_logs",
    "namespace": "default",
    "type": "logs"
  },
  "event": {
    "action": "get",
    "category": [
      "web"
    ],
    "dataset": "kubernetes.audit_logs",
    "kind": "event",
    "module": "kubernetes",
    "outcome": "success",
    "type": [
      "access"
    ]
  },
  "kubernetes": {
    "audit": {
      "auditID": "bcacfeaa-5ab5-48de-8bac-3a87d1474b6a",
      "apiVersion": "audit.k8s.io/v1",
      "kind": "Event",
      "level": "RequestResponse",
      "stage": "ResponseComplete",
      "verb": "get",
      "requestURI": "/api/v1/namespaces/production/pods/api-server-7b8c9d-x4k2m",
      "user": {
        "username": "alice.chen@acme.io",
        "groups": [
          "system:authenticated",
          "developers"
        ]
      },
      "sourceIPs": [
        "10.0.15.42"
      ],
      "userAgent": "kubectl/v1.29.2 (linux/amd64)",
      "responseStatus": {
        "metadata": {},
        "code": 200
      },
      "requestReceivedTimestamp": "2026-03-06T14:30:45.123456Z",
      "stageTimestamp": "2026-03-06T14:30:45.124567Z"
    }
  },
  "orchestrator": {
    "cluster": {
      "name": "production-cluster"
    },
    "type": "kubernetes"
  },
  "related": {
    "ip": [
      "10.0.15.42"
    ],
    "user": [
      "alice.chen@acme.io"
    ]
  },
  "source": {
    "ip": "10.0.15.42"
  },
  "tags": [
    "forwarded",
    "kubernetes-audit"
  ],
  "user": {
    "name": "alice.chen@acme.io"
  },
  "user_agent": {
    "original": "kubectl/v1.29.2 (linux/amd64)"
  }
}

Parameters

ParameterDefaultDescription
agent_id6e730a0c-...Filebeat agent UUID
agent_version8.17.0Elastic Agent version
agent_namekind-control-planeAgent hostname
cluster_nameproduction-clusterKubernetes cluster name
error_rate3Error injection rate (percentage, 0-100)

Related Generators