使用日志采集的话,先安装eskinaba

可以参考我之前的文章:https://blog.csdn.net/weixin_38650898/article/details/117731166

logstash下载安装

我下载的版本是:windows8.1.2,其他版本自己采坑哦。。

下载地址https://www.elastic.co/cn/downloads/logstash
官方文档https://www.elastic.co/guide/en/logstash/current/configuration.html

修改配置文件logstash.conf,没有自己建一个

input {
	file {
		# 这个路径还必须用/这个斜杆,不然找不到文件的
		path => ["D:/xiao7_workspace/xiao7/learning-example/springboot-example/logs/springboot-example.2022-03-24.log"]  
		start_position => "beginning"
		type => "iis_log_1"
	}
}
output {
 # elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}

在这里插入图片描述

需要注意的是,我这个版本的启动时要么配置全路径,要么只能放在logstash-8.1.2目录下

启动logstash,启动了最好看下日志,可能会各种错~~,如果是jdk的问题,可以去找setup.bat这个文件配置下加载的jdk

D:\env\logstash-8.1.2\bin>logstash -f logstash.conf

结果就采集到的信息了
在这里插入图片描述

SpringBoot整合logstash、es采集日志

先加个配置文件logstash-collect.conf

input {
   tcp { 

	##host:port就是上面appender中的destination,这里其实把logstash作为服务,开启9601端口接收logback发出的消息 
	host => "127.0.0.1" 
	port => 4567
	
	#模式选择为server 
	mode => "server"
	
	
	tags => ["tags"] 
	
	##格式json 
    codec => json_lines
   } 
}

output {
       elasticsearch {
        #ES地址
		hosts =>"127.0.0.1:9200"
		#指定索引名字,不适用默认的,用来区分各个项目
        index =>"%{[appName]}"
       }

       #stdout { codec => rubydebug}
}

配置一下项目依赖、日志配置

  <dependency>
     <groupId>net.logstash.logback</groupId>
      <artifactId>logstash-logback-encoder</artifactId>
  </dependency>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="PROJECT_NAME" value="springboot-example"/>
    <property name="LOG_HOME" value="D:/xiao7_workspace/xiao7/learning-example/springboot-example/logs"/>
    <logger name="com.alibaba.dubbo" level="INFO"/>

    <appender name="dailyFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>15</MaxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d %-5p %t [%C{1}:%L] - %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.error.%d{yyyy-MM-dd}.log</FileNamePattern>
            <MaxHistory>15</MaxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>%d %-5p %t [%C{1}:%L] - %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>127.0.0.1:4567</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
             <!--    指定一个字段,当做es的索引名    -->
            <customFields>{"appName": "spring-boot-example"}</customFields>
        </encoder>
    </appender>


    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="dailyFile"/>
        <appender-ref ref="errorFile"/>
        <appender-ref ref="logstash"/>
    </root>
</configuration>

然后启动服务,然后打开kibana,创建一个索引查询的面板
在这里插入图片描述
在这里插入图片描述
最后就能看到具体的日志了。。。。

fileBeat实现日志采集

最好根据官方文档来进行配置,不同版本配置又不一样。

参考文档:https://www.cnblogs.com/ff111/p/15952314.html

官方文档地址:https://www.elastic.co/guide/en/beats/filebeat/current/index.html

下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

下载结果:
在这里插入图片描述

修改filebeat.yml配置文件

filebeat.inputs:
- type: filestream
  enabled: true
  paths:
    - D:\xiao7_workspace\xiao7\learning-example\springboot-example\logs\springboot-example.2022-04-08.log
  fields:
    index: spring-boot-beat
  parsers: # 用来匹配每条信息的开始数据
    - multiline:
        type: pattern
        pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
        negate: true
        match: after

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

# 自定义索引,需要配置这个
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
setup.template.settings:
  index.number_of_shards: 1



output.elasticsearch:
  hosts: ["localhost:9200"]
  # 指定索引
  indices:
    - index: "spring-boot-beat"
      when.equals:
        fields.index: "spring-boot-beat"
  
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

然后启动:filebeat -e -c filebeat.yml,我这个版本启动它自动创建了索引。

在这里插入图片描述
查看一下索引数据

在这里插入图片描述
到这也差不多~~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐