Observables
Observables in Alert Manager Enterprise (AME) is a powerful feature that collects, manages, and enriches identity and asset data using Splunk Alert Actions. This data is stored in tenant-specific KV Store collections, enabling dynamic enrichment of AME events and Splunk search results.
An AME subscription is required to manage more than 100 assets and 100 identities. The free version supports up to 100 of each.
What Are Observables?
Observables allow AME to gather and organize critical data—like user identities (e.g., usernames, roles) and asset details (e.g., device IPs, hostnames)—through a Splunk Alert Action. This data is stored in KV Store collections, separated by tenant, and can be used to add context to security and IT operations, making investigations and event management more effective.
Key Capabilities
- Data Collection: Runs scheduled activities to continueously import and update your asset and identity data into AME, through configurable Alert Actions.
- Tenant-Specific Storage: Stores data in KV Store collections, isolated per tenant for secure management.
- Event Enrichment: Adds context to AME events, like user roles or asset ownership, for better insights.
- Search Enhancement: Integrates with Splunk lookups to enrich your event data for improved accuracy and results.
- Customizable Fields: AME observables support customisable fields, allowing you to bring in any observable metadata that makes sense for your needs
Common Use Cases
- Event Investigation: Enrich AME events with details like "Who owns this device?" or "What’s this user’s role?"
- Event Enrichment: Enhance event handling with added details, such as asset criticality or user department.
- Search Optimization: Improve Splunk search precision by linking observable data to lookup tables.
- Contextual Management: Bring in data from your CMDB or asset management system that makes sense for your environment. For example: upcoming changes or outage windows. Correlate these against your events for automatic management/closure.
- Observable History: Track the presence of an observable accross multiple events, allowing analysts to better investigations and root cause analysis.
Getting Started with Observables
Set up Observables by creating a Splunk search and Alert Action to ingest data, then refine, group, and manage it in AME. Follow these steps:
1. Create a Splunk Search to Collect Observable Data
Write a Splunk search to gather asset or identity data, including required and optional fields for ingestion into AME Observables. Trigger this search with the Ingest Observables
Alert Action.
Required and Optional Fields
Field | Required? | Description |
---|---|---|
uid | Yes | Unique identifier (e.g., server01 , user123 ) to merge data from multiple searches |
observable_criticality | No | Criticality level (e.g., high , low ) to influence handling in AME; defaults to medium if unset |
observable_state | No | State of the observable: existing (default) or removed (deletes it, bypassing age-out) |
Other Fields | No | Custom data fields (e.g., ip , name , fqdn ); only use letters, numbers, and underscores |
index=assetdata sourcetype=cmdb
| eval uid=coalesce(hostname, fqdn, ip)
| table uid hostname ip fqdn
Set this search to trigger the Ingest Observables
Alert Action, targeting a tenant’s KV Store collection.
2. Configure the Ingest Observables Alert Action
In Splunk, add the Ingest Observables
Alert Action to your search and configure it:
Field | Description |
---|---|
Tenant-UID | Choose the tenant (e.g., Default Tenant ) to store data |
Observable-Type | Select Asset or Identity to categorize the data |
Confidence | Set a value (0–100) to prioritize this source; higher values overwrite existing data (see below) |
Confidence Level Explained
Confidence levels allow you to manage conflicts and merge attributes on observables when you have assets or identities appearing in multiple sources. It is not uncommon for an environment to have; CMDB data, LDAP data as well as inventory from vulnerability scanners in Splunk. Using confidence levels you can merge the attributes returned by these lists for an observable, merging the attributes accordingly.
- Range: 0–100 (e.g., 90 for high-confidence sources).
- Behavior: Higher confidence overwrites existing fields. If confidence matches, the new value wins if the source name alphabetically follows the existing one (e.g.,
SourceB
beatsSourceA
).
Example
- Results for one asset from three different sources:
Search Name | UID | Host | Country | OS | Memory | CPU Cores | IP | Confidence |
---|---|---|---|---|---|---|---|---|
Network Scanner | server01 | server01 | USA | (empty) | (empty) | (empty) | 192.168.1.10 | 90 |
CMDB | server01 | server01 | (empty) | Windows 11 | 16GB | 8 | 192.168.1.11 | 70 |
Hardware Monitor | server01 | server01 | Canada | Windows 10 | 32GB | 4 | (empty) | 50 |
- Merged Results for Asset
uid = "server01"
:
Field | Value | Confidence | Source | Origin Type |
---|---|---|---|---|
uid | server01 | 90 | Network Scanner | search |
host | server01 | 90 | Network Scanner | search |
country | USA | 90 | Network Scanner | search |
os | Windows 11 | 70 | CMDB | search |
memory | 16GB | 70 | CMDB | search |
cpu_cores | 8 | 70 | CMDB | search |
ip | 192.168.1.10 | 90 | Network Scanner | search |
observable_priority | high | 90 | Network Scanner | search |
observable_state | existing | 90 | Network Scanner | search |
Avoid identical confidence values across sources to prevent unexpected overwrites.
3. Refine Observables
Use the Refinements
tab in AME’s Observables
menu to tweak ingested data with rules. Refinement rules allow you to transform your data post ingestion, using an easy to use visual interface.
Example Use-Case:
Set a normalised platform for your operating systems. Your analysts are interested on whether a computing resource is running some version of Windows, or some flavour of Unix, such as AIX, HPUX, OpenBSD etc. For your purposuses you want to categorise these into either: Windows on Unix
The refinement functionality is intended to transform and contextualise your observables post collection. For pre-ingestion normalisation, refer to the search section above, where you can use the Splunk command pallette, including eval
to perform transformations on your data
How to Add a Refinement Rule
- Go to
Observables
>Refinements
. - Click
Add Asset Refinement Rule
orAdd Identity Refinement Rule
. - Fill in:
Field | Description | Example |
---|---|---|
Name | Unique rule name. | Standardize OS |
Tenant | Target tenant. | default |
Description | Optional purpose note. | Set OS Version |
Scope | Asset or Identity . | Asset |
Confidence | Priority (higher evaluated first). | 95 |
Condition | Logical filter (e.g., os matches Windows Versions ) | {{os = "Windows NT 10.0" OR os = "Windows NT 10 Build 22621"}} |
Field Set | New field value to apply. | os = Windows 11 |
Example
Standardize OS values for assets where os
is Windows NT 10.0
or Windows NT 10 Build 22621
to Windows 11
.
- Input values:
uid | host | os | ip | confidence | source | origin_type |
---|---|---|---|---|---|---|
host1 | host1 | Windows NT 10 Build 22621 | 192.168.1.20 | 85 | OS Scanner | search |
host2 | host2 | Windows NT 10.0 | 192.168.1.21 | 60 | Legacy System | search |
- Refined Results for Hosts:
uid | host | os | ip | source | origin_type |
---|---|---|---|---|---|
host1 | host1 | Windows 11 | 192.168.1.20 | Standardize OS | refinement |
host2 | host2 | Windows 11 | 192.168.1.21 | Standardize OS | refinement |
- Click
Recalculate
to apply rules instantly.
4. Group Observables
Organize observables into groups via the Groups
tab to categorize and enrich data based on common attributes. Observable groups allows you to create additional context for your observables using Names and Descriptions.
Example Use-Case:
- Add all assets that exist in a specific region to a group. Eg: Add all computing resources in Germany to the DE Asset Group
- Set groups for different PCI network zones: For example PCI customers can add groups for Cardholder Data Environment (CDE) zones, DMZ, Corporate and Wireless zones
How to Create a Group
- Go to
Observables
>Groups
. - Click
Add Asset Group
orAdd Identity Group
. - Define:
- Name: e.g.,
DE Assets
. - Condition: e.g.,
country = "DE"
- Name: e.g.,
- Define a "catch-all" rule for all others
- Use
Reorder
to set priority
- Use
Preview
to check the resulting grouping. Note that only the first 1000 assets are shown.
Recalculate
for immediate updates.
Groups update daily or on recalculation, appearing as Aggregated by observable-group
in the UI. For example, grouping assets by country (e.g., USA
, Germany
) helps organize data for regional analysis.
Example: Group five hosts across three countries by the country
field.
- Asset Data for Hosts:
uid | host | country |
---|---|---|
host1 | host1 | DE |
host2 | host2 | DE |
host3 | host3 | CH |
host4 | host4 | AT |
host5 | host5 | empty |
- Output after group assignment:
observable_group | uid | host | country |
---|---|---|---|
DE Assets | host1 | host1 | DE |
DE Assets | host2 | host2 | DE |
CH Assets | host3 | host3 | CH |
AT Assets | host4 | host4 | AT |
Missed Assets | host5 | host5 | empty |
5. Create Reporting Groups
For reporting purposes Observable Groups can be further grouped for reporting purposes.
Reporting groups can be simple groups, but also supports nesting groups to cover more complex reporting requirements.
To create a new Observable Reporting Group click the `Add Asset Observable Reporting Group button. A modal will open:
Select Observables Group and/or Observable Reporting Groups to add them to the new group.
6. Configure Observable Settings
To prevent stale and decommissioned assets from taking up space in your collections you can setup aging rules that will age-out observables if not seen for a period of time. Manage retention in the Configuration
tab
Setting | Default | Description |
---|---|---|
Days Before Age-Out | 90 | Data expires after 90 days unless re-detected |
Adjust this to balance storage and relevance.
7. Explore and Manage Observables
AME Provides a rich graphical interface to manage your observables. You can obtain a quick view of any observable by adding a filter to sort and graph by. Use-cases include, quickly obtaining a view your identities based on a field in either the data or meta data, eg: What percentage of assets are without an owner.
In the Observables
menu, use the Overview
tab to:
- Filter: Use
Observable Type Filter
orAdd filter
. - Visualize: Add charts with
Add chart
(toggle withHide Charts
). - View Details: Click the icon on the right of each row to access in-depth info.