专业做网站多少钱,临沂市罗庄区住房和建设局网站,建筑业管理平台登录,淘宝运营培训班多少钱ELK--收集日志demo 安装ELK日志收集配置启动容器springboot配置测试 之前项目多实例部署的时候#xff0c;由于请求被负载到任意节点#xff0c;所以查看日志是开多个终端窗口。后来做了简单处理#xff0c;将同一项目的多实例日志存入同一个文件#xff0c;由于存在文件锁… ELK--收集日志demo 安装ELK日志收集配置启动容器springboot配置测试 之前项目多实例部署的时候由于请求被负载到任意节点所以查看日志是开多个终端窗口。后来做了简单处理将同一项目的多实例日志存入同一个文件由于存在文件锁的竞争日志内容混乱性能差且效果也不好。后来使用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.2container_name: es01logging:driver: json-fileports:- 9200:9200networks:- es-networkvolumes:- es-data:/usr/share/elasticsearchenvironment:- ELASTIC_PASSWORDthisIsPWD # 自定义密码- xpack.security.enabledfalse # 禁用安全设置deploy:resources:limits:memory: 1GBkibana:image: docker.elastic.co/kibana/kibana:8.15.2container_name: kibana01logging:driver: json-fileports:- 5601:5601networks:- es-networkvolumes:- kibana-data:/usr/share/kibanadepends_on:- es01environment:- ELASTICSEARCH_HOSTShttp://es01:9200 # es host- ELASTICSEARCH_BASIC_AUTH_USERelastic- ELASTICSEARCH_BASIC_AUTH_PASSWORDthisIsPWD # 密码logstash:image: docker.elastic.co/logstash/logstash:8.15.2container_name: logstashnetworks:- es-networkports:- 5044:5044volumes:- /Users/mars/docker_data/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml- /Users/mars/docker_data/logstash/pipeline/:/usr/share/logstash/pipeline/ #挂载管道配置depends_on:- es01
日志收集配置
compose配置文件中logstash挂载了外部配置文件夹。 不用来源的数据可以单独定义一个管道配置来收集和处理日志数据。这里定义了两个测试用例一个用来收集docker日志一个用来收集Springboot日志
# docker-log.conf
input {file {path /var/lib/docker/containers/*/*.logstart_position endsincedb_path /dev/null}
}
output {elasticsearch {hosts [http://es01:9200]index docker-logs-%{YYYY.MM.dd}}
}# springboot-log.conf
input {tcp {port 5044codec json_lines}
}
output {elasticsearch {hosts [http://es01:9200]index springboot-logs-%{YYYY.MM.dd}}
}启动容器
docker compose up -d容器启动成功后浏览器访问kibana主页在discovery中添加新的data view此时能看到logstash配置的两个管道中的索引模式
docker-logs-%{YYYY.MM.dd}springboot-logs-%{YYYY.MM.dd} 分别创建对应的data view即可。
springboot配置
添加依赖配置日志
dependencygroupIdnet.logstash.logback/groupIdartifactIdlogstash-logback-encoder/artifactIdversion8.0/version
/dependency!-- 日志配置--
configurationappender nameLOGSTASH classnet.logstash.logback.appender.LogstashTcpSocketAppenderdestinationlocalhost:5044/destination!-- logstash监听端口--encoder classnet.logstash.logback.encoder.LoggingEventCompositeJsonEncoderproviderstimestamp /logger /threadName /level /message /logstashMarkers /arguments /stackTrace //providers/encoder/appenderroot levelINFOappender-ref refLOGSTASH //root
/configuration测试
Springboot中调用接口kibana中通过切换不同的命名空间进行快速的日志查询定位