i use the logback to send the log by tcp port 80,
and i use the logstash-logback-encoder plugin.
pom.xml:
<modelVersion>4.0.0</modelVersion>
<groupId>edu.zxp</groupId>
<artifactId>log4jlearn</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>log4jlearn</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<ch.qos.logback.version>1.2.3</ch.qos.logback.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${ch.qos.logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${ch.qos.logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>${ch.qos.logback.version}</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.4</version>
</dependency>
</dependencies>
</project>
logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- <destination>172.16.10.5:8805</destination> -->
<remoteHost>172.16.10.5</remoteHost>
<port>8805</port>
<!-- encoder is required -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<!--<appender name="async" class="ch.qos.logback.classic.AsyncAppender">-->
<!--<appender-ref ref="stash" />-->
<!--</appender>-->
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="stash" />
</root>
</configuration>
logstash config:
input {
stdin {}
tcp {
port => 80
mode => "server"
codec => json_lines
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["172.16.10.5:8802"]
index => "hd-citos-%{+YYYY.MM.dd}"
}
}
when i try a simple demo .it show nothing.
but when i use --debug.
i find sth there:
[2017-09-13T10:25:35,543][DEBUG][logstash.inputs.tcp ] Accepted connection {:client=>"10.18.12.222:55206", :server=>"0.0.0.0:80"}
[2017-09-13T10:25:35,550][DEBUG][logstash.codecs.line ] config LogStash::Codecs::Line/@id = "line_4cbf1e76-e096-419b-b7c9-8a40daa19387"
[2017-09-13T10:25:35,550][DEBUG][logstash.codecs.line ] config LogStash::Codecs::Line/@enable_metric = true
[2017-09-13T10:25:35,550][DEBUG][logstash.codecs.line ] config LogStash::Codecs::Line/@charset = "UTF-8"
[2017-09-13T10:25:35,550][DEBUG][logstash.codecs.line ] config LogStash::Codecs::Line/@delimiter = "\n"
[2017-09-13T10:25:35,560][DEBUG][logstash.inputs.tcp ] Connection reset by peer {:client=>"10.18.12.222:55206"}
can anyone help me ?