Repository navigation
[auditd] Field schema normalization: align auditd and auditd_manager namespaces #19080
Description
Problem
The auditd (Auditd Logs) and auditd_manager (Auditd Manager) integrations produce incompatible field namespaces:
auditd→auditd.log.*(grok/regex ingest pipeline, ~100 fields)auditd_manager→auditd.data.*(go-libaudit agent-side parsing, 300+ fields)
Because field names and values differ between the two, detection rules cannot target both integrations without duplicating every field condition. In practice, the detection-rules team has standardized entirely on auditd_manager: approximately 160 rules reference this integration, zero reference auditd directly. Customers who cannot install auditd_manager (managed environments, restricted installs) get no rule coverage.
Current state (as of May 2026)
Phase 1 work is underway:
- feat(filebeat): add auditd filestream parser using go-libaudit beats#50791: Adds an
auditdfilestream parser tolibbeat/reader/auditdusinggo-libaudit/auparse. Replaces the 2,371-line ingest pipeline (4 groks + Painless) with a single auparse call per line. Currently outputsauditd.log.*fields. - [auditd] Add use_filebeat_parser toggle for go-libaudit pre-parsing #19071: Adds a
use_filebeat_parsertoggle (defaultfalse) to the auditd data stream, guarding grok processors for pre-parsed events. Beats PR must merge first.
The false default ensures no breakage for users on older Filebeat versions that don't have the new parser. Users opt in, validate, then the default flips.
Goal
Once Phase 1 is stable, evaluate normalizing the auditd integration's field output to align with the auditd_manager namespace (auditd.data.*), so that detection rules can target both integrations with a single field reference.
Work needed
- Phase 1: Land beats#50791 + integrations#19071 and validate in production
- Phase 2: Map auparse output fields to
auditd.data.*namespace (or agree on a shared ECS-aligned namespace) - Phase 2: Define deprecation/migration path for existing
auditd.log.*users (custom rules, dashboards) - Phase 2: Update integration manifest with minimum Filebeat version requirement
- Cross-team: Coordinate with detection-rules team to review ~160 rules once schema is normalized; classify each as auditd-only, auditd_manager-only, or both
Stakeholders
- elastic/sec-linux-platform: owns both integration packages (CODEOWNERS), driving Phase 1 and 2
- Detection-rules team: consumer; ~160 rules need review post-normalization
Related
- feat(filebeat): add auditd filestream parser using go-libaudit beats#50791
- [auditd] Add use_filebeat_parser toggle for go-libaudit pre-parsing #19071
- Fix Remove incorrect --hostfs flag documentation beats#50805 (companion docs cleanup: removes misleading
--hostfsflag documentation from auditbeat as users migrate to the filestream parser) - Add elastic/go-libaudit parser beats#47090 (original go-libaudit tracking issue)
- Fix kv parsing in auditd integration to properly support quoted values. #10333 (kv parsing bug, superseded by this work)
Activity
infra-vault-gh-plugin-prod commentedon May 19, 2026
Pinging @elastic/sec-linux-platform (Team:Security-Linux Platform)
github-actions commentedon May 19, 2026
tl;dr:
auditdandauditd_managercurrently use different payload roots (auditd.log.*vsauditd.data.*), and a direct rename would break existing saved searches/detections; a phased compatibility-first normalization is the safest path.Recommendation
Adopt a phased normalization plan:
auditd.data.*for cross-package alignment).Findings
Evidence from code and docs
auditdpackage is rooted atauditd.log:packages/auditd/data_stream/log/fields/fields.yml:1packages/auditd/data_stream/log/elasticsearch/ingest_pipeline/default.yml:19(and many otherauditd.log.*references)packages/auditd/docs/README.md:25-33(example event showsauditd.log)auditd_managerpackage is rooted atauditd.data:packages/auditd_manager/data_stream/auditd/fields/fields.yml:61(auditd.data.reset) and manyauditd.data.*fieldspackages/auditd_manager/data_stream/auditd/elasticsearch/ingest_pipeline/default.yml:100(auditd.data.id) and additionalauditd.data.*processorspackages/auditd_manager/docs/README.md:162-184(example event showsauditd.data)auditd), so divergence is at field schema level:packages/auditd/data_stream/log/fields/base-fields.yml:10-17packages/auditd_manager/data_stream/auditd/fields/base-fields.yml:10-17packages/auditd/kibana/search/auditd-4ac0a370-0a11-11e7-8b04-eb22a5669f27.json:5(auditd.log.sequence)packages/auditd_manager/kibana/search/auditd_manager-5438b030-c246-11e7-8692-232bd1143e8a.json:10(auditd.data.exit)packages/security_detection_engine/kibana/security_rule/32300431-c2d5-432d-8ec8-0e03f9924756_9.json:18,41(auditd.data.syscall)auditd.data.*updates:packages/auditd_manager/changelog.yml:19-21("Updated field definitions forauditd.data.*fields")Verification
Commands and output
Detailed Action Plan
Implementation plan
packages/auditd/data_stream/log/elasticsearch/ingest_pipeline/default.yml, add compatibility writes from high-valueauditd.log.*fields toauditd.data.*equivalents (keepauditd.log.*unchanged for now).packages/auditd/data_stream/log/fields/fields.yml.auditd_managernamespace stable; only add compatibility aliases where needed for cross-package UX parity.packages/auditd/kibana/**packages/auditd_manager/kibana/**packages/security_detection_engine/kibana/security_rule/**packages/auditd/data_stream/log/_dev/test/pipeline/*-expected.jsonpackages/auditd_manager/data_stream/auditd/_dev/test/pipeline/*-expected.jsonRelated Items
Issues, PRs, files
auditd_managerwork; not a namespace migration itselfpackages/auditd/data_stream/log/fields/fields.yml:1auditd.logroot in auditdpackages/auditd_manager/data_stream/auditd/fields/fields.yml:61auditd.dataroot fields in auditd_managerpackages/security_detection_engine/kibana/security_rule/32300431-c2d5-432d-8ec8-0e03f9924756_9.json:18auditd.data.*Note
🔒 Integrity filter blocked 19 items
The following items were blocked because they don't meet the GitHub integrity level.
issue_read: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".search_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".related#19057list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".data_stream.namespacemapping error on transforms #19054list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".To allow these resources, lower
min-integrityin your GitHub frontmatter:What is this? | From workflow: Issue Triage
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
ricardoamaro commentedon May 20, 2026
@Aegrah @nfritts for awareness
111andre111 commentedon May 20, 2026
cc @Mikaayenson @approksiu
Once that work is done, we could review the auditd rules if these could relate as well partially to the Auditd integration.
approksiu commentedon Jul 2, 2026
@jamiehynds is this still in the works? Do you know when this work will be released? Asking because prebuilt detection rules have a dependency on this. Thank you!
infra-vault-gh-plugin-prod commentedon Jul 7, 2026
Pinging @elastic/security-service-integrations (Team:Security-Service Integrations)
Aegrah commentedon Jul 27, 2026
Hey, do we have any progress update on this one? We have several SDH's related to this feature! Much appreciated.
jamiehynds commentedon Jul 29, 2026
@Aegrah @approksiu - @efd6 has now been assigned to this issue and will review current state and discuss a path forward.
My main concern here is the nature of the breaking change in phase 2 - we have a large install base using the auditd integration and if we switch from auditd.log to auditd.data, it will break their custom created rules, dashboards, etc. Some discussion needed on a path forward without negatively impacting those users.