feat(ext/fleet): Add example of APM Server agent
This commit is contained in:
parent
74f5610f6d
commit
32bf9423ed
|
@ -29,6 +29,7 @@ jobs:
|
||||||
-f docker-compose.yml
|
-f docker-compose.yml
|
||||||
-f extensions/logspout/logspout-compose.yml
|
-f extensions/logspout/logspout-compose.yml
|
||||||
-f extensions/fleet/fleet-compose.yml
|
-f extensions/fleet/fleet-compose.yml
|
||||||
|
-f extensions/fleet/agent-apmserver-compose.yml
|
||||||
-f extensions/metricbeat/metricbeat-compose.yml
|
-f extensions/metricbeat/metricbeat-compose.yml
|
||||||
-f extensions/filebeat/filebeat-compose.yml
|
-f extensions/filebeat/filebeat-compose.yml
|
||||||
-f extensions/heartbeat/heartbeat-compose.yml
|
-f extensions/heartbeat/heartbeat-compose.yml
|
||||||
|
@ -122,14 +123,15 @@ jobs:
|
||||||
|
|
||||||
- name: Execute Fleet test suite
|
- name: Execute Fleet test suite
|
||||||
run: |
|
run: |
|
||||||
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml up --remove-orphans -d fleet-server
|
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml up --remove-orphans -d fleet-server apm-server
|
||||||
.github/workflows/scripts/run-tests-fleet.sh
|
.github/workflows/scripts/run-tests-fleet.sh
|
||||||
|
|
||||||
- name: 'debug: Display state and logs (Fleet)'
|
- name: 'debug: Display state and logs (Fleet)'
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml ps
|
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml ps
|
||||||
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml logs fleet-server
|
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml logs fleet-server
|
||||||
|
docker compose -f docker-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml logs apm-server
|
||||||
|
|
||||||
#
|
#
|
||||||
# Metricbeat
|
# Metricbeat
|
||||||
|
@ -216,6 +218,7 @@ jobs:
|
||||||
-f docker-compose.yml
|
-f docker-compose.yml
|
||||||
-f extensions/logspout/logspout-compose.yml
|
-f extensions/logspout/logspout-compose.yml
|
||||||
-f extensions/fleet/fleet-compose.yml
|
-f extensions/fleet/fleet-compose.yml
|
||||||
|
-f extensions/fleet/agent-apmserver-compose.yml
|
||||||
-f extensions/metricbeat/metricbeat-compose.yml
|
-f extensions/metricbeat/metricbeat-compose.yml
|
||||||
-f extensions/filebeat/filebeat-compose.yml
|
-f extensions/filebeat/filebeat-compose.yml
|
||||||
-f extensions/heartbeat/heartbeat-compose.yml
|
-f extensions/heartbeat/heartbeat-compose.yml
|
||||||
|
|
|
@ -9,9 +9,11 @@ source "$(dirname ${BASH_SOURCE[0]})/lib/testing.sh"
|
||||||
|
|
||||||
cid_es="$(container_id elasticsearch)"
|
cid_es="$(container_id elasticsearch)"
|
||||||
cid_fl="$(container_id fleet-server)"
|
cid_fl="$(container_id fleet-server)"
|
||||||
|
cid_apm="$(container_id apm-server)"
|
||||||
|
|
||||||
ip_es="$(service_ip elasticsearch)"
|
ip_es="$(service_ip elasticsearch)"
|
||||||
ip_fl="$(service_ip fleet-server)"
|
ip_fl="$(service_ip fleet-server)"
|
||||||
|
ip_apm="$(service_ip apm-server)"
|
||||||
|
|
||||||
log 'Waiting for readiness of Elasticsearch'
|
log 'Waiting for readiness of Elasticsearch'
|
||||||
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
|
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
|
||||||
|
@ -19,6 +21,9 @@ poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
|
||||||
log 'Waiting for readiness of Fleet Server'
|
log 'Waiting for readiness of Fleet Server'
|
||||||
poll_ready "$cid_fl" "http://${ip_fl}:8220/api/status"
|
poll_ready "$cid_fl" "http://${ip_fl}:8220/api/status"
|
||||||
|
|
||||||
|
log 'Waiting for readiness of APM Server'
|
||||||
|
poll_ready "$cid_apm" "http://${ip_apm}:8200/"
|
||||||
|
|
||||||
# We expect to find metrics entries using the following query:
|
# We expect to find metrics entries using the following query:
|
||||||
#
|
#
|
||||||
# agent.name:"fleet-server"
|
# agent.name:"fleet-server"
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
# Example of Fleet-enrolled Elastic Agent pre-configured with an agent policy
|
||||||
|
# for running the APM Server integration (see kibana.yml).
|
||||||
|
#
|
||||||
|
# Run with
|
||||||
|
# docker-compose \
|
||||||
|
# -f docker-compose.yml \
|
||||||
|
# -f extensions/fleet/fleet-compose.yml \
|
||||||
|
# -f extensions/fleet/agent-apmserver-compose.yml \
|
||||||
|
# up
|
||||||
|
|
||||||
|
services:
|
||||||
|
apm-server:
|
||||||
|
build:
|
||||||
|
context: extensions/fleet/
|
||||||
|
args:
|
||||||
|
ELASTIC_VERSION: ${ELASTIC_VERSION}
|
||||||
|
volumes:
|
||||||
|
- apm-server:/usr/share/elastic-agent/state:z
|
||||||
|
environment:
|
||||||
|
FLEET_ENROLL: '1'
|
||||||
|
FLEET_TOKEN_POLICY_NAME: Agent Policy APM Server
|
||||||
|
FLEET_INSECURE: '1'
|
||||||
|
FLEET_URL: http://fleet-server:8220
|
||||||
|
# Enrollment.
|
||||||
|
# (a) Auto-enroll using basic authentication
|
||||||
|
ELASTICSEARCH_USERNAME: elastic
|
||||||
|
ELASTICSEARCH_PASSWORD: ${ELASTIC_PASSWORD:-}
|
||||||
|
# (b) Enroll using a pre-generated enrollment token
|
||||||
|
#FLEET_ENROLLMENT_TOKEN: <enrollment_token>
|
||||||
|
ports:
|
||||||
|
- 8200:8200
|
||||||
|
hostname: apm-server
|
||||||
|
# Elastic Agent does not retry failed connections to Kibana upon the initial enrollment phase.
|
||||||
|
restart: on-failure
|
||||||
|
networks:
|
||||||
|
- elk
|
||||||
|
depends_on:
|
||||||
|
- elasticsearch
|
||||||
|
- kibana
|
||||||
|
- fleet-server
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
apm-server:
|
|
@ -10,7 +10,7 @@ services:
|
||||||
- fleet-server:/usr/share/elastic-agent/state:z
|
- fleet-server:/usr/share/elastic-agent/state:z
|
||||||
environment:
|
environment:
|
||||||
FLEET_SERVER_ENABLE: '1'
|
FLEET_SERVER_ENABLE: '1'
|
||||||
FLEET_SERVER_INSECURE_HTTP: 'true'
|
FLEET_SERVER_INSECURE_HTTP: '1'
|
||||||
FLEET_SERVER_POLICY_ID: fleet-server-policy
|
FLEET_SERVER_POLICY_ID: fleet-server-policy
|
||||||
# Fleet plugin in Kibana
|
# Fleet plugin in Kibana
|
||||||
KIBANA_FLEET_SETUP: '1'
|
KIBANA_FLEET_SETUP: '1'
|
||||||
|
@ -21,7 +21,7 @@ services:
|
||||||
# (b) Enroll using a pre-generated service token
|
# (b) Enroll using a pre-generated service token
|
||||||
#FLEET_SERVER_SERVICE_TOKEN: <service_token>
|
#FLEET_SERVER_SERVICE_TOKEN: <service_token>
|
||||||
ports:
|
ports:
|
||||||
- '8220:8220'
|
- 8220:8220
|
||||||
hostname: fleet-server
|
hostname: fleet-server
|
||||||
# Elastic Agent does not retry failed connections to Kibana upon the initial enrollment phase.
|
# Elastic Agent does not retry failed connections to Kibana upon the initial enrollment phase.
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
|
|
|
@ -32,11 +32,13 @@ xpack.fleet.packages:
|
||||||
version: latest
|
version: latest
|
||||||
- name: elastic_agent
|
- name: elastic_agent
|
||||||
version: latest
|
version: latest
|
||||||
|
- name: apm
|
||||||
|
version: latest
|
||||||
|
|
||||||
xpack.fleet.agentPolicies:
|
xpack.fleet.agentPolicies:
|
||||||
- name: Fleet Server policy
|
- name: Fleet Server Policy
|
||||||
id: fleet-server-policy
|
id: fleet-server-policy
|
||||||
description: Fleet Server policy
|
description: Static agent policy for Fleet Server
|
||||||
monitoring_enabled:
|
monitoring_enabled:
|
||||||
- logs
|
- logs
|
||||||
- metrics
|
- metrics
|
||||||
|
@ -50,3 +52,28 @@ xpack.fleet.agentPolicies:
|
||||||
- name: elastic_agent-1
|
- name: elastic_agent-1
|
||||||
package:
|
package:
|
||||||
name: elastic_agent
|
name: elastic_agent
|
||||||
|
- name: Agent Policy APM Server
|
||||||
|
id: agent-policy-apm-server
|
||||||
|
description: Static agent policy for the APM Server integration
|
||||||
|
monitoring_enabled:
|
||||||
|
- logs
|
||||||
|
- metrics
|
||||||
|
package_policies:
|
||||||
|
- name: system-1
|
||||||
|
package:
|
||||||
|
name: system
|
||||||
|
- name: elastic_agent-1
|
||||||
|
package:
|
||||||
|
name: elastic_agent
|
||||||
|
- name: apm-1
|
||||||
|
package:
|
||||||
|
name: apm
|
||||||
|
# See the APM package manifest for a list of possible inputs.
|
||||||
|
# https://github.com/elastic/apm-server/blob/v8.5.0/apmpackage/apm/manifest.yml#L41-L168
|
||||||
|
inputs:
|
||||||
|
- type: apm
|
||||||
|
vars:
|
||||||
|
- name: host
|
||||||
|
value: 0.0.0.0:8200
|
||||||
|
- name: url
|
||||||
|
value: http://apm-server:8200
|
||||||
|
|
Loading…
Reference in New Issue