56 lines
1.9 KiB
YAML
56 lines
1.9 KiB
YAML
x-defaults: &defaults
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: "3"
|
|
|
|
services:
|
|
logstash:
|
|
<<: *defaults
|
|
image: docker.elastic.co/logstash/logstash:${LOGSTASH_VERSION:-8.16.1}
|
|
ports:
|
|
- "${LOGSTASH_BEATS_PORT_OVERRIDE:-5044}:5044"
|
|
- "${LOGSTASH_TCP_PORT_OVERRIDE:-5000}:5000/tcp"
|
|
- "${LOGSTASH_UDP_PORT_OVERRIDE:-5000}:5000/udp"
|
|
- "${LOGSTASH_HTTP_PORT_OVERRIDE:-9600}:9600"
|
|
volumes:
|
|
- logstash_data:/usr/share/logstash/data
|
|
- logstash_logs:/usr/share/logstash/logs
|
|
- ./pipeline:/usr/share/logstash/pipeline:ro
|
|
|
|
# Custom configuration
|
|
# - ./logstash.yml:/usr/share/logstash/config/logstash.yml:ro
|
|
# - ./pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
|
|
environment:
|
|
- TZ=${TZ:-UTC}
|
|
- XPACK_MONITORING_ENABLED=${LOGSTASH_MONITORING_ENABLED:-false}
|
|
- XPACK_MONITORING_ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS:-http://elasticsearch:9200}
|
|
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS:-http://elasticsearch:9200}
|
|
- ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME:-}
|
|
- ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD:-}
|
|
- LS_JAVA_OPTS=${LS_JAVA_OPTS:--Xmx1g -Xms1g}
|
|
- PIPELINE_WORKERS=${LOGSTASH_PIPELINE_WORKERS:-2}
|
|
- PIPELINE_BATCH_SIZE=${LOGSTASH_PIPELINE_BATCH_SIZE:-125}
|
|
- PIPELINE_BATCH_DELAY=${LOGSTASH_PIPELINE_BATCH_DELAY:-50}
|
|
- LOG_LEVEL=${LOGSTASH_LOG_LEVEL:-info}
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: ${LOGSTASH_CPU_LIMIT:-1.50}
|
|
memory: ${LOGSTASH_MEMORY_LIMIT:-2G}
|
|
reservations:
|
|
cpus: ${LOGSTASH_CPU_RESERVATION:-0.50}
|
|
memory: ${LOGSTASH_MEMORY_RESERVATION:-1G}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://localhost:9600/_node/stats || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
volumes:
|
|
logstash_data:
|
|
logstash_logs:
|