mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 18:27:59 -04:00
## Summary Contributes to https://github.com/elastic/security-docs-internal/issues/48. Add callouts to the asciidoc Osquery API docs to direct users to the new API reference site, in preparation for retiring the asciidoc API docs. NOTE: The api-kibana variable is defined in version-specific files. In [8.15.asciidoc](873ec2c47f/shared/versions/stack/8.15.asciidoc (L74)
) and [8.x.asciidoc](873ec2c47f/shared/versions/stack/8.x.asciidoc (L75)
), the variable points to the [v8 branch](https://www.elastic.co/docs/api/doc/kibana/v8) of the API reference, which currently doesn't include Security API docs. The v8 branch is derived from the "current" Kibana branch, which is currently 8.15. This likely means that we can only backport the callouts to 8.16 once 8.16 becomes the "current" docs version. Preview: [Osquery manager API](https://kibana_bk_195909.docs-preview.app.elstc.co/guide/en/kibana/master/osquery-manager-api.html) and all its child pages
193 lines
No EOL
5.7 KiB
Text
193 lines
No EOL
5.7 KiB
Text
[[osquery-manager-live-queries-api-create]]
|
|
=== Create live query API
|
|
++++
|
|
<titleabbrev>Create live query</titleabbrev>
|
|
++++
|
|
|
|
.New API Reference
|
|
[sidebar]
|
|
--
|
|
For the most up-to-date API details, refer to {api-kibana}/group/endpoint-security-osquery-api[Osquery APIs].
|
|
--
|
|
|
|
experimental[] Create live queries.
|
|
|
|
|
|
[[osquery-manager-live-queries-api-create-request]]
|
|
==== Request
|
|
|
|
`POST <kibana host>:<port>/api/osquery/live_queries`
|
|
|
|
`POST <kibana host>:<port>/s/<space_id>/api/osquery/live_queries`
|
|
|
|
|
|
[[osquery-manager-live-queries-api-create-path-params]]
|
|
==== Path parameters
|
|
|
|
`space_id`::
|
|
(Optional, string) An identifier for the space. When `space_id` is not provided in the URL, the default space is used.
|
|
|
|
|
|
[[osquery-manager-live-queries-api-create-body-params]]
|
|
==== Request body
|
|
|
|
`agent_ids`:: (Optional, array) A list of agent IDs to run the query on.
|
|
|
|
`agent_all`:: (Optional, boolean) When `true`, the query runs on all agents.
|
|
|
|
`agent_platforms`:: (Optional, array) A list of agent platforms to run the query on.
|
|
|
|
`agent_policy_ids`:: (Optional, array) A list of agent policy IDs to run the query on.
|
|
|
|
`query`:: (Optional, string) The SQL query you want to run.
|
|
|
|
`saved_query_id`:: (Optional, string) The ID of a saved query.
|
|
|
|
`ecs_mapping`:: (Optional, object) Map osquery results columns or static values to Elastic Common Schema (ECS) fields.
|
|
|
|
`pack_id`:: (Optional, string) The ID of the pack you want to run.
|
|
|
|
`alert_ids`:: (Optional, array) A list of alert IDs associated to the live query.
|
|
|
|
`case_ids`:: (Optional, array) A list of case IDs associated to the live query.
|
|
|
|
`event_ids`:: (Optional, array) A list of event IDs associated to the live query.
|
|
|
|
`metadata`:: (Optional, object) Custom metadata object associated to the live query.
|
|
|
|
`timeout`:: (Optional, number) A timeout period, in seconds, after which the query will stop running. Overwriting the default timeout allows you to support queries that require more time to complete. The default and minimum supported value is `60`. The maximum supported value is `900`.
|
|
|
|
|
|
[[osquery-manager-live-queries-api-create-request-codes]]
|
|
==== Response code
|
|
|
|
`200`::
|
|
Indicates a successful call.
|
|
|
|
|
|
[[osquery-manager-live-queries-api-create-example]]
|
|
==== Examples
|
|
|
|
Run a live query on all supported agents:
|
|
|
|
TIP: `osquery_manager` integration has to be added to the agent policy.
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
$ curl -X POST api/osquery/live_queries \
|
|
{
|
|
"query": "select * from uptime;",
|
|
"ecs_mapping": {
|
|
"host.uptime": {
|
|
"field": "total_seconds"
|
|
}
|
|
},
|
|
"agent_all": true,
|
|
"timeout": 120
|
|
}
|
|
|
|
--------------------------------------------------
|
|
// KIBANA
|
|
|
|
|
|
The API returns the live query object:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
{
|
|
"data": {
|
|
"action_id": "3c42c847-eb30-4452-80e0-728584042334",
|
|
"@timestamp": "2022-07-26T09:59:32.220Z",
|
|
"expiration": "2022-07-26T10:04:32.220Z", # after this time no more agents will run the query
|
|
"type": "INPUT_ACTION",
|
|
"input_type": "osquery",
|
|
"agent_ids": [],
|
|
"agent_all": true,
|
|
"agent_platforms": [],
|
|
"agent_policy_ids": [],
|
|
"agents": ["16d7caf5-efd2-4212-9b62-73dafc91fa13"], # stores the actual queried agent IDs
|
|
"user_id": "elastic",
|
|
"metadata": {
|
|
"execution_context": {
|
|
"name": "osquery",
|
|
"url": "/app/osquery/live_queries/new"
|
|
}
|
|
},
|
|
"queries": [
|
|
{
|
|
"action_id": "609c4c66-ba3d-43fa-afdd-53e244577aa0", # unique ID of the query, use it when querying the live query API to get the single query results
|
|
"id": "6724a474-cbba-41ef-a1aa-66aebf0879e2", # ID of the query, doesn't have to be unique
|
|
"query": "select * from uptime;",
|
|
"timeout": 120,
|
|
"ecs_mapping": {
|
|
"host.uptime": {
|
|
"field": "total_seconds"
|
|
}
|
|
},
|
|
"agents": [
|
|
"16d7caf5-efd2-4212-9b62-73dafc91fa13" # stores the actual queried agent IDs
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
|
|
|
|
Run a pack on Darwin-supported agents:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
$ curl -X POST api/osquery/live_queries \
|
|
{
|
|
"pack_id": "bbe5b070-0c51-11ed-b0f8-ad31b008e832"
|
|
"agent_platforms": ["darwin"]
|
|
}
|
|
|
|
--------------------------------------------------
|
|
// KIBANA
|
|
|
|
The API returns the live query object:
|
|
|
|
[source,sh]
|
|
--------------------------------------------------
|
|
{
|
|
"data": {
|
|
"action_id": "3c42c847-eb30-4452-80e0-728584042334",
|
|
"@timestamp": "2022-07-26T09:59:32.220Z",
|
|
"expiration": "2022-07-26T10:04:32.220Z", # after this time no more agents will run the query
|
|
"type": "INPUT_ACTION",
|
|
"input_type": "osquery",
|
|
"agent_ids": [],
|
|
"agent_all": false,
|
|
"agent_platforms": ["darwin"],
|
|
"agent_policy_ids": [],
|
|
"agents": ["16d7caf5-efd2-4212-9b62-73dafc91fa13"], # stores the actual queried agent IDs
|
|
"user_id": "elastic",
|
|
"pack_id": "bbe5b070-0c51-11ed-b0f8-ad31b008e832",
|
|
"pack_name": "test_pack",
|
|
"pack_prebuilt": false,
|
|
"metadata": {
|
|
"execution_context": {
|
|
"name": "osquery",
|
|
"url": "/app/osquery/live_queries/new"
|
|
}
|
|
},
|
|
"queries": [
|
|
{
|
|
"action_id": "609c4c66-ba3d-43fa-afdd-53e244577aa0", # unique ID of the query, use it when querying the live query API to get the single query results
|
|
"id": "uptime", # ID of the query, doesn't have to be unique
|
|
"query": "select * from uptime;",
|
|
"ecs_mapping": {
|
|
"host.uptime": {
|
|
"field": "total_seconds"
|
|
}
|
|
},
|
|
"agents": [
|
|
"16d7caf5-efd2-4212-9b62-73dafc91fa13" # stores the actual queried agent IDs
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
-------------------------------------------------- |