Create an agent policy without using the UIedit

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:

Option 1. Create an agent policy with the APIedit
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=true adds the system integration to the agent policy
  • monitoring_enabled turns on Elastic Agent monitoring

For more information, refer to Kibana Fleet APIs.

Option 2. Create agent policies with preconfigurationedit

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:

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:
      - name: system-1
        id: default-system
        package:
          name: system

For more information about preconfiguration settings, refer to the Kibana documentation.