"0.0.0.0" port => 4560 codec => json_lines type => "debug" } tcp { mode => "server" host => "0.0.0.0" port => 4561 codec => json_lines type => "error" } tcp { mo" />

IT袋

当前位置:主页 > 经验教程 > 硬件教程 >

SpringBoot整合ELK实现日志采集与监控

SpringBoot整合ELK实现日志采集与监控(2)

时间:2023-12-22 19:25:13 来源:IT袋 作者:马勇
导读:SpringBoot整合ELK实现日志采集与监控,input { tcp { mode => "server" host => "0.0.0.0" port => 4560 codec => json_lines type => "debug" } tcp { mode => "server" host => "0.0.0.0" port => 4561 codec => json_lines type => "error" } tcp { mo

SpringBoot整合ELK实现日志采集与监控

SpringBoot整合ELK实现日志采集与监控

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
    type => "debug"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4561
    codec => json_lines
    type => "error"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4562
    codec => json_lines
    type => "business"
  }
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4563
    codec => json_lines
    type => "record"
  }
}
filter{
  if [type] == "record" {
    mutate {
      remove_field => "port"
      remove_field => "host"
      remove_field => "@version"
    }
    json {
      source => "message"
      remove_field => ["message"]
    }
  }
}
output {
  elasticsearch {
    hosts => "es:9200"
    index => "logback-%{type}-%{+YYYY.MM.dd}"
  }
}

配置文件 logstash.conf 中设置了四个 TCP 输入,每个输入使用不同的端口(4560、4561、4562、4563)和类型(debug、error、business、record)。同时,通过 Logstash 的过滤器 filter 部分,对类型为 “record” 的日志进行了一些字段的处理,最后通过 output 将处理过的日志发送到 Elasticsearch 中,索引的命名采用了按类型和日期分隔的格式。

这个配置的作用是根据不同类型的日志将其分别处理,并存储到 Elasticsearch 中,索引名为 “logback-类型-日期”。

在这个配置中,Logstash 配置了四个 TCP 输入,分别监听不同的端口和类型。这样可以将不同类型的日志发送到不同的输入端口,从而在 Logstash 中区分它们。

  • 4.启动logstash
docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \
--link elasticsearch:es \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:7.6.2
  • 5.查看容器
docker ps

SpringBoot整合ELK实现日志采集与监控

3. 使用Docker安装Kibana安装

  • 1.下载Kibana镜像
docker pull kibana:7.6.2
  • 2.启动Kibana
docker run --name kibana -p 5601:5601 \
--link elasticsearch:es \
-e "elasticsearch.hosts=http://es:9200" \
-d kibana:7.6.2
  • 3.打开特点端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
  • 4访问kibana
http://192.168.150.102:5601

SpringBoot整合ELK实现日志采集与监控

4.springboot配置(logback.xml配置)

  • 1.pom.xml引入maven依赖
<!--集成logstash-->
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.3</version>
</dependency>
  • 2.配置logback.xml文件 指定日志输出到logstash的端口号
<!--输出到logstash的appender-->
    <appender name="LOGSTASH">
        <!--可以访问的logstash日志收集端口-->
        <destination>192.168.150.102:4560</destination>
        <encoder charset="UTF-8"/>
    </appender>
  • 3.在root节点添加
<!--输出到logstash的appender-->
    <appender name="LOGSTASH">
        <!--可以访问的logstash日志收集端口-->
        <destination>192.168.150.102:4560</destination>
        <encoder charset="UTF-8"/>
    </appender>
  • 4.在application.yml配置日志文件
server:
  port: 8890
logging:
  file:
    path: /var/logs
  level:
    root: info
  #在Spring Boot项目中默认加载类路径下的logback-spring.xml文件
  config: classpath:logback-spring.xml
  • postman访问接口产生日志
http://localhost:8890/user/name?name=12343

相关阅读