栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot + elk

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot + elk

1 elk 简介
  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

2 部署

elk.yml

version: "3.7"

services:

  es:
    image: elasticsearch:6.8.17
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    networks:
      - loc_net
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - /data/elasticsearch:/usr/share/elasticsearch/data

  kibana:
    image: kibana:6.8.17
    environment:
      SERVER_NAME: kibana.cn
      ELASTICSEARCH_HOSTS: http://es:9200
    ports:
      - 5601:5601
    networks:
      - loc_net

  logstash:
    image: logstash:7.13.3
    ports:
      - 5044:5044
      - 9600:9600
    environment:
      ES_JAVA_OPTS: -Xmx2048m -Xms2048m"
      http.host: 0.0.0.0
      xpack.monitoring.enabled: 'false'
      xpack.monitoring.elasticsearch.url: http://es:9200
    networks:
      - loc_net
    volumes:
      - "/data/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf"



networks:
  loc_net:
    external: true
3 配置

logstash.conf

input{
        tcp {
                port => 5044
                codec => json_lines
        }
}
output{
        elasticsearch{
                hosts=>["http://es:9200"]
                index => "%{[service]}-%{+YYYY.MM.dd}"
                }
        stdout{codec => rubydebug}
}

收集 SpringBoot 项目日志

引入依赖

		
			net.logstash.logback
			logstash-logback-encoder
			5.2
		

logback.xml




    

    

    

    
    

    
    

    
    
        
            INFO
        
        
        
            ${CONSOLE_LOG_PATTERN}
            utf8
        
    

    
    
        xx.xx.xx.xx:5044
        
        
            
                
                    UTC
                
                
                    
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    
                
            
        
    

    
    
        
        
    

4 总结

 1 只关注如何从 SpringBoot 项目中采集日志到 logstash,然后发送到 es,最后在 kibana 中可视化的查询。采集后如何展示,分析还待整理

2 logstash 组件过于重,我们实际项目中使用的是 log-pilot 这个开源的组件。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号