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}\r",
"@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