ELK(Elasticsearch,Logstash,Kibana)的安装配置及ELK集群的搭建 什么是ELK

ELK(Elasticsearch,Logstash,Kibana)的入门与安装配置及ELK集群的搭建

什么是ELK

E:Elasticsearch 是一个开源的分布式搜索引擎,它的特点是:分布式,零配置,自动发现,索引自动分布,索引副本机制,多数据源,自动搜索负载等。

L:Logstash 是一个开源工具,可以对你的日志进行收集,过滤,并将其存储供以后使用。

K:Kibana 是一个开源和免费的工具,为Logstash和Elasticsearch提供的日志 在web中可视化展现出来,可以帮助汇总,分析和搜索重要数据日志。

由这三个工具组成的是最简单的架构。Logstash 通过输入插件从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。在这里插入图片描述

ELK的安装配置

安装前的准备,下载如下安装包,要求版本一致(自行百度即可)

elasticsearch-6.2.2.tar.gz
elasticsearch-head-master.zip
kibana-6.2.2-linux-x86_64.tar.gz
logstash-6.2.2.tar.gz
node-v8.9.1-linux-x64.tar.gz

下面操作是在虚拟机上linux-64位系统上操作,如小伙伴还没有搭建好虚拟机的,可以去下方链接查看,同时还需要jdk也已经安装在虚拟机上,未安装的也可以去链接的教程中先安装好虚拟机和jdk
https://blog.csdn.net/yanglitian_123/article/details/106813097
liunx虚拟机安装,网关配置

把准备好的包,解压安装

1,创建一个software文件夹

[root@promote ~]# cd /
[root@promote /]# mkdir software

2,把文件拖入software文件夹内(左侧有可视化目录)

[root@promote /]# cd /software
[root@promote software]# ll
total 264420
-rw-r--r--. 1 root root  29049540 Jun 19 16:05 elasticsearch-6.2.2.tar.gz
-rw-r--r--. 1 root root    928667 Jun 19 16:05 elasticsearch-head-master.zip
-rw-r--r--. 1 root root  83415765 Jun 19 16:05 kibana-6.2.2-linux-x86_64.tar.gz
-rw-r--r--. 1 root root 139464029 Jun 19 16:05 logstash-6.2.2.tar.gz
-rw-r--r--. 1 root root  17896884 Jun 19 16:05 node-v8.9.1-linux-x64.tar.gz

3,解压到opt目录下

[root@promote software]# tar -zxf elasticsearch-6.2.2.tar.gz -C /opt
[root@promote software]# tar -zxf kibana-6.2.2-linux-x86_64.tar.gz -C /opt
[root@promote software]# tar -zxf logstash-6.2.2.tar.gz -C /opt
[root@promote software]# tar -zxf node-v8.9.1-linux-x64.tar.gz -C /opt

4,zip解压需要下载工具包

yum install -y unzip          //下载解压缩工具
[root@promote software]# unzip elasticsearch-head-master.zip

5,重命名并移动到opt目录

[root@promote software]# mv elasticsearch-head-master /opt/eshm

6,因为文件名较长,为了方便可以将文件重命名

[root@promote opt]# mv elasticsearch-6.2.2/ es622
[root@promote opt]# mv kibana-6.2.2-linux-x86_64/ kibana622
[root@promote opt]# mv logstash-6.2.2/ logstash622
[root@promote opt]# mv node-v8.9.1-linux-x64/ node8

ElasticSearch的配置

1,修改主机名

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

进入之后删除里面的内容(按a键进入操作模式,按esc键退出操作),改为bigdata01 保存退出 :x(这是保存退出的指令,后面就不解释了,如果是改错了,可以输入 :q! 强制退出,不保存修改)
(改成啥都可以,但要与后面的主机名相对应)
2,修改主机列表

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

进入之后,从最后添加本机的地址,和本机的名字
后面两个暂时没有用,可以先添加好,为了后面搭建集群的时候备用
在这里插入图片描述
3,配置es的yml文件参数

[root@promote opt]# vi /opt/es622/config/elasticsearch.yml

在文件的最后插入以下内容,注意本机地址是否相同

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

4,配置系统参数

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

在文件底部插入以下内容

vm.max_map_count = 655360

保存退出之后用以下命令让他立即生效

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

5,配置limits参数

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

在倒数第二行插入以下内容

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

6,修改es622目录的属组,因为它不能用root启动

[root@promote opt]# useradd es   //新建一个普通用户
[root@promote opt]# chown -R es:es es622    //修改组属

7,切换到普通用户并启动

[root@promote opt]# su es

在opt目录下输入以下内容

[es@promote opt]$ ./es622/bin/elasticsearch

底下出现started即为成功, 如果失败了,自己按照错误提示,回去看下自己配置文件的时候,空格,中英文符号有没有搞错
8,在浏览器中打开网址 http://192.168.56.110:9200/可以正常出页面,切有节点的信息,即是启动成功(用自己的主机名)

Head-master及node的配置

1,做这个之前按ctrl+c先把上个界面给关了,另开一个界面
2,配置系统变量

[root@promote ~]# vi /etc/profile

在靠近末尾的地方,加上

export NODE_HOME=/opt/node8

另开一个界面,输入echo $PATH ,把path路径复制粘贴到配置这边
在原来PATH后面加上:$NODE_HOME/bin
在这里插入图片描述
3,激活配置文件

[root@promote ~]# source /etc/profile
[root@promote ~]# node -v
v8.9.1

如果能出来版本号,就是配置成功了,不然就重新回去配置下path

4,其他配置
执行以下命令

[root@bigdata01 ~]# cd /opt/eshm
[root@bigdata01 eshm]# npm install -g grunt-cli //这一步对电脑性能要求较高,多等点时间

好了之后再执行以下命令 ,这一步同样耗时较久

[root@bigdata01 eshm]# npm install  

如果等太久了,直接ctrl+c结束,再执行npm install 命令即可
或执行npm install [email protected] --ignore-scripts

5,配置js文件
找到对应位置 ,

[root@bigdata01 eshm]# vi Gruntfile.js

插入以下代码,

hostname: '*',

在这里插入图片描述

[root@bigdata01 eshm]# vi _site/app.js

4359行(输入行数回车直接跳到指定的行)找到下面的代码进行修改,把localhost改成自己的主机地址

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

修改成为:
this.base_uri =this.config.base_uri ||this.prefs.get("app-base_uri") || "http://192.168.56.110:9200";

6,启动 head-master(保证es处于启动状态)

[root@bigdata01 eshm]# npm run start

出现下图即为启动成功
在这里插入图片描述
在web中测试http://192.168.56.110:9100/ 具体主机名看个人的
如果报错回去查看一下报错的原因,注意代码的位置等

Kibana安装,配置

1,再开一个窗口,配置yml文件

[root@bigdata01 ~]# cd /opt/kibana622
[root@bigdata01 kibana622]# vi config/kibana.yml

在文件末尾加入以下内容(自己的主机地址)

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

2,运行kibana

[root@bigdata01 kibana622]# ./bin/kibana

在web 界面输入**http://192.168.56.110:5601/**测试

Logstash安装使用

1,进入logstash 安装目录

[root@bigdata01 ~]# cd /opt/logstash622

2,输入以下代码,测试logstash是否正常运行,所需时间较久

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

出现以下信息即为成功

The stdin plugin is now waiting for input:
[2020-06-19T22:51:24,912][INFO ][logstash.agent           ] Pipelines running {:count=>1, :pipelines=>["main"]}

3,测试,在控制台输入时,web页面能接收到数据
这里不介绍其他实例 ,后续跟新后会将链接贴进来

ELK 集群的搭建

复制虚拟机

1,将之前配置的虚拟机关机
2,右击复制,选择专家模式,选择完全复制,备份当前虚拟机电脑状态,勾选重新初始化所有网卡的MAC地址
在这里插入图片描述
3,集群数量看自己的需要,这边为演示需要,建立两个复制体,为bigdata02,bigdata03

修改主机名和主机列表

1,分别在黑界面中修改网络IP地址

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

修改主机地址,这边改为192.168.56.111和112
修改之后需要重启网络 systemctl restart network
2,修改主机名

vi /etc/hostname 

使立即生效

hostnamectl set-hostname bigdata02  //这边分别改为02和03

3,主机列表

vi /etc/hosts   //如果之前已经提前添加这里就不用改,不然把新增的虚拟机名加进去

配置免密登录

1,分别打开moba,输入以下命令生成私钥

[root@bigdata01 ~]# ssh-keygen -t rsa -P ""

运行出现停顿之后直接再回车以下
在这里插入图片描述
然后每个都需要生成私钥
2,复制私钥到公钥(每个都需要)

[root@bigdata02 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

3,远程复制到另一台虚拟机
需要连两次,分别连向02和03(每个都需要)

[root@bigdata01 ~]# ssh-copy-id -i .ssh/id_rsa.pub -p22 root@bigdata02

第一个停顿输入yes,第二个停顿输入密码
在这里插入图片描述
测试连接(循环测试)

[root@bigdata01 ~]# ssh root@bigdata02
Last login: Fri Jun 19 23:27:49 2020 from 192.168.56.1   //这样即为成功
[root@bigdata02 ~]#

测试后exit 退出,否则会有影响

配置集群

1,修改两个复制虚拟机的yml文件(两个都改,第一个也需要改一下用户组discovery.zen.ping.unicast.hosts)

[root@bigdata02 ~]# vi /opt/es622/config/elasticsearch.yml

在末尾修改

cluster.name : test
node.name : test-01           //这里改成节点名字
node.master : false            //改成false
network.host : 192.168.56.111   //改成该主机地址
discovery.zen.ping.unicast.hosts : ["192.168.56.110","192.168.56.111","192.168.56.112"]  //添加该主机地址
http.cors.enabled : true
http.cors.allow-origin : "*"

2,删除log 和data信息

rm -rf log
rm -rf data

3,切换到es 用户,开启三个虚拟机的es

[root@bigdata01 ~]# su es
[es@bigdata01 root]$ cd /opt
[es@bigdata01 opt]$ ./es622/bin/elasticsearch

4,再开一个窗口,打开主机的head

[root@bigdata01 ~]# cd /opt/eshm/
[root@bigdata01 eshm]# npm run start

5,打开http://192.168.56.110:9100/

猜你喜欢

转载自blog.csdn.net/yanglitian_123/article/details/106856748