版本信息
| Spring Boot | 2.1.3.RELEASE |
| ELK | 7.9.0 |
下载地址
开始搭建
为ELK创建系统用户
因为Elasticsearch禁止root用户运行,所以需要创建并切换用户。1
2useradd -G elk elk
su elk
Elasticsearch
解压安装包到
/usr/local目录下进入根目录
/usr/local/elasticsearch-7.9.0,修改配置./config/elasticsearch.yml 1
2node.name: node-1
cluster.initial_master_nodes: ["node-1"]默认配置是node-1、node-2双节点集群,这里先改为单节点,否则会出现找不到主节点无法正常工作的问题。
启动
./bin/elasticsearch
默认监听127.0.0.1:9200,看到日志输出
started,可在浏览器访问127.0.0.1:9200
启动失败常见问题
- 开始使用root用户启动失败后,需要删除logs目录下的文件,否则用elk用户启动会出现文件权限问题。
- 开始没有修改单节点配置启动失败后,需要删除data目录下的文件,否则会因为缓存造成修改配置没有生效。
启动报
max file descriptors [xxx] for elasticsearch process is too low,切换root用户修改配置:/etc/security/limits.conf 1
2
3
4在最后追加
elk soft nofile 65535
elk hard nofile 65535
保存后不用重启,重新登录生效启动报
max virtual memory areas vm.max_map_count [xxx] is too low,切换root用户修改配置:/etc/sysctl.conf 1
2
3在最后追加
vm.max_map_count=655360
保存后执行 sysctl -p 生效
配置Logstash
解压安装包到
/usr/local目录下进入根目录
/usr/local/logstash-7.9.0,配置输入输出./config/logstash.conf 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17定义输入来源
input {
tcp {
# 监听地址
host => "0.0.0.0"
port => 9600
codec => json_lines
}
}
定义输出目标
output {
elasticsearch {
hosts => ["http://localhost:9200"]
# 设置索引,*不能包含大写字母!*
index => "spring_logs-%{+YYYY.MM.dd}"
}
}启动
./bin/logstash -f ./config/logstash.conf
看到日志输出
Successfully started Logstash API endpoint {:port=>9601},可在浏览器访问127.0.0.1:9601
Spring Boot
配置logback输出日志到logstash
添加依赖
1
2
3
4
5<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>配置logback-spring.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<appender name="LOG_STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 输出到logstash -->
<destination>127.0.0.1:9600</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<!-- 配置输出信息 -->
<pattern>
<pattern>
{
"app":"${springAppName}",
"level":"%level",
"message":"${CONSOLE_LOG_PATTERN}"
}
</pattern>
</pattern>
</providers>
</encoder>
<keepAliveDuration>5 minutes</keepAliveDuration>
</appender>
<root level="INFO">
<appender-ref ref="LOG_STASH"/>
</root>启动Spring Application
Kibana
解压安装包到
/usr/local目录下进入根目录
/usr/local/kibana-7.9.0,修改配置./config/kibana.yml 1
2
3
4允许外网访问
server.host: "0.0.0.0"
中文界面
i18n.locale: "zh-CN"启动
./bin/kibana
看到日志输出
http server running at http://0.0.0.0:5601,可在浏览器访问127.0.0.1:5601
查看日志
4.1. 首先需要创建索引模式
4.2. 索引模式名称使用
spring_logs-*匹配所有日志索引,时间字段选择默认的@timestamp
4.3. 左侧菜单栏选择Kibana->Discover,即可查看日志记录了