# ELK 集成
# 一 集成方式
# SpringBoot篇(主动使用TCP方式)
- 自行引入logstash-logback包
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
1
2
3
4
5
2
3
4
5
- 在资源文件夹跟目录【
src/main/resources
】新增文件【logback-spring.xml
】
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<springProperty scope="context" name="LOGGING_LOGSTASH_DESTINATION" source="logging.logstash.destination"/>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGGING_LOGSTASH_DESTINATION}</destination>
<encoder charset="UTF-8"
class="net.logstash.logback.encoder.LogstashEncoder">
<!-- 必须修改appname为你的应用名称,不得和其他应用名称重复 -->
<customFields>{"appname":"purchaser"}</customFields>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 在
application-logging.yml
中配置
logging:
logstash:
# 暂时有两个logstash采集器可供选择
# 另一个是 192.168.1.214:3456
destination: 192.168.1.251:3456
1
2
3
4
5
2
3
4
5
# 传统Tomcat篇(定时扫描日志文件方式)
小贴士
Tomcat
也可使用TCP方式集成,但是需要在源码中集成logstash-logback
包,需要自行调试,这里不做过多讲解。
选择一个可以访问到日志文件的
logstash
服务,最好是同一台服务器。如果不是,也可以采用文件夹挂载的方式
这里以
192.168.1.251
服务器上的/usr/tool/elk
作为例子
- 修改
startLogstash.sh
文件
在docker的启动配置中,添加一个日志文件的映射,左边为你的日志文件,右边为容器内的日志文件
-v /usr/tool/tomcat/Tomcat60_BI/logs/catalina.out:/logs/yourAppNameCatalina.out \
1
- 修改
logstash.conf
文件
添加一个input配置项
input {
# 假设原本存在一个tcp的输入定义,你可以这样并列添加一个file的定义
# 建议一个tomcat对应一个file配置项
tcp {
mode => "server"
port => 3456
codec => json_lines
}
file {
# 注意:这里的路径指的是docker容器内的路径,详见第一步的配置
path => ["/logs/yourAppNameCatalina.out"]
type => 'filelog'
# 所有tomcat的配置均使用这个tags,后面的filter用这个来区分日志的格式化
tags => 'tomcat'
add_field => {
# 请求改为您的应用名称
"appname" => 'test'
}
}
}
3. 重启logstash
执行" ./startLogstash.sh"即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 二 集成结果查看
- 创建索引
访问
http://kibana.jfbrother.com/
在左侧菜单中点击
Management
,在打开的页面中继续点击Index Patterns
。点击按钮【
Create Index Pattern
】,使用标准格式创建你的索引logstash-[your app name]-*
如:logstash-test-*
小贴士
应用名为你上述配置的应用名,必须一一对应。
如果无法创建,请确保日志生成后再来创建。因为如果在ES
中未搜集到日志数据,Kibana
是不允许创建索引的。
- 进入左侧
Discover
菜单,选择对应的日志索引名称进行查看。