ELK日志收集(SpringBoot)
目录
环境&准备
-
下面所有操作都基于CentOS7
-
基于目前官网最新版搭建(版本号7.8)
es+kibana+logstash
-
官网下载安装包
如官网打不开,可从我的云盘中下载(7.8版本)
链接:https://share.weiyun.com/O10eSbOH 密码:ir72nx
-
安装JDK
安装方法见CentOS7安装JDK8
ES安装
Kibana安装
Logstash安装
Logstash配置
在logstash安装中,已经新建了一个my.conf,就还在这个文件上修改
input {
tcp {
#模式为serve,代表数据来源为服务端
mode => "server"
#SpringBoot logback-spring.xml中指定的ip,用于日志传输到logstash
#此处IP可指定为0.0.0.0
#host => "0.0.0.0"
host => "192.168.1.232"
#SpringBoot logback-spring.xml中指定的端口,用于日志传输到logstash
port => 4560
#格式json
codec => json_lines
}
}
output {
elasticsearch {
#这里是es的地址,多个es要写成数组的形式,例如 ["127.0.0.1:9200","127.0.0.2:9200"]
hosts => "192.168.1.232:9200"
#用于kibana过滤,可以填项目名称
#index => "mylog" #这种方式将所有数据全部输出到一个文件中,不便于后期的数据清理,不推荐
index =>"logstash-%{+yyyy.MM.dd}" #不设置默认是按照日期拆分,便于以后数据清理,推荐
}
stdout {}#接到数据后在控制台输出一份,可不加
}
保存后重启Logstash服务
SpringBoot中logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<contextName>logback</contextName>
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.1.232:4560</destination>
#上面这个ip就是my.conf中input配置的host、port
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="info">
<appender-ref ref="logstash" />
</root>
</configuration>
测试
启动 ES\Kibana\LogStash
启动SpringBoot项目
使用Idea、windows下CMD启动、扔到Linux上启动都可以,但是一定要保证一点:项目运行环境可与LogStash通信
配置Kibana
-
进入 http:// Kibana的IP:5601
-
选择Stack Management
-
确认上面配置的Logstash-output中index=mylog是否创建了
注意:只有SpringBoot项目启动后才会有
-
mylog存在,点击下面
-
输入"mylog"
-
选择如下
-
查看日志
- 执行项目中那个循环的输出方法
- 就可以看到收集的实时日志了