log4j2通过tcp发送json日志到logstash Elasticsearch

参考资料(官网):https://www.elastic.co/guide/en/logstash/6.0/plugins-inputs-tcp.html

通过tcp的发送数据到logstash需要设置好ip+port就好,用你熟悉的方式发送数据即可。

log4j2 tcp 方式 发送json数据到logstash

log4j2.xml的配置参考

<Configuration>
  <Appenders>
     <Socket name="Socket" host="localhost" port="12345">
       <JsonLayout compact="true" eventEol="true" />
    Socket>
  Appenders>
  <Loggers>
    <Root level="info">
      <AppenderRef ref="Socket"/>
    Root>
  Loggers>
Configuration>

logstash的配置参考

input {
    tcp {  
         
        host => "192.168.0.153"
        port => 4567  
        #codec => plain { charset => "GB2312" }  
    	codec => json
    }  
} 


filter {
    json {
        source => "message"
        add_field => ["type", "%{dtype}"]
        remove_field => [ "server", "server.fqdn", "timestamp" ]
    }
}

output {

    if "_jsonparsefailure" not in [tags] {
        stdout { codec => rubydebug }
        elasticsearch {
            hosts => "192.168.2.181:9200"
        }
    }
}

你可能感兴趣的:(log4j2通过tcp发送json日志到logstash Elasticsearch)