ELK 上手3 logback接入logstash

Posted 编程圈子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK 上手3 logback接入logstash相关的知识,希望对你有一定的参考价值。

一、准备工作

  • 已安装 Elasticsearch
  • 已安装logstash
  • Java开发环境

二、Logstash配置

在 Logstash 的config目录下,新建 logstash-logback.conf 文件 :

input 
        tcp 
        // 在4560端口接收logback传来的日志
        host => "0.0.0.0"
        port => 4560
        mode => "server"
        tags => ["tags"]
        codec => json_lines
        

output 
        stdout  codec => rubydebug 
        #输出到es
        elasticsearch  hosts => "127.0.0.1:9200" 

启动时,加载该配置文件:

nohup ./bin/logstash -f config/logstash-logback.conf &

三、Logback设置

1. pom.xml引用


        <!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>7.0.1</version>
        </dependency>

2. logback-spring.xml设置

 <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>你的logstash ip</destination>
        <param name="Encoding" value="UTF-8"/>
        <!-- <filter class="com.program.interceptor.ELKFilter"/>-->
        <!-- encoder is required -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
            <customFields>"appname":"$appName"</customFields>
        </encoder>
    </appender>

这样就可以测试log了。

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
@WebAppConfiguration
public class ConstantsTest 
    @Test
    public void Test() 
        for(int i=0;i<5;i++) 
            log.info(",测试日志",i, "看看可能写入logstash");
        
    

可以看到logstash的日志:

logback的日志已经传到了logstash。

四、kibana查看日志

点开Kibana的Discover。

1. 设置索引

2. 查看日志

以上是关于ELK 上手3 logback接入logstash的主要内容,如果未能解决你的问题,请参考以下文章

第三十二章 elk- broker架构 + 引入logback

ELK 上手2 在CentOS下安装logstash和Kibana

ELK 上手2 在CentOS下安装logstash和Kibana

ELK 上手2 在CentOS下安装logstash和Kibana

Java中多环境Logback配置与ELK日志发送

logback通过kafka接入ELK详解