说明:ELK三个组件的版本必须保持一致,否则会造成意想不到的ERROR。本次安装基于centos7.x版本进行。
安装前准备
1、检查本地centos是否具有jdk8(最低要求)的环境,如果没有请安装jdk8
①、获取jdk8的安装包
wget https://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jdk-8u192-linux-x64.tar.gz
②、解压安装包 tar -zxf jdk-8u192-linux-x64.tar.gz
③、配置环境变量 vi /etc/profile,添加如下配置:
export JAVAHOME=/opt/soft/java8/jdk1.8.0_192(本机jdk安装的位置)
export CLASSPATH=.:$JAVAHOME/jre/lib/rt.jar:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar
export PATH=$PATH:$JAVAHOME/bin
④、source /etc/profile 加载资源文件,让jdk环境变量生效

2、在centos 中创建一个用户 elk 并授予sudo权限
①、创建用户
useradd elk -m -U -p elk
说明:【其中 -m 表示创建用户的主目录,在/home/username,-U 表示创建同名的组,-p表示密码】
②、给elk授权sudo,使用root用户,给elk用户授权sodo
(一)、查找sudoers文件路径 whereis sudoers
![]()
(二)、查看sudoers文件权限

(三)、修改sudoers 文件具有可执行权限,并查看修改后权限修改sudoers文件

(四)、追加elk用户具有权限 vi /etc/sudoers

(五)、切换至elk用户之后,开始elk搭建之路:su elk
3、创建好对应的文件夹目录,并切换至创建好的文件夹
mkdir -p /opt/soft/elk
ElasticSearch(6.4.2)搭建
1、获取官方的ElasticSearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
2、解压ElasticSearch6.4.2的安装包 tar -zxf elasticsearch-6.4.2.tar.gz
3、进入解压后的目录,进入conf文件夹修改elasticsearch.yml配置文件(vi elasticsearch.yml)



4、启动elasticsearch。进入bin目录,执行 ./elasticsearch
5、错误以及解决方案
①、can not run elasticsearch as root
![]()
解决方案:不能用root用户启动,切换至之前我们创建的elk用户在继续启动

②、max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
③、max number of threads [1024] for user [es] is too low, increase to at least [4096]
④、max virtual memory areas vm.maxmapcount [65530] is too low, increase to at least [262144]
解决方案:
切换到root用户
1、vi /etc/security/limits.conf 修改如下配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
2、vi /etc/security/limits.d/90-nproc.conf 修改如下配置
* soft nproc 2048
3、vi /etc/sysctl.conf 添加配置
vm.max_map_count=655360
运行命令 sysctl -p
⑤、system call filters failed to install;
错误原因:Centos 不支持SecComp,而高版本ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决办法: 在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
注意:修改完这些配置之后,记得退出elk用户在重新切换到elk用户,再次启动。
6、浏览器访问:http://192.168.220.128:9200检查是否启动成功。

至此 ElasticSearch安装完成。
推荐一款插件可替代原来的head插件。https://gitee.com/farmerx/ElasticHD
Logstash(6.4.2)搭建
1、获取官方的Logstash安装包
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz
2、解压Logstash6.4.2的安装包
tar -zxf logstash-6.4.2.tar.gz
3、进入解压目录,修改logstash的配置文件,logstash.yml,只需要修改如下截图中的内容,其他走默认。

4、和bin目录同级,创建 conf.d 文件夹,用于存放要解析的日志及其他文件的配置文件。

5、在conf.d 下新建 tomcat8.conf,用于配置tomcat8的日志文件的解析:

6、安装filebeat插件,用于日志文件的解析,将日志文件解析输出到logstash。
①、获取filebeat插件,记得一定要和logstash的版本号相对应,不然会出现意想不到的结果。
获取地址:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-linux-x86_64.tar.gz
②、解压filebeat,tar -zxf filebeat-6.4.2-linux-x86_64.tar.gz
③、修改filebeat的配置文件,让其解析某个目录下的所有日志文件到logstash中,如下

一定要把ElasticSearch的配置注释掉,让日志流转到logstash处理,再从logstash转发到ElasticSearch。

④、启动filebeat,执行命令:./filebeat -e -c filebeat.yml -d public

注意:因为我之前启动了一个tomcat实例,所以会看到日志的解析 启动之后会有如下的warning,不要担心,那是因为我们没有启动logstash:

7、启动logstash,启动之前执行命令./bin/logstash -f conf.d/* -t,检测配置文件是否ok,如下:

注意:conf.d/* 表示这个目录下所有的配置文件都检测。
8、执行命令./bin/logstash -f conf.d/* --config.reload.automatic,启动logstash:。
启动命令说明:
-f conf.d/* 执行配置文件位置
--config.reload.automatic 修改后是否自动重载配置文件

9、启动成功之后,浏览器访问:http://192.168.220.129:9600

至此logstash,搭建完成。
Kibana(6.4.2)搭建
1、获取官方的Kibana安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz
2、解压Kibana6.4.2的安装包
tar -zxf kibana-6.4.2-linux-x86_64
3、修改logstash.yml的配置文件,并启动logstash

4、执行 ./kibana ,启动kibana,然后浏览器访问:http://192.168.220.129:5601

至此 kibana安装完成。
ELK全部搭建完成,但是需要将ELK串起来方可起作用,按照上述步骤,串起来之后,访问kibana如下:

本文详细介绍了在CentOS 7.x环境下搭建ELK(ElasticSearch、Logstash、Kibana)堆栈的全过程,包括环境准备、各组件安装、配置及启动步骤,以及常见错误的解决方案。
1340

被折叠的 条评论
为什么被折叠?



