Linux系统的ELK安装及配置

一、ES简介

  ES是一个基于RESTful web接口并且构建在Apache Lucene 的开源分布式搜索引擎。它的特点是:高可用,高扩展,是一种NOSQL的数据存储工具。

二、ES安装前的准备(elk安装包版本要求一致)

  需要下载以下5个下载包:
在这里插入图片描述
下载包的链接地址是:链接:https://pan.baidu.com/s/1wr4Xt1Z8DBWX7xygHB0Zfg 提取码:8dw0
除此之外,还需要安装一下jdk,jdk的版本不唯一,可使用自己平时用的jdk版本,我这里使用的是:jdk-8u221-linux-x64.tar.gz。
  除了准备下载包,还要讲虚拟机搭建好,我这里依然采用MobaXterm来实现(这里可以参考第一篇文章来搭建虚拟机)

三、ELK的安装

  以上工作做好后,进入MobaXterm环境,在根目录下建一个software文件夹,将上面下载好的6个拖到里面去,进行追个解压。由于最新的工程没有unzip解压命令,需要先下载:yum install -y unzip,下载好后,进入software目录下,
分别输入一下命令进行解压:

tar -zxf elasticsearch-6.2.2.tar.gz -C /opt
tar -zxf kibana-6.2.2-linux-x86_64.tar.gz -C/opt
tar -zxf logstash-6.2.2.tar.gz -C /opt
tar -zxf node-v8.9.1-linux-x64.tar.gz -C/opt
tar -zxf jdk-8u221-linux-x64.tar.gz -C/opt
unzip -d /opt elasticsearch-head-master.zip

将所有解压好的文件都变更到opt目录下(注意unzip命令和tar命令的变更目录命令不一样)。解压好后使用命令:rm -rf * 将software文件里的东西全部删除,然后切到opt目录下查看一下下载好的6个文件:
在这里插入图片描述
为了便于记忆和书写,我们将这6个文件都进行重命名:
在这里插入图片描述

四、ES的配置

  配置之前,需要将主机名和主机列表修改一下:

[root@promote opt]# vi /etc/hostname
[root@promote opt]# vi /etc/hosts

进入到hostname中将原有的主机名(第一行)直接删除,输入bigdata01(这里可以自行设置),然后保存退出;
进入到hosts中:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.102 bigdata01

前两行是原有的地址和主机名,在其下方输入:192.168.56.102 bigdata01 即自己虚拟机的地址和刚刚在hostname中设置的主机名,然后保存退出。
  配置ES参数,输入命令:

vi /opt/es622/config/elasticsearch.yml

进入之后,直接按shift+g跳到最后一行,按o直接在下行进行输入,需要输入一下参数设置:

cluster.name : bigdata		--集群名
node.name : master		--节点名
node.master : true		--是否是主节点
network.host : 192.168.56.102	--本机地址
discovery.zen.ping.unicast.hosts : ["192.168.56.102"]	--本机地址
http.cors.enabled : true
http.cors.allow-origin : "*"

注意这里的冒号前后要有空格,不然后面运行会报错,然后保存退出。
  配置系统参数,输入命令:

[root@promote opt]# vi /etc/sysctl.conf

进入后,在最后一行按o进行插入:

vm.max_map_count=655360

输入完后保存退出,最好在输入以下命令使之立即生效:

[root@promote opt]# sysctl -w vm.max_map_count=655360
vm.max_map_count = 655360
[root@promote opt]#

出现之前配置的参数说明配置参数成功。还需要配置另外一个系统参数,输入命令:

[root@promote opt]# vi /etc/security/limits.conf

进入之后仍然是跳到最后一行,按o在其下面进行插入:

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

这里的*号后面要有空格,然后保存退出。
  新建一个es用户,然后给es设置分组以及赋权:

useradd es
chown -R es:es es622

将es622文件赋给es组下的es用户,然后使用命令切换到es用户,输入命令来启动es:

su es
./es622/bin/elasticsearch

这时候可能会报以下错误:

[root@promote opt]# su es
[es@promote opt]$ ./es622/bin/elasticsearch
which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
could not find java; set JAVA_HOME or ensure java is in PATH
[es@promote opt]$

找不到路径,此时就需要进行jdk环境变量的配置,再次之前需要输入命令:echo $PATH,获取java的路径(看后面的PS注释):
在这里插入图片描述
然后再输入命令:vi /etc/profile,进入到jdk文件里,还是第一篇博客一样加入一下内容:

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/opt/java8
export CLASSPATH=.:$JAVA_HOME/rt.jar:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar
export JRE_HOME=$JAVA_HOME/jre
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

这里需要注意,第二行的jdk名称如果之前有重命名过就要在这里更改,还需要加上一行上面获取的java路径(即倒数第二行),然后保存退出。(PS:需要先将其他环境变量配置好后才可以得到PATH的值,然后再回来加上倒数第二行!!!)退出后依然需要使之立即生效:source /etc/profile,然后输入命令:java -version,能够正确显示版本号就说明配置成功。这时候再去重新 启动es:./es622/bin/elasticsearch ,这里要在es用户下启动,如果还是报之前的错误,只需要将MobaXterm重启一下就可以了。
重启之后,再次输入:./es622/bin/elasticsearch,会加载数据,最后显示的界面是:
在这里插入图片描述
然后使用windows,在浏览器中输入网址:192.168.56.102:9200(主机号+9200),可以出现下面的界面就说明ES配置成功。
在这里插入图片描述

五、Head-master及node的配置

  首先还是需要进入jdk文件添加配置:vi /etc/profile,

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/opt/java8
export CLASSPATH=.:$JAVA_HOME/rt.jar:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar
export JRE_HOME=$JAVA_HOME/jre
export NODE_HOME=/opt/node891
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NODE_HOME/bin

一定要在PATH上方加:export NODE_HOME=/opt/node891(node891是之前设置的别名),然后再最后一行的末尾加上:$NODE_HOME/bin(以冒号连接)。然后保存退出,使之立即生效。输入:node -v 可以查看是否配置成功,出现node的版本号说明配置成功。
  下面开始安装Head-master,可以安装一个加速器:

npm config set registry https://registry.npm.taobao.org 

然后输入命令:

[root@promote opt]# cd /opt/eshead
[root@promote eshead]# npm install -g grunt-cli

此时需要等待一段时间(要有耐心啊,伙伴们)。出现下面结果即安装成功。

added 150 packages in 28.177s

除此之外,还要安装一个映像文件:

[root@bigdata01 eshead]# npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

出现下面版本号即安装成功:

+ phantomjs-prebuilt@2.1.14
added 95 packages in 7.697s
[root@bigdata01 eshead]#

安装成功后需要配置两个js文件,输入命令:vi Gruntfile.js,进入之后:
在这里插入图片描述
在port: 9100下一行加入:

hostname: '*',

完成后保存退出。在输入命令:vi _site/app.js。进入后找到4360行,输入:4360gg直接跳到4360行。

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.56.102:9200";

将localhost改成自己的主机地址。保存退出。输入命令:npm run start 启动head-master,(这里如果不成功,需要输入命令:npm install,安装成功之后,要确保之前的es622的启动状态),然后再启动head-master。启动成功之后,在windows输入网址:192.168.56.102:9100,出现下面结果说明head-master安装成功。
在这里插入图片描述
在这里插入图片描述

六、kibana安装,配置

  输入命令: cd /opt/kibana622/,再输入:vi config/kibana.yml,进入之后跳到最后一行,在下一行加入参数:

server.host: "192.168.56.102"
elasticsearch.url: "http://192.168.56.102:9200"

然后保存退出。输入命令:./bin/kinana 启动kinana。在windows输入网址:192.168.56.102:5601,出现以下结果就说明kinaba配置成功。
在这里插入图片描述

七、logstash实例测试

  输入命令:cd /opt/logstash622 切换到logstash目录下,输入命令来测试logstash能否正常工作,等待时间要一小段时间:

[root@promote logstash622]# ./bin/logstash -e 'input { stdin{} } output { stdout{} }'

这里最好在input和output的{}前后都有空格。出现下面结果表明可以正常工作:
在这里插入图片描述
abc 和 123是我输入的内容,最后一行会有等待输入的光标。
当然这里将输入的结果转成json格式输出,只需要在输出命令里加上转json格式的代码:

[root@promote logstash622]# ./bin/logstash -e 'input { stdin{} } output { stdout{ codec => json } }'

可以得到输出的结果为json格式在这里插入图片描述
也可以转成rubydebug类型输出,命令如下:

[root@promote logstash622]# ./bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } elasticsearch { hosts => ["192.168.56.111"] } }'

结果如下:
在这里插入图片描述
同时已经将这些数据上传到es上,可以登录网址:192.168.56.111:9100进行查看
在这里插入图片描述
可以看到之前输入的数据都上传到es上面了。这样就可以实现数据的共享。
除此之外,我们还可以使用logstash读取文件信息。建一个文件夹tmp,然后在里面新建两个文件test.txt和test.conf,在test.txt文件中随便输入几行内容然后保存退出,在test.conf中输入以下内容:

input{
        file{
                path => "/opt/logstash622/tmp/test.txt"
                start_position => "beginning"
                sincedb_path => "/dev/null"
        }
}
output{
        stdout{
                codec => rubydebug
        }
        elasticsearch{
                hosts => ["192.168.56.111"]
        }
}

然后保存退出,test.conf文件读取的文件内容是test.txt的文件,从头开始读取,增加sincedb_path,即linux系统特殊的空洞文件,当logstash每次重启读取sincedb内容,都是空的,也就理解成之前没有记录,自然从头开始读取。
配置完成后,输入命令开始读取文件内容:

./bin/logstash -f tmp/test.conf

可以成功打印test.txt文件的内容,并以rubydebug格式输出,即可以正常使用logstash读取文件。
在这里插入图片描述
此外,这些数据也自动上传到es上,可以自行查看。这样我们就完成了logstash的简单的实例测试。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值