首先下载ElasticSearch,下载地址:https://www.elastic.co/downloads/elasticsearch
JDK版本要1.8以上,低版本的JDK,ES无法支持
需要下载的ELK组件如下所示:
安装配置Elasticsearch
tar -zxvf elasticsearch-5.2.2.tar.gz -C /soft/services
cd /soft/services/elasticsearch-5.2.2/config/
vim elasticsearch.yml
mkdir -p /data/elk/data
mkdir -p /data/elk/log
chmod 777 -R /data/elk
修改配置文件elasticsearch.yml内容如下:
## 设置访问ip
network.host: 0.0.0.0
## 设置访问端口号
http.port: 9200
## 设置数据存储目录
path.data: /data/elk/data
## 设置日志存储目录
path.logs: /data/elk/log
修改配置文件jvm.options(修改内存大小,默认是占用2g内存,如果内存足够可以不修改)
## 默认设置初始化内存大小为2g
-Xms512m
## 默认设置最大内存大小为2g
-Xmx512m
新建用户并启动elasticsearch:
## 组添加
groupadd elk
## 添加组并设置密码
useradd elk -g elk -p elk@123
## 更改elasticsearch所属用户和组
chown -R elk:elk /soft/services/elasticsearch-5.2.2/
## 进入目录
cd /soft/services/elasticsearch-5.2.2/bin
## 启动elasticsearch
nohup./elasticsearch &
启动后elasticsearch会报如下错误:
ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low
##修改vm.max_map_count
sudo sysctl -w vm.max_map_count=262144
## 清楚elk的日志和数据目录文件
cd /data/elk/data
rm -rf ./*
cd /data/elk/log
rm -rf ./*
## 在启动elasticsearch如下
nohup./elasticsearch &
然后浏览器访问(你的ip+9200)
安装配置Kibana
tar -zxvf kibana-5.2.2-linux-x86_64.tar.gz -C /soft/services
## 更改Kibana用户和组
chown -R elk:elk /soft/services/kibana-5.2.2-linux-x86_64/
## 编辑配置文件
vim /soft/services/kibana-5.2.2-linux-x86_64/config/kibana.yml
## 启动Kibana
cd /soft/services/kibana-5.2.2-linux-x86_64/bin
nohup ./kibana &
浏览器访问(你的ip+5601)
安装配置logstash
tar -zxvf logstash-5.2.2.tar.gz -C /soft/services
cd /soft/services/logstash-5.2.2/config
vim logstash.yml
修改配置内容如下所示:
http.host: "127.0.0.1"
http.port: 9600
path.logs: /data/elk/logstash/log
path.data: /data/elk/logstash/data
在config目录下新建一个logstash-es.conf文件并添加如下内容:
input {
tcp {
port => 9601
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "frame"
}
stdout {
codec => rubydebug
}
}
设置默认的gem source为国内的镜像源:
## 修改镜像地址
vim /soft/services/logstash-5.2.2/Gemfile
修改镜像地址为
source "https://gems.ruby-china.com"
然后进入到bin目录执行安装插件命令:
./logstash-plugin install logstash-codec-json_lines
稍微等待一会儿,等在插件安装完毕有Installation successful 字样,则安装插件成功
然后检查一下配置是否ok
cd /soft/services/logstash-5.2.2/bin
./logstash -f ../config/logstash-es.conf --config.test_and_exit
然后再启动logstash即可。
nohup ./logstash -f ../config/logstash-es.conf &
SpringBoot集成Logstash
接下来我们需要做的是讲SpringBoot项目启动产生的日志内容输出到logstash文件即可。首先Springboot中的日志文件(logback.xml)配置如下内容:
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--指定logstash ip:监听端口(你部署logstath的ip+logstash-es.conf配置文件配置的端口号
)-->
<destination>1.14.49.120:9601</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
然后再引入这个appender
<root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>
然后在程序中书写相关日志输出的代码如下:
然后执行该方法测试一下,验证在kibana中是否有输出相关日志数据。
可以看到刚刚程序里输出的日志已经存储在ELK中了。