Files
compose-anything/src/logstash/docker-compose.yaml
2025-11-10 19:55:44 +08:00

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: