kibana/docs/api/osquery-manager/live-queries/create.asciidoc
natasha-moore-elastic f0f1775632
[DOCS ]Direct users to new API reference site (#195909)
## 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
2024-10-15 16:29:05 +01:00

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
]
}
]
}
}
--------------------------------------------------