腾讯云Centos7安装ELK5.2单机版+输出SpringBoot项目日志到ELK中实战

首先下载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中了。

猜你喜欢

转载自blog.csdn.net/javaee_gao/article/details/121488701