ELK日志收集系统

下载软件包

ELK官网 请大家以官网为主,以博客为辅。
官网下载所需软件包
我这里以windows环境演示
在这里插入图片描述

解压logstash

启动试试

bin目录 .logstash.bat -e "input { stdin { } } output { stdout { codec => rubydebug } }"
-e 参数后面跟的是logstash输入输出形式,上面意思为:从控制台接收输入,输出到控制台。
启动后随意输入然后回车,就可以看到输出了

配置logstash

参考:https://www.elastic.co/guide/en/logstash/current/config-examples.html
config目录logstash-sample.conf复制一份改名为logstash.conf(名字随意)内容如下:

input {
	stdin {
	}
}
output {
  stdout { 
	codec => rubydebug
  }
}

大家看到了,上面的配置其实意义和第一步是一样的:从控制台接收输入,输出到控制台。
怎么用呢?
logstash.bat -f logstash.conf

logstash输入和输出都可以有多个,比如下面

# 从控制台和tcp连接(通常是咱们的应用)输入
# 输出到控制台和elasticsearch
input {
	stdin {
	}
	tcp {
      port => "8888"   # 接收输入日志的端口
	}
}
output {
  stdout { 
	codec => rubydebug
  }
  elasticsearch { 
  	hosts => ["localhost:9200"]
   }
}

配置日志输出到logstash

首先引入用于logback输出到logstash的依赖

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.10</version>
</dependency>

spring项目的resource目录创建logback-spring.xml文件 用于设置日志输出地址

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 输出到控制台 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    <!-- 输出到logstash -->
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:8888</destination>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="logstash"/>
    </root>
</configuration>

这样,启动logstash然后启动项目就能看到logstash打出的信息了,类似下面这样

{
	"port" => 9773,
	"type" => "tcplog",
	"message" => "{"@timestamp":"2019-07-28T22:18:32.539+08:00","@version":1,"message":"Starting ProtocolHandler [\"http-nio-8081\"]","logger_name":"org.apache.coyote.http11.Http11NioProtocol","thread_name":"main","level":"INFO","level_value":20000}
",
	"@version" => "1",
	"@timestamp" => 2019-07-28T14:18:32.540Z,
	"host" => "view-localhost"
}

启动elastic search

解压后 bin目录 .elasticsearch.bat

启动 kibana

解压后 bin目录 .kibana.bat
这样启动应用 就能在kibana看到日志了,快去试试吧!
这有一篇不错的kibana教程 https://www.cnblogs.com/cjsblog/p/9476813.html

logstash解耦

https://blog.csdn.net/GY325416/article/details/97623264

原文地址:https://www.cnblogs.com/paper-man/p/13284647.html