我是靠谱客的博主 闪闪月亮,最近开发中收集的这篇文章主要介绍【centos 7】 安装 Logstash,简单使用安装 LogstashSpringBoot集成Logstash,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在安装Logstash之前,要确保已经安装并开启了es、kibana

安装 Logstash

1、到官网下载压缩包,并上传到服务器

注意:es、kibana、logstash的版本要一致

2、将下载好的压缩包解压缩之后,在其安装目录下的bin文件夹里,添加配置文件 logstash.conf ,内容如下

input {
tcp {
host => "0.0.0.0"
port => 4560
mode => "server"
codec => json_lines
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "%{[appname]}"
}
}

其中:
1) host => “0.0.0.0” 意味着开放远程连接,如果你的SpringBoot项目跟这些es、kibana、logstash同服务器部署的话,可以写成 host => “localhost”
2) hosts => "localhost:9200"是ES的部署位置
3) index => “%{[appname]}” 这个是存储在ES中的索引名,对应下面的SpringBoot集成 logstash 的日志配置文件里{“appname”:“file-manager”}

3、启动 logstash

cd logstash-7.6.2/bin
./logstash -f logstash.conf

如果启动成功,则会显示

[2021-06-11T11:26:16,428][INFO ][logstash.inputs.tcp
][main] Starting tcp input listener {:address=>"0.0.0.0:4560", :ssl_enable=>"false"}
[2021-06-11T11:26:16,568][INFO ][logstash.agent
] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2021-06-11T11:26:17,902][INFO ][logstash.agent
] Successfully started Logstash API endpoint {:port=>9600}
[2021-06-11T11:32:30,494][ERROR][logstash.inputs.tcp
][main] Error in Netty pipeline: java.io.IOException: Connection reset by peer

SpringBoot集成Logstash

1、添加依赖

<!-- logstash -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.3</version>
</dependency>

注意:如果后面的启动之后,发现没有将日志添加到ES服务器,那么可能是logstash依赖的版本没有与ES的版本适配,我这里用的ES版本是 7.6.2,logstash 依赖的版本是 6.3

2、在src/main.resource 下新建日志配置文件 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--该日志将日志级别不同的log信息保存到不同的文件中 -->
<configuration>
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--
端口是在logstach.conf中配置的-->
<destination>192.168.58.133:4560</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8"
class="net.logstash.logback.encoder.LogstashEncoder">
<!-- "appname":"spring-boot-lee" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段,切记小写
-->
<customFields>{"appname":"file-manager"}</customFields>
</encoder>
</appender>
<!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!--
日志输出格式:
%d表示日期时间,
%thread表示线程名,
%-5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
</layout>
</appender>
<!--
logger主要用于存放日志对象,也可以定义日志类型、级别
name:表示匹配的logger类型前缀,也就是包的前半部分
level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
false:表示只用当前logger的appender-ref,true:
表示当前logger的appender-ref和rootLogger的appender-ref都有效
-->
<!-- hibernate logger -->
<logger name="com.example" level="debug"/>
<!-- Spring framework logger -->
<logger name="org.springframework" level="debug" additivity="false"></logger>
<root level="INFO">
<appender-ref ref="stdout"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>

3、在application.yml中添加配置

logging:
config: classpath:logback.xml

4、使用 slf4j 日志框架打印日志

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
....
....
private static final Logger logger = LoggerFactory.getLogger(FileServiceImpl.class);
....
...
logger.info("打印日志");
....
....

然后启动项目即可,打印的日志会传送到ES的服务器里,打开kibana的显示界面,添加索引模式,就能搜索到打印的日志了

最后

以上就是闪闪月亮为你收集整理的【centos 7】 安装 Logstash,简单使用安装 LogstashSpringBoot集成Logstash的全部内容,希望文章能够帮你解决【centos 7】 安装 Logstash,简单使用安装 LogstashSpringBoot集成Logstash所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部