ELK6环境搭建

(一)什么是ELK Stack

ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。

  • Elasticsearch 是一个搜索和分析引擎;
  • Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中;
  • Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

那什么又是什么是ELK Stack呢?在ELK社区发展壮大之后,又加入了一系列轻量型的单一功能数据采集器--Beats,所以Beats是一系列轻量型小工具。

Snipaste_2020-10-21_21-22-54

                   图1.Beats工具集合

在加入Beats工具之后呢,ELK 这个名称又要变了,把它叫做 BELK?BLEK?ELKB?当时的确有过继续沿用首字母缩写的想法。然而,对于扩展速度如此之快的堆栈而言,一直采用首字母缩写的确不是长久之计,就这样,Elastic Stack 这个名字应运而生了。

所以目前的ELK Stack主要是包含了Elasticsearch 、Logstash、Kibana以及Beats,四个软件形成了如下的架构:

Snipaste_2020-10-21_21-15-05

                    图2.ELK Stack架构

接下来我们通过安装ELK 6来了解ELK。

NOTE:本次安装版本为ELK6.5.4,此时ELK最新版本已经是7.9.1,不过公司使用的是6.5.4,因此安装较老的版本。


(二)基础信息

(2.1)操作系统信息

[root@elk6 ~]# cat /etc/centos-release
 CentOS Linux release 7.4.1708 (Core)


(2.2)基础软件安装包

elasticsearch-6.5.4
kibana-6.5.4-linux-x86_64
filebeat-6.5.4-linux-x86_64

安装包下载,我把所有本文涉及到的安装包都放在网盘里面了:

链接:https://pan.baidu.com/s/1Dzhif5V9Rm1fgwauanf1qQ
提取码:gege

Snipaste_2020-10-21_21-43-25

或者也可以从有道云笔记附件下载,链接:http://note.youdao.com/noteshare?id=ab1426fe3c180a08ec540c36337616c5&sub=59BD56337C3D46B2B2F54F3FC2D44503


(2.3)安装用户及目录创建

创建安装用户elk,用户组elk

[root@elk6 ~]# groupadd elk
[root@elk6 ~]# useradd elk -g elk -p elk

创建安装目录/elk,后续会将elasticsearch、logstash、kibana安装到该目录。

[root@elk6 ~]# mkdir /elk
[root@elk6 ~]# chown -R elk:elk /elk

(三)安装ELK组件

elk stack的安装主要包括elasticsearch、kibana、logstash、filebeat等,elk还需依赖java。

(3.1)安装Java

注意:使用root用户进行安装

elasticsearch的安装至少需要java8,安装方法如下:

STEP1:到Oracle官网下载java8,建议不要使用太新的,下载地址为:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

STEP2:安装java

# 使用rpm包直接安装
[root@elk6 ~]# rpm -ivh jdk-8u261-linux-x64.rpm 
warning: jdk-8u261-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_261-fcs        ################################# [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
 
 # 配置java的环境变量
[root@elk6 default]# vim /etc/profile
# 在rofile文件末尾添加java的环境变量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 使环境变量生效
[root@elk6 default]# source /etc/profile

STEP3:查看安装情况

[root@elk6 default]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

[root@elk6 default]# echo $JAVA_HOME
/usr/java/default


(3.2)安装elasticsearch

注意:使用elk用户进行安装

STEP1:解压elasticsearch安装包到/elk目录

[elk@elk6 ~]$ tar -xzvf elasticsearch-6.5.4.tar.gz -C /elk/

STEP2:查看安装包

[elk@elk6 ~]$ cd /elk/
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x. 8 elk elk 143 Dec 18  2018 elasticsearch-6.5.4

STEP3:启动elasticsearch

[elk@elk6 bin]$ ./elasticsearch -d

STEP4:检查是否启动成功,如果出现如下信息,则说明启动成功

[elk@elk6 ~]$ curl 127.0.0.1:9200
{
  "name" : "tif-YiB",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "igsUakpeRse6-41h7aJbiw",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}


问题记录:

问题1:只能使用127.0.0.1访问elasticsearch,其它IP无法访问。

需要修改配置文件elasticsearch.yml,将其设置为不限制访问的IP

[elk@elk6 config]$ pwd
/elk/elasticsearch-6.5.4/config
[elk@elk6 config]$ vim elasticsearch.yml 
network.host: 0.0.0.0

重启后报错:

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

修改Linux用户资源参数

vim /etc/security/limits.conf
# 在最后面添加以下参数
* soft nofile 65536
* hard nofile 65536

修改内核控制参数

vim /etc/sysctl.conf
# 在最后面添加以下参数
vm.max_map_count=655360

使内核参数生效

sysctl -p

然后退出elk用户,再次登录启用新的参数即可正常启动。

问题2:elk默认无法使用root用户执行

如果以root执行,会出现无法启动,后续再以elk用户执行,也启动不了,需要重新授权。

[root@elkserver ~]# cd /elk/
[root@elkserver elk]# ls -l
total 4
drwxr-xr-x.  5 elk elk   57 Nov 15 17:22 elasticsearch
drwxrwxr-x. 14 elk elk  271 Nov 15 22:09 kibana
drwxrwxr-x. 13 elk elk 4096 Nov 16 00:48 logstash
[root@elkserver elk]# chown -R elk:elk elasticsearch/


(3.3)安装kibana

注意:使用elk用户进行安装

STEP1:解压kibana安装包到/elk目录

[elk@elk6 ~]$ tar -xzvf kibana-6.5.4-linux-x86_64.tar.gz -C /elk/

STEP2:查看安装包

[elk@elk6 ~]$ cd /elk/
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x.  9 elk elk 155 Oct 14 14:36 elasticsearch-6.5.4
drwxrwxr-x. 11 elk elk 212 Dec 18  2018 kibana-6.5.4-linux-x86_64

STEP3:启动kibana

[elk@elk6 elk]$ cd kibana-6.5.4-linux-x86_64/bin/
[elk@elk6 bin]$ ls
kibana  kibana-keystore  kibana-plugin
[elk@elk6 bin]$ ./kibana

STEP4:登录kibana

使用浏览器登录kibana:http://192.168.10.100:5601

clipboard


问题记录:

问题1:kibana启动后,无法使用外部的网页进行访问。在服务器上执行如下命令,也未返回任何信息

[elk@elk6 config]$ curl http://localhost:5601
[elk@elk6 config]$

解决方法:修改kibana的配置文件,不限制访问kibana的主机

[elk@elk6 config]$ pwd
/elk/kibana-6.5.4-linux-x86_64/config
[elk@elk6 config]$ vim kibana.yml 
# 修改server.host为不限制访问
server.host: "0.0.0.0"


(3.4)安装logstash

注意:使用elk用户进行安装

logstash依赖于java,我们已经在前面安装过java了,这里可以忽略。如果是在单独的机器上安装logstash,那么需要先安装java。

STEP1:解压logstash安装包到/elk目录

[elk@elk6 ~]$ tar -xzvf logstash-6.5.4.tar.gz -C /elk/

STEP2:查看安装包

[elk@elk6 /]$ cd /elk
[elk@elk6 elk]$ ll
total 0
drwxr-xr-x.  9 elk elk 155 Oct 14 14:36 elasticsearch-6.5.4
drwxrwxr-x. 11 elk elk 212 Dec 18  2018 kibana-6.5.4-linux-x86_64
drwxrwxr-x. 12 elk elk 255 Oct 14 16:10 logstash-6.5.4

STEP3:启动logstash

[elk@elk6 bin]$ pwd
/elk/logstash-6.5.4/bin
启动方式为./logstash -f 配置文件


(3.5)安装filebeat

注意:使用root用户进行安装

STEP1:filebeat一般都是安装在需要进行文件采集的服务器上,这里用另一台服务器来安装filebeat

[root@filebeatserver ~]# tar -xzvf filebeat-6.5.4-linux-x86_64.tar.gz -C /elk/

STEP2:查看解压后的文件

[root@filebeatserver filebeat-6.5.4-linux-x86_64]# pwd
/elk/filebeat-6.5.4-linux-x86_64
[root@filebeatserver filebeat-6.5.4-linux-x86_64]# ll
total 35452
-rw-r--r--.  1 root root   100372 Dec 18  2018 fields.yml
-rwxr-xr-x.  1 root root 35930715 Dec 18  2018 filebeat
-rw-r--r--.  1 root root    68183 Dec 18  2018 filebeat.reference.yml
-rw-------.  1 root root     7610 Dec 18  2018 filebeat.yml
drwxr-xr-x.  4 root root       24 Dec 18  2018 kibana
-rw-r--r--.  1 root root    13675 Dec 18  2018 LICENSE.txt
drwxr-xr-x. 20 root root      271 Dec 18  2018 module
drwxr-xr-x.  2 root root     4096 Dec 18  2018 modules.d
-rw-r--r--.  1 root root   163067 Dec 18  2018 NOTICE.txt
-rw-r--r--.  1 root root      802 Dec 18  2018 README.md

STEP3:启动filebeat

[root@filebeatserver filebeat-6.5.4-linux-x86_64]# ./filebeat


到此ELK Stack的所有组件已经安装完毕,需要说明的是,ELK的安装相对简单,但是配置却十分复杂,本文并没有将如何配置beats、logstash等,后续会逐步展开,敬请期待。



【完】

posted @ 2020-10-22 09:18  gegeman  阅读(617)  评论(0编辑  收藏  举报