kibana-audit▌
elastic/agent-skills · updated Apr 8, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Enable and configure audit logging for Kibana via kibana.yml. Kibana audit logs cover application-layer security
- ›events that Elasticsearch does not see: saved object CRUD (dashboards, visualizations, index patterns, rules, cases),
- ›login/logout, session expiry, space operations, and Kibana-level RBAC enforcement.
Kibana Audit Logging
Enable and configure audit logging for Kibana via kibana.yml. Kibana audit logs cover application-layer security
events that Elasticsearch does not see: saved object CRUD (dashboards, visualizations, index patterns, rules, cases),
login/logout, session expiry, space operations, and Kibana-level RBAC enforcement.
For Elasticsearch audit logging (authentication failures, access grants/denials, security config changes), see elasticsearch-audit. For authentication and API key management, see elasticsearch-authn. For roles and user management, see elasticsearch-authz.
For detailed event types, schema, and correlation queries, see references/api-reference.md.
Deployment note: Kibana audit configuration differs across deployment types. See Deployment Compatibility for details.
Jobs to Be Done
- Enable or disable Kibana audit logging
- Configure audit log output (rolling file, console)
- Filter out noisy events (e.g.
saved_object_find) - Investigate saved object access or deletion events
- Track Kibana login/logout and session activity
- Monitor space creation, modification, and deletion
- Correlate Kibana audit events with Elasticsearch audit logs via
trace.id - Ship Kibana audit logs to Elasticsearch for unified querying
Prerequisites
| Item | Description |
|---|---|
| Kibana access | Filesystem access to kibana.yml (self-managed) or Cloud console access (ECH) |
| License | Audit logging requires a gold, platinum, enterprise, or trial license |
| Elasticsearch URL | Cluster endpoint for correlation queries against .security-audit-* |
Prompt the user for any missing values.
Enable Kibana Audit Logging
Kibana audit is configured statically in kibana.yml (not via API). A Kibana restart is required after changes.
xpack.security.audit.enabled: true
xpack.security.audit.appender:
type: rolling-file
fileName: /path/to/kibana/data/audit.log
policy:
type: time-interval
interval: 24h
strategy:
type: numeric
max: 10
To disable, set xpack.security.audit.enabled to false and restart Kibana.
Appender types
| Type | Description |
|---|---|
rolling-file |
Writes to a file with rotation policy. Recommended. |
console |
Writes to stdout. Useful for containerized deployments. |
Event Types
Kibana audit events use ECS format with the same core fields as ES audit (event.action, event.outcome, user.name,
trace.id, @timestamp) plus Kibana-specific fields like kibana.saved_object.type, kibana.saved_object.id, and
kibana.space_id.
Key event actions:
| Event action | Description | Category |
|---|---|---|
saved_object_create |
A saved object was created | database |
saved_object_get |
A saved object was read | database |
saved_object_update |
A saved object was updated | database |
saved_object_delete |
A saved object was deleted | database |
saved_object_find |
A saved object search was performed | database |
saved_object_open_point_in_time |
A PIT was opened on saved objects | database |
saved_object_close_point_in_time |
A PIT was closed on saved objects | database |
saved_object_resolve |
A saved object was resolved (alias redirect) | database |
login |
A user logged in (success or failure) | authentication |
logout |
A user logged out | authentication |
session_cleanup |
An expired session was cleaned up | authentication |
access_agreement_acknowledged |
A user accepted the access agreement | authentication |
space_create |
A Kibana space was created | web |
space_update |
A Kibana space was updated | web |
space_delete |
A Kibana space was deleted | web |
space_get |
A Kibana space was retrieved | web |
See references/api-reference.md for the complete event schema.
Filter Policies
Suppress noisy events using ignore_filters in kibana.yml:
xpack.security.audit.ignore_filters:
- actions: [saved_object_find]
categories: [database]
| Filter field | Type | Description |
|---|---|---|
actions |
list | Event actions to ignore |
categories |
list | Event categories to ignore |
An event is filtered out if it matches all specified fields within a single filter entry.
Correlate with Elasticsearch Audit Logs
When Kibana makes requests to Elasticsearch on behalf of a user, both systems record the same trace.id (passed via the
X-Opaque-Id header). This is the primary key for correlating events across the two audit logs.
Prerequisite: Elasticsearch audit must be enabled via the cluster settings API. See the elasticsearch-audit skill for setup instructions, event types, and ES-specific filter policies.
Correlation workflow
- Find the suspicious event in the Kibana audit log.
- Extract its
trace.idvalue. - Search the ES audit index (
.security-audit-*) for all events with the sametrace.id. - Review the combined timeline to understand what ES-level operations the Kibana action triggered.
The elasticsearch-audit skill also documents this workflow from the ES side — use it when starting from an ES audit event and looking for the originating Kibana action.
Search ES audit by trace ID
Given a suspicious Kibana event (e.g. a saved object deletion), extract its trace.id and search the ES audit index:
curl -X POST "${ELASTICSEARCH_URL}/.security-audit-*/_search" \
<auth_flags> \
-H "Content-Type: application/json" \
-d '{
"query": {
"bool": {
"filter": [
{ "term": { "trace.id": "'"${TRACE_ID}"'" } },
{ "range": { "@timestamp": { "gte": "now-24h" } } }
]
}
},
"sort": [{ "@timestamp": { "order": "asc" } }]
}'
Secondary correlation fields: user.name, source.ip, and @timestamp (time-window joins).
Ship Kibana audit logs to Elasticsearch
To query Kibana audit events alongside ES audit events, ship the Kibana audit log file to an Elasticsearch index using Filebeat:
filebeat.inputs:
- type: log
paths: ["/path/to/kibana/data/audit.log"]
json.keys_under_root: true
json.add_error_key: true
output.elasticsearch:
hosts: ["https://localhost:9200"]
index: "kibana-audit-%{+yyyy.MM.dd}"
Once indexed, both .security-audit-* (ES) and kibana-audit-* (Kibana) can be searched together using a multi-index
query filtered by trace.id.
Examples
Enable Kibana audit for compliance
Request: "Enable Kibana audit logging and keep 10 rotated log files."
xpack.security.audit.enabled: true
xpack.security.audit.appender:
type: rolling-file
fileName: /var/log/kibana/audit.log
policy:
type: time-interval
interval: 24h
strategy:
type: numeric
max: 10
Restart Kibana after applying.
Investigate a deleted dashboard
Request: "Someone deleted a dashboard. Check the Kibana audit log."
Search the Kibana audit log (or the indexed kibana-audit-* data) for saved_object_delete events with
kibana.saved_object.type: dashboard. Extract the trace.id and cross-reference with the ES audit index to see the
underlying Elasticsearch operations.
Reduce audit noise from saved object searches
Request: "Kibana audit logs are too large because of constant saved_object_find events."
xpack.security.audit.ignore_filters:
- actions: [saved_object_find]
categories: [database]
This suppresses high-volume read operations while preserving create, update, and delete events.
Guidelines
Always enable alongside Elasticsearch audit
For full coverage, enable audit in both kibana.yml and Elasticsearch. Without Kibana audit, saved object access and
Kibana login events are invisible. Without ES audit, cluster-level operations are invisible. See the
elasticsearch-audit skill for ES-side setup.
Use trace.id for correlation
When investigating a Kibana event, always extract trace.id and search the ES audit index (.security-audit-*). This
reveals the full chain of operations triggered by a single Kibana action. See
Correlate with Elasticsearch Audit Logs above for queries.
Filter noisy read events
saved_object_find generates very high volume on busy Kibana instances. Suppress it unless you specifically need to
audit read access.
Ship logs to Elasticsearch for unified querying
Kibana audit logs are written to files by default. Ship them to Elasticsearch via Filebeat for programmatic querying alongside ES audit events.
Rotate and retain appropriately
Configure rolling-file rotation to avoid filling the disk. A 30-90 day retention is typical for compliance.
Deployment Compatibility
| Capability | Self-managed | ECH | Serverless |
|---|---|---|---|
Kibana audit (kibana.yml) |
Yes | Via Cloud UI | Not available |
| Rolling-file appender | Yes | Via Cloud UI | Not available |
| Console appender | Yes | Yes | Not available |
| Ignore filters | Yes | Via Cloud UI | Not available |
Correlate via trace.id |
Yes | Yes | Not available |
| Ship to ES via Filebeat | Yes | Yes | Not available |
ECH notes: Kibana audit is enabled via the deployment edit page in the Cloud console. Log files are accessible through the Cloud console deployment logs.
Serverless notes:
- Kibana audit logging is not user-configurable on Serverless. Security events are managed by Elastic as part of the platform.
- If a user asks about Kibana auditing on Serverless, direct them to the Elastic Cloud console or their account team.
How to use kibana-audit on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add kibana-audit
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches kibana-audit from GitHub repository elastic/agent-skills and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate kibana-audit. Access the skill through slash commands (e.g., /kibana-audit) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
User Story & Requirements Generation
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Competitive Analysis
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Roadmap Prioritization
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Stakeholder Communication
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Access to product documentation and roadmap tools (Jira, Notion, etc.)
- ›Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
- ›Stakeholder contact information and communication channels
Time Estimate
30-60 minutes to see productivity improvements
Installation Steps
- 1.Install product management skill
- 2.Start with user story generation for known feature
- 3.Progress to competitive analysis: research 2-3 competitors
- 4.Use for roadmap prioritization: apply RICE/ICE scoring
- 5.Draft stakeholder communications and refine based on feedback
- 6.Build template library for recurring PM tasks
- 7.Share effective prompts with product team
Common Pitfalls
- ⚠Not validating competitive research—verify facts before sharing
- ⚠Accepting user stories without involving engineering team
- ⚠Over-relying on frameworks without qualitative judgment
- ⚠Not customizing outputs to company culture and communication style
- ⚠Skipping stakeholder validation of generated requirements
Best Practices▌
✓ Do
- +Validate research and competitive analysis with real data
- +Collaborate with engineering when generating technical requirements
- +Customize frameworks and templates to your company context
- +Use skill for first drafts, refine with stakeholder input
- +Document successful prompt patterns for PM tasks
- +Combine AI efficiency with human judgment and intuition
✗ Don't
- −Don't publish competitive analysis without fact-checking
- −Don't finalize user stories without engineering review
- −Don't make prioritization decisions solely on AI scoring
- −Don't skip customer validation of generated requirements
- −Don't ignore company-specific context and culture
💡 Pro Tips
- ★Provide context: company goals, constraints, customer feedback
- ★Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
- ★Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
- ★Use skill for 70% generation + 30% customization to company needs
When to Use This▌
✓ Use When
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid When
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
Learning Path▌
- 1Basic: user stories, feature specs, status updates
- 2Intermediate: competitive analysis, prioritization frameworks, PRDs
- 3Advanced: product strategy, go-to-market planning, OKR setting
- 4Expert: product vision, market positioning, business model innovation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.4★★★★★50 reviews- ★★★★★Yuki Perez· Dec 24, 2024
kibana-audit has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Tariq Park· Dec 12, 2024
Registry listing for kibana-audit matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Hassan Thompson· Dec 12, 2024
kibana-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aanya Robinson· Dec 8, 2024
Keeps context tight: kibana-audit is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Aditi Li· Nov 27, 2024
kibana-audit has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Aisha Gonzalez· Nov 23, 2024
kibana-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aisha Perez· Nov 15, 2024
Keeps context tight: kibana-audit is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Yash Thakker· Nov 7, 2024
We added kibana-audit from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Tariq Chen· Nov 3, 2024
Useful defaults in kibana-audit — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Dhruvi Jain· Oct 26, 2024
kibana-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
showing 1-10 of 50