logstash怎么收集logback产生的日志
目前正在集成elk,通过logstash收集logback产生的日志,elk已搭建好部署在同一台机器(我个人pc)
下面是logstash的配置作为服务通过tcp的方式收集日志
通过telnet的方式 能够 收集到数据 传给es
下面是logback的配置,logstash-logback-encoder已经添加到工程
下面是测试
程序运行后控制台可以输出日志 ,但是logstash并没有收集到日志es看不到。请问这是为什么啊???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
1,在项目pom.xml文件中加上依赖:
你好,我想问下,你最后弄好了吗?我也按照你的配置做了。可是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
}
的配置。
谢谢,正在看~
回复
参考给我回复的,貌似输出的不是json格式,debug调试的时候就报错了,所以根本收集不到
回复
解决了么 是不是异步输出的问题?
你先output到标准输出上看看解析结果对不,然后调试没问题了再output到es
另外,你用log.error打印的日志根本不是json格式吧?你用json_line解析肯定有问题。