48 lines
1.6 KiB
YAML
48 lines
1.6 KiB
YAML
|
version: '3.8'
|
|||
|
services:
|
|||
|
elasticsearch:
|
|||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.13.2
|
|||
|
container_name: elasticsearch
|
|||
|
environment:
|
|||
|
- discovery.type=single-node
|
|||
|
- xpack.security.enabled=false # 禁用安全认证(测试用)
|
|||
|
- ES_JAVA_OPTS=-Xms512m -Xmx512m # 限制内存
|
|||
|
ports:
|
|||
|
- "9200:9200"
|
|||
|
# 不挂载任何卷(数据不持久化)
|
|||
|
|
|||
|
logstash:
|
|||
|
image: docker.elastic.co/logstash/logstash:8.13.2
|
|||
|
container_name: logstash
|
|||
|
ports:
|
|||
|
- "5044:5044" # Filebeat 输入端口
|
|||
|
environment:
|
|||
|
- XPACK_MONITORING_ENABLED=false # 禁用监控(测试用)
|
|||
|
command: logstash -e 'input { beats { port => 5044 } } output { elasticsearch { hosts => ["elasticsearch:9200"] } }'
|
|||
|
# 直接通过命令行配置 Logstash(无需外部文件)
|
|||
|
depends_on:
|
|||
|
- elasticsearch
|
|||
|
|
|||
|
kibana:
|
|||
|
image: docker.elastic.co/kibana/kibana:8.13.2
|
|||
|
container_name: kibana
|
|||
|
ports:
|
|||
|
- "5601:5601"
|
|||
|
environment:
|
|||
|
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
|||
|
depends_on:
|
|||
|
- elasticsearch
|
|||
|
|
|||
|
filebeat:
|
|||
|
image: docker.elastic.co/beats/filebeat:8.13.2
|
|||
|
container_name: filebeat
|
|||
|
user: root # 避免权限问题
|
|||
|
volumes:
|
|||
|
- /var/log:/home/ubuntu/game/log:ro # 挂载宿主机日志目录(只读)
|
|||
|
command: >
|
|||
|
filebeat -e --path.config /usr/share/filebeat
|
|||
|
-E "filebeat.inputs=[{type: log, enabled: true, paths: ['/var/log/*.log']}]"
|
|||
|
-E "output.logstash.hosts=[\"logstash:5044\"]"
|
|||
|
# 直接通过命令行配置 Filebeat(无需外部文件)
|
|||
|
depends_on:
|
|||
|
- logstash
|