Blog

Your clusters, hosts and Macs in Splunk Enterprise Security: the CIM mappings in Collectord 26.10

5 min read Back to all posts
splunk enterprise security common information model cim data models collectord kubernetes openshift docker linux macos splunk

Your security team works in Splunk Enterprise Security, and Enterprise Security reads data models. Collectord already forwards the SSH logins on your nodes, your clusters’ API audit, your hosts’ stats and your Macs’ events, but none of it was mapped to the Common Information Model (CIM), so Enterprise Security could not see it. In Collectord 26.10, the Monitoring Kubernetes, OpenShift, Docker, Linux and macOS apps map that data with eventtypes, tags and search-time fields. Nothing changes at collection, so the mapping adds nothing to your Splunk license; the only cost is the data model acceleration you turn on.

What maps where

Data modelKubernetes and OpenShiftDockerLinuxmacOS
Authenticationsshd and sudo on a node, unauthenticated API requests (401), OpenShift’s OAuth loginssshd and sudosshd and sudoSSH, sudo, console logins
ChangeAPI server writes, service accounts (on OpenShift also users, identities and groups)containers restarted through the APIsecurity settings, local accounts, launch and login items, applications
Performancenode stats, filesystemshost stats, filesystemshost stats, filesystems
Compute_InventoryNode objectshost stats, hypervisorhost stats, hypervisor
Endpointlistening ports (off by default)listening ports (off by default)listening ports (off by default)launchd services, listening ports
VulnerabilitiesCPU vulnerabilitiesCPU vulnerabilities
Updatespending package updatespending software updates
Network_Trafficeach process’s connections

Nodes and hosts

Performance takes every host stats and filesystem record, with the node or host as dest. Compute_Inventory takes the operating system, CPUs and memory, so Enterprise Security’s System Center lists every node’s and host’s operating system. sudo maps to Privileged_Authentication, with the user who ran it as src_user and the target user as user.

Enterprise Security's System center over the last 24 hours: the operating systems of the nodes and hosts - Ubuntu 24.04.5 LTS, AlmaLinux 9.8, Alpine Linux, Red Hat Enterprise Linux CoreOS and Linux - and the average CPU load of each system over time

Access Center then shows the SSH logins and sudo on each node, allowed and refused:

Enterprise Security's Access center over the last 4 hours: two authentication apps, sshd and sudo, six sources, three destinations and seven users, access over time by action with successes and failures, access over time by app, and the top sources, two Linux nodes logging in to each other

Listening ports are off by default. Each listening socket adds an event every 30 seconds to the Endpoint summary that Enterprise Security accelerates: about 127,000 a day for a host with 44 listeners. To map them, enable the app’s eventtype, such as linux_listening_port, in Settings > Event types.

The cluster’s API audit

Once you forward the audit logs, Change takes every write the API server completed, refused or failed: the caller as user, the object, the verb as command, and status success or failure. Leases, events, status updates, exec and dry runs stay out. On OpenShift, a request that kube-apiserver and an aggregated API server both recorded is counted once.

Account Management then lists the service accounts the clusters’ controllers and administrators created and changed:

Enterprise Security's Account management over the last 24 hours: account changes over time, created and modified, and the source users behind them - the clusters' service account controllers, kubernetes-admin and system:admin

Splunk ES Content Update’s Kubernetes detections read the raw audit through its kube_audit macro, not the CIM. Our audit events carry the fields they read, so point the macro at them (OpenShift’s is on its page):

text
1`macro_kubernetes_audit_logs` NOT stage=RequestReceived

CPU vulnerabilities and container restarts

Collectord checks /sys/devices/system/cpu/vulnerabilities every hour and, while a node reports one, logs an ALARM-ON "cpu-vulnerabilities" line in its own output. Monitoring Kubernetes, OpenShift and Docker map that line to Vulnerabilities, each vulnerable entry as signature (spectre_v2, mds, …) with its CVEs as cve, so Enterprise Security’s Vulnerability Center lists them.

Vulnerability Search then shows each node with its vulnerability and CVE:

Enterprise Security's Vulnerability search over the last 30 days: CPU vulnerability records, category cpu and severity medium, for spec_store_bypass with CVE-2018-3639 on an OpenShift node, two Docker hosts and a Kubernetes node

Monitoring Docker also maps a container restarted through the API (docker restart) to Change’s Endpoint_Restarts. A restart policy logs a die and a start instead, so its restarts are not mapped.

Updates and Macs

Monitoring Linux maps each package the hourly pending-updates report lists to Updates, and Monitoring macOS the software updates macOS lists as pending, so Enterprise Security’s Update Center lists both. On a Mac, a deleted account is also tagged delete, which Enterprise Security’s Access - Account Deleted rule reads.

Enterprise Security's Update center over the last 30 days: 36 available updates, and the systems needing them - two Linux nodes and three Macs

What a workload cannot fake

Analysts act on these records, so the mapping trusts sources, not text. sshd counts only when it writes as root (on a Mac, by its path), the API audit only from the API server’s own container or the control-plane nodes’ audit files, and CPU vulnerabilities only from Collectord’s own container.

Set it up

  1. Install the Splunk Common Information Model add-on (Splunk_SA_CIM) on your search heads. Splunk Enterprise Security ships with it.
  2. Point the add-on’s index macros for the models you use, such as cim_Authentication_indexes, at the indexes Collectord sends to: the same indexes as the app’s base macro, for example (index=kubernetes).
  3. Keep host stats in an events index. Data models search events, so stats sent only to a metrics index (indexType = metrics) leave Performance empty, and on Docker and Linux Compute_Inventory too. The default (events) and both work.
  4. Upgrade Collectord on your nodes and hosts. It sends the command name, unit and uid since 26.10.1, and an older Collectord’s sshd and sudo lines are not mapped.
  5. If you accelerated a data model before upgrading Monitoring Kubernetes, OpenShift or Docker, rebuild its summary (Settings › Data models, then Rebuild on the model) so it follows the new mapping.

To check the mapping, count a node’s CPU records through the data model:

text
1| tstats count from datamodel=Performance where nodename=All_Performance.CPU by All_Performance.dest

What it leaves out

  • No data model has pod, namespace, container or cluster fields, so on Kubernetes and OpenShift the mapping covers nodes, the API audit and CPU vulnerabilities.
  • Managed control planes (EKS, GKE, AKS) keep the audit in the cloud, so there is nothing on the nodes to map.
  • A Mac sends its stats to a metrics index only, so Performance and Compute_Inventory are not mapped on macOS.
  • Each sshd line is one event, not one attempt.
  • On macOS 15 and later, sudo logs only its refusals unless you turn its log_allowed option back on.
  • If Collectord runs in another namespace on Kubernetes or OpenShift, set yours in the kubernetes_cpu_vulnerabilities or openshift_cpu_vulnerabilities event type, or Vulnerabilities stays empty.

Each page has every field and every exception: Common Information Model for Kubernetes, OpenShift, Docker, Linux and macOS.

About Outcold Solutions

Outcold Solutions builds applications for Splunk Enterprise and Splunk Cloud. Our certified monitoring solutions, powered by Collectord, bring logs, metrics and events from Kubernetes, OpenShift and Docker clusters, Linux and macOS hosts, and Windows containers into Splunk, with the dashboards and alerts that help developers watch their applications and operators keep their clusters healthy. Our search apps query Kubernetes and AWS live from the search bar, with nothing to ingest, and OS AI Agent puts the model you choose to work inside Splunk, with each user's own permissions. Since 2017 we have been helping businesses keep what they need to answer complex questions about their infrastructure in one place.

Red Hat
Splunk
AWS