logback和logstash的集成问题。不使用redis等等
滑稽阿狸 2016-10-10 02:31:14 目前正在集成elk,通过logstash收集logback产生的日志,elk已搭建好部署在同一台机器(我个人pc)
是在windows下操作的。控制台可以打印,但是在es上没反应。。。。。。。。
================================================================
这个是我的maven里面的pom配置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- 日志处理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<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>
</dependencies>
=======================================================
下面是logstash的配置作为服务通过tcp的方式收集日志
input {
tcp{
mode => "server"
port => 9250
}
}
filter {
}
output {
elasticsearch {
codec => plain{ charset => "UTF-8" }
hosts => "127.0.0.1"
index => "logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
workers => 10
template_overwrite => true
}
}
========================================================
这个是logback的配置
<?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>
===================================================
这个是测试
public class Test {
final static Logger logger = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) throws InterruptedException {
logger.debug("现在的时间是 {}", new Date().toString());
logger.info(" This time is {}", new Date().toString());
logger.warn(" This time is {}", new Date().toString());
logger.error(" This time is {}", new Date().toString());
}
}
===================================================