• 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等,后续会逐步展开,敬请期待。



    【完】

  • 相关阅读:
    【项目】项目75
    【项目】项目74
    【项目】项目73
    【项目】项目72
    【项目】项目71
    【项目】项目70
    【项目】项目69
    【项目】项目68
    【项目】项目67
    .Net随笔:解决VS2008,重新生成解决方案,很慢
  • 原文地址:https://www.cnblogs.com/lijiaman/p/13855162.html
Copyright © 2020-2023  润新知