栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Linux安装配置ELK日志及与SpringBoot的整合使用

Linux安装配置ELK日志及与SpringBoot的整合使用

踩坑学习记录

一、下载ELK的安装包上传并解压

我这边用到的版本是7.6.1版本,ELK最好版本统一,避免版本兼容导致失败,可以在官网下载,下载可能会慢,我这里下载好了,可以直接用

1.Elasticsearch下载
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz

2.Logstash下载

https://artifacts.elastic.co/downloads/logstash/logstash-7.6.1.tar.gz

3.Kibana下载

https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-linux-x86_64.tar.gz

上传到自定义目录:

/usr/local/src/elk

4.上传并解压

接下来使用 XShell 工具连接到服务器或者虚拟机

ES压缩包解压:进入 /usr/local/src/elk 目录
elasticsearch解压命令:tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz
logstash解压命令:tar -zxvf logstash-7.6.1.tar.gz
kibana解压命令:tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz

解压后的文件夹修改下名字,方便输入:mv elasticsearch-7.6.1 elasticsearch7
解压后的文件夹修改下名字,方便输入:mv kibana-7.6.1 kibana7

解压后的文件夹修改下名字,方便输入:mv logstash-7.6.1 logstash7

ES目录介绍

bin:下面存放着Es启动文件         elasticsearch.bat/elasticsearch

config:配置目录

data:数据目录

jdk、lib:Java运行环境以及依赖包

logs:日志目录

modules、plugins:模块及插件目录,head插件可以存放在plugins目录下

二、Elasticsearch配置

1.修改配置文件elasticsearch.yml

基础配置
ES 本身其实也相当于是一个数据库,为此,我们在 elasticsearch7 文件夹下自己建一个 data 文件夹,用于存放数据:

mdkir data

进入 data 文件夹下,执行 pwd 命令拷贝下该文件夹的路径,下面配置要用到!

我的 data 路径:

/usr/local/src/elk/elasticsearch7/data

修改配置文件elasticsearch.yml,我们进入elasticsearch7 这个文件夹下的config 文件夹,编辑 elasticsearch.yml 文件:

vim elasticsearch.yml

node.name: node-1

cluster.initial_master_nodes: ["node-1"]

path.data: /usr/local/src/elk/elasticsearch7/data #目录位置以安装为主

path.logs: /usr/local/src/elk/elasticsearch7/logs #目录位置以安装为主

network.host: 0.0.0.0 #对外开放访问

http.port: 9200 #默认9200


跨域问题添加如下几行

http.cors.enabled: true

http.cors.allow-origin: "*"

http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

修改系统配置文件

vi  /etc/security/limits.conf  添加四行代码

*               soft    nofile          65536

*               hard    nofile          65536

*               soft    nproc           4096

*               hard    nproc           4096

vi /etc/sysctl.conf 文件,增加配置vm.max_map_count=262144

sysctl -p 执行生效

2.新建es用户

因为Elasticsearch为了安全起见,不支持root用户直接启动

新建一个用户elasticsearch,命令:

adduser es

passwd es//修改es用户密码

Changing password for user es.

New UNIX password:     //在这里输入新密码

Retype new UNIX password:  //再次输入新密码

passwd: all authentication tokens updated successfully.

在elk 目录下 赋予 elasticsearch7 这个文件夹的权限给 es用户由于后续安装kibana也不能以root用户启动,所以我们对外层elk文件夹下赋予权限命令:

chown -R es:es /usr/local/src/elk

命令,切换到 es 用户,并重新到 bin 目录下执行 ES服务

su es

3.启动Elasticsearch

在es安装目录bin下执行

./elasticsearch  -d

浏览器访问:http://服务器ip:9200/
显示如下内容表示成功

4.启动问题:

由于某种原因可能导致启动失败,我这边也遇到过一些情况,可以参考解决方案:

4.1:JDK版本问题:

future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk8/jdk1.8.0_291/jre] does not meet this requirement

原因:说明这个版本对应的jdk应该是java11。我们环境中的jdk是java8。其实新版的es是自带了jdk的。但是和我们环境变量的冲突了。

解决方案:修改启动文件,添加如下修改

wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz

tar -xzvf openjdk-11.0.1_linux-x64_bin.tar.gz /opt/

vi bin/elasticsearch

配置自己的jdk11,在启动脚本前加上如下两行

export JAVA_HOME=/opt/jdk-11.0.1  #根据自己解压后的路径设置

export PATH=$JAVA_HOME/bin:$PATH

4.2:GC异常问题:

修改jvm.options将+UseConcMarkSweepGC 改为+UseG1GC

 

 

 

三、Logstash配置

1.新建持久化目录:

mkdir -p /usr/local/src/elk/logstash7/plugin-data

2.修改配置文件logstash.yml

编辑 /config/logstash.yml 配置文件

path.data: /usr/local/src/elk/logstash7/plugin-data    #上一步创建logstash 和插件使用的持久化目录

config.reload.automatic: true    #开启配置文件自动加载

config.reload.interval: 10    #定义配置文件重载时间周期

http.host: "172.18.10.172"    #本台服务器地址,一般为域名或IP,对外开放

  1. 安装logstash所需插件

从Filebeat 输入、过滤、输出至elasticsearch(logstash 有非常多插件,详见官网,此处不列举)
安装logstash-input-jdbc 和logstash-input-beats-master 插件
如果你的Logstash没有安装logstash-codec-json_lines插件,通过以下命令安装

/usr/local/src/elk/logstash7/bin/logstash-plugin install logstash-integration-jdbc

wget https://github.com/logstash-plugins/logstash-input-beats/archive/master.zip -O /opt/master.zip

unzip -d /usr/local/src/elk/logstash7 /opt/master.zip

root@iZwz91w9jegcgf28ttbe2yZ:/usr/local/src/elk/logstash7/bin# ./logstash-plugin install logstash-codec-json_lines

Validating logstash-codec-json_linesInstalling 

logstash-codec-json_lines

Installation successful

4.新建配置文件 logstash.conf(/bin目录下)

vim logstash.conf

配置文档内容

input {

  tcp {

    #模式选择为server

    mode => "server"

    #本台服务ip和端口根据自己情况填写,端口默认4560,对应后面整合spring boot的logback.xml里appender中的destination

    host => "172.18.10.172"

    port => 4560

    #格式json

    codec => json_lines

  }

}

filter {

  #过滤器,根据需要填写

}

output {

  elasticsearch {

    action => "index"

    #这里是es的服务器地址

    hosts  => "172.18.10.172:9200"

    #用于kibana过滤,可以填项目名称

    index  => "cim-logstash-%{+YYYY.MM.dd}"

  }

}

5.启动logstash

切换到/usr/local/src/elk/logstash7/bin

nohup ./logstash -f logstash.conf >/dev/null 2>&1 &

验证
访问http://服务器ip:9600/,成功的话会显示一个JSON串

6.启动问题:

由于某种原因可能导致启动失败,我这边也遇到过一些情况,可以参考解决方案:

6.1:内存问题:

:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000

解决方案
修改logstash核心的执行文件 在bin目录下,有一个可执行的文件logstash,需要添加参数:(可以先不用设置,报错的话再设置)

LS_JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"

2./usr/local/src/elk/logstash7/config修改jvm.options

-Xms256m-Xmx256m

四、Kibana配置

1.修改配置文件kibana.yml

修改内容:

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.hosts: ["http://localhost:9200"] #es部署不在同一台,要修改IP地址

i18n.locale: "zh-CN" #kibana页面汉化设置,默认英文

2.启动kibana,kibana启动也是不建议root启动如果强制,可以命令后加--allow-root

进入bin目录启动:  ./bin/kibana --allow-root

或者守护进程启动: nohup ./bin/kibana --allow-root

>/dev/null 2>&1 &

进行访问本机访问 http://服务器ip:5601

五、Spring boot整合ELK

日志采集新增Logback直接发送日志到Logstash的形式。如果采用此方式,web服务可减少部分生成log文件配置,提高实时性和日志推送效率

1. 修改 pom.xml

logback 相关

   net.logstash.logback

   logstash-logback-encoder

   5.3

2. logback.xml

    

    

        

        172.18.10.172:4560

        

    

    

        

    

3. Test.java

在接口中使用log进行日志生成,启动项目

  1. 进入kibana -> 管理 -> 索引模式 -> 创建索引模式,输入 logstash-* ,下一步创建

 

5. 调用接口触发日志记录,打开Kibana-->Discover菜单-->筛选" logstash-* ",显示请求日志,出现如下信息说明整合成功!!!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号