logstash怎么收集logback产生的日志

发布于 2021-12-02 18:22:59 字数 653 浏览 938 评论 6

目前正在集成elk,通过logstash收集logback产生的日志,elk已搭建好部署在同一台机器(我个人pc)


下面是logstash的配置作为服务通过tcp的方式收集日志

通过telnet的方式 能够 收集到数据 传给es

下面是logback的配置,logstash-logback-encoder已经添加到工程

下面是测试

程序运行后控制台可以输出日志 ,但是logstash并没有收集到日志es看不到。请问这是为什么啊???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

柳若烟 2021-12-03 15:46:17

1,在项目pom.xml文件中加上依赖:

旧城烟雨 2021-12-03 15:30:05

你好,我想问下,你最后弄好了吗?我也按照你的配置做了。可是logstash上接受不到。

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="30 seconds">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8"> <!-- encoder 可以指定字符集,对于中文输出有意义 -->
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>127.0.0.1:9250</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
 <!-- 设置日志级别 -->
    <root level="info">                   
        <appender-ref ref="STDOUT" />
        <appender-ref ref="logstash" />
    </root>
</configuration>

这个是maven里面的pom配置
<dependency> 
   <groupId>org.slf4j</groupId> 
   <artifactId>jcl-over-slf4j</artifactId> 
   <version>1.6.1</version> 
</dependency> 
<dependency> 
   <groupId>ch.qos.logback</groupId> 
   <artifactId>logback-classic</artifactId> 
   <version>1.1.2</version> 
   <optional>true</optional>
</dependency> 
<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-core</artifactId>
   <version>1.1.2</version>
</dependency>

<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>4.5.1</version>
</dependency>
这个是我在logstash。conf中的配置,只在input中配置了这个tcp。然后output采用标准输出。

tcp{
mode => "server"
port =>  9250
}
的配置。

顾挽 2021-12-03 15:27:14

谢谢,正在看~

恋你朝朝暮暮 2021-12-03 13:00:03

回复
参考给我回复的,貌似输出的不是json格式,debug调试的时候就报错了,所以根本收集不到

终遇你 2021-12-03 10:07:11

回复
解决了么 是不是异步输出的问题?

柒夜笙歌凉 2021-12-03 00:45:04

你先output到标准输出上看看解析结果对不,然后调试没问题了再output到es

output {
    stdout {
        codec => "rubydebug"
    }
}

另外,你用log.error打印的日志根本不是json格式吧?你用json_line解析肯定有问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文