Logstash Logback Encoder实现ELK日志归集

本文介绍了在SpringCloud平台上利用Logstash Logback Encoder组件进行日志归集的方案。内容涵盖了Elasticsearch配置、Kibana的Index patterns设置、logstash.conf配置以及Logback.xml和pom.xml的修改。通过这些配置,实现了从日志生成到日志收集、展示的完整流程。
摘要由CSDN通过智能技术生成

写在前面

搭建SpringCloud平台日志归集方案,主要使用Logstash Logback Encoder组件实现。
主要分为运维相关的配置和开发相关的配置,具体分类无需纠结,都了解一遍即可。
不足之处,各位大神指出,感谢~

运维相关配置

Elasticsearch配置

{
  "_doc": {
    "_meta": {},
    "_source": {},
    "properties": {
      "appname": {
        "type": "text"
      },
      "stacktrace": {
        "type": "text"
      },
      "level": {
        "type": "text"
      },
      "port": {
        "type": "integer"
      },
      "service": {
        "type": "text"
      },
      "logger": {
        "type": "text"
      },
      "host": {
        "type": "text"
      },
      "thread": {
        "type": "text"
      },
      "levelVal": {
        "coerce": true,
        "index": true,
        "ignore_malformed": false,
        "store": false,
        "type": "integer",
        "doc_values": true
      },
      "message": {
        "type": "text"
      }
    }
  }
}
kibana相关配置

建立Index patterns。根据Elastic search的索引规则配置,建立Kibana的Index patterns。

logstash配置
  • logstash.conf配置文件,新增logstash.conf文件,内容如下
input {
tcp {
    mode => "server"
    port => 4561  # nacos指定的端口
    codec => json_lines
}
}

output {  
# stdout { codec => rubydebug } # 调试时开启,线上关闭
  if [platform] == "projectName" {
    elasticsearch {
        hosts => "elasticsearch:9200"
        index => "projectName-platform-%{+yyyy-MM-dd}"
    }
  }  
}
  • logstash启动命令
bin/logstash -f logstash.conf
nacos项目配置文件
  • nacos项目级-配置方法
projectName:
  logstash:
    open: true        #配置是否开启ELK日志收集
    appname: model (设置自身项目appname)
    ip: 192.168.xxx.xxx  #Logstash地址
    port: 4561        #Logstash TCP端口

开发相关配置

Logback.xml配置文件
  • 增加Property配置
<springProp
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个简单的Spring BootELK集成的实现案例: 1. 添加依赖 在Spring Boot应用程序的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-socketappender</artifactId> <version>6.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>2.1.6.RELEASE</version> </dependency> ``` 2. 配置logback.xml 在src/main/resources目录下创建logback.xml文件,并添加以下配置: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <logger name="com.example" level="DEBUG" additivity="false"> <appender-ref ref="logstash" /> </logger> <root level="INFO"> <appender-ref ref="logstash" /> </root> </configuration> ``` 3. 配置logstash.conf 在logstash的安装目录下创建logstash.conf文件,并添加以下配置: ```conf input { tcp { port => 5000 codec => json_lines } } output { elasticsearch { hosts => ["${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"] index => "logstash-%{+YYYY.MM.dd}" document_type => "log" } } ``` 4. 配置application.properties 在Spring Boot应用程序的src/main/resources目录下创建application.properties文件,并添加以下配置: ```properties server.port=8080 spring.application.name=example-app logging.file=./logs/example-app.log # Logstash LOGSTASH_HOST=localhost LOGSTASH_PORT=5000 # Elasticsearch ELASTICSEARCH_HOST=localhost ELASTICSEARCH_PORT=9200 ``` 5. 启动ELK 启动Elasticsearch和Kibana。在logstash的安装目录下执行以下命令启动logstash: ```sh bin/logstash -f logstash.conf ``` 6. 测试应用程序 在浏览器中访问http://localhost:8080/hello,应用程序会记录一条日志。打开Kibana,创建索引模式,然后在Discover页面中可以看到刚刚记录的日志。创建一个仪表板,可以监控应用程序的性能和健康状况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值