Create an agent policy without using the UI
For use cases where you want to provide a default agent policy or support automation, you can set up an agent policy without using the Fleet UI. To do this, either use the Fleet API or add a preconfigured policy to Kibana:
curl -u <username>:<password> --request POST \
--url <kibana_url>/api/fleet/agent_policies?sys_monitoring=true \
--header 'content-type: application/json' \
--header 'kbn-xsrf: true' \
--data '{"name":"Agent policy 1","namespace":"default","monitoring_enabled":["logs","metrics"]}'
In this API call:
sys_monitoring=trueadds the system integration to the agent policymonitoring_enabledturns on Elastic Agent monitoring
For more information, refer to Kibana Fleet APIs.
Add preconfigured policies to kibana.yml config.
For example, the following example adds a Fleet Server policy for self-managed setup:
xpack.fleet.packages:
- name: fleet_server
version: latest
xpack.fleet.agentPolicies:
- name: Fleet Server policy
id: fleet-server-policy
namespace: default
package_policies:
- name: fleet_server-1
package:
name: fleet_server
The following example creates an agent policy for general use, and customizes the period setting for the system.core data stream. You can find all available inputs and variables in the Integrations app in Kibana.
xpack.fleet.packages:
- name: system
version: latest
- name: elastic_agent
version: latest
xpack.fleet.agentPolicies:
- name: Agent policy 1
id: agent-policy-1
namespace: default
monitoring_enabled:
- logs
- metrics
package_policies:
- package:
name: system
name: System Integration 1
id: preconfigured-system-1
inputs:
system-system/metrics:
enabled: true
vars:
'[system.hostfs]': home/test
streams:
'[system.core]':
enabled: true
vars:
period: 20s
system-winlog:
enabled: false
For more information about preconfiguration settings, refer to the Kibana documentation.