diff --git a/docker.txt b/docker/docker.txt similarity index 100% rename from docker.txt rename to docker/docker.txt diff --git a/docker/elk/docker-compose.yml b/docker/elk/docker-compose.yml new file mode 100644 index 0000000..b53279d --- /dev/null +++ b/docker/elk/docker-compose.yml @@ -0,0 +1,48 @@ +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 \ No newline at end of file diff --git a/server/login/server/service.go b/server/login/server/service.go index 69dd07f..1a34363 100644 --- a/server/login/server/service.go +++ b/server/login/server/service.go @@ -34,6 +34,7 @@ func Init() { func Stop() { for _, srv := range Login { + log.DebugF("notify stop service %v", srv.Name()) srv.NotifyStop() } for _, srv := range Login { diff --git a/test/client/server/service.go b/test/client/server/service.go index 185faaf..ff75008 100644 --- a/test/client/server/service.go +++ b/test/client/server/service.go @@ -33,7 +33,10 @@ func Init() { func Stop() { for _, s := range Clients { - s.client.Stop() + s.client.NotifyStop() + } + for _, s := range Clients { + s.client.WaitStop() } }