ELK--收集日志demo
之前项目多实例部署的时候,由于请求被负载到任意节点,所以查看日志是开多个终端窗口。后来做了简单处理,将同一项目的多实例日志存入同一个文件,由于存在文件锁的竞争,日志内容混乱,性能差且效果也不好。后来使用tail 命令仅在查看日志文件时汇总显示(后来改为multitail)。一直想试试ELK来着,简单做了下集成的demo。
安装ELK
这里简单提一下:
- logstash:收集日志数据
- elasticsearch:存取日志数据
- kibana:数据展示
这里使用docker compose安装,简单方便。为了方便服务调用,我直接关掉了elasticsearch的安全设置
# 定义网络
networks:
es-network:
driver: bridge
# 定义数据卷
volumes:
es-data:
kibana-data:
# 定义服务
services:
# es设置
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.2
container_name: es01
logging:
driver: json-file
ports:
- "9200:9200"
networks:
- es-network
volumes:
- es-data:/usr/share/elasticsearch
environment:
- ELASTIC_PASSWORD=thisIsPWD # 自定义密码
- xpack.security.enabled=false # 禁用安全设置
deploy:
resources:
limits:
memory