Advanced Features
Elevate your detection and parsing capabilities with sophisticated correlation and expression language features.
CEL Expressions
The where Within rules and filters, field relies on a tailored implementation of the Common Expression Language (CEL). A complete inventory of supported functional overloads is available in the CEL Overloads page.
Example: Multi-Condition Detection
where: >
exists("origin.ip") &&
!inCIDR("origin.ip", "10.0.0.0/8") &&
(startsWith("origin.user", "admin_") || equals("origin.user", "root"))Nested Correlation (correlation)
Rules can correlate across multiple indices and time windows using correlation.
Multiple Conditions
You can check for multiple distinct event patterns:
correlation:
- indexPattern: "v1-7-22-log-*"
count: 5
within: "now-1h"
with:
- { field: "action", operator: "filter_term", value: "failure" }
- indexPattern: "v1-7-22-log-*"
count: 1
within: "now-5m"
with:
- { field: "action", operator: "filter_term", value: "success" }OR Logic in Correlation
Use the or field within correlation to match either of two conditions:
correlation:
- indexPattern: "v1-7-22-log-*"
within: "now-12h"
count: 1
or:
- indexPattern: "v1-7-22-alert-*"
within: "now-24h"
count: 2Multi-Stage Filter Pipelines
Filters can go beyond one pass. You can establish several stages for the same dataType to handle complex multi-step parsing:
pipeline:
- dataTypes: [syslog]
steps:
- grok:
source: raw
patterns:
- fieldName: log.message
pattern: '{{.greedy}}'
- dataTypes: [syslog]
steps:
- json:
source: log.messageWith this modular approach, you can reuse shared parsing logic for various log variants.