从零开始!ELK的安装、配置以及集群搭建!

写在前面: 这是小白在学习过程中整理的笔记,不仅可以用于备忘疏漏的步骤,也希望抛砖引玉能与大家一起来讨论整个ELK安装到使用过程中遇到的各种状况,一起学习进步!

下面就让我们开始吧!

准备阶段

vm虚拟机与配置java

vmware虚拟机安装教程

Linux配置java开发环境

这两篇是同学写的相关教程,我个人认为十分详细,很实用。如果在虚拟机这里有问题可以参考以上两篇博文。按照博文里的步骤走到最后的话,我们的准备阶段就完成一大半了。

需要的安装包

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
elasticsearch-analysis-ik-6.2.2

以上是我们这里要使用的安装包,如果有需要的话可以在评论区留言。

在我们的虚拟机里先创建一个software根目录mkdir software,专门存放这些安装包,把安装包都拖进来,这样方便以后查找和删除。
在这里插入图片描述

然后就可以开始安装了!

Elasticsearch

Elasticsearch,又简称ES,是基于Lucene的开源分布式搜索引擎,大幅降低了PB级海量数据存储、检索、分析门槛

解压ES安装包

第一步:解压

tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
# 解压es安装包到opt目录下

第二步:更名

cd /opt # 进入opt目录
mv elasticsearch-6.2.2/ es6
# 将这个名字很长的文件更名为es6,方便以后使用

在这里插入图片描述

ES配置

第一步: 修改主机名

vi /etc/hostname

初始化的名称是localhost.localdomain,建议改一个简短好记的主机名;我这里改成了cent001

:x保存退出 (下文基本省略这句话,修改完文件默认保存退出,除非有特殊说明)

第二步: 修改主机列表

vi /etc/hosts

进入这个文件后,在尾行添加本机IP地址 主机名
我个人的例子如下:在这里插入图片描述

第三步: 配置es参数

vi /opt/es6/config/elasticsearch.yml

进入这个文件后,在尾行添加:

cluster.name: #集群名
node.name: #节点名
node.master: #是否为主节点 true/false
network.host: #本机IP地址
discovery.zen.ping.unicast.hosts: [] #[]内输入IP地址或主机名,要加双引号
http.cors.enabled: true
http.cors.allow-origin: "*"

注意!这里添加的文本中,在:后一定要加空格,否则可能会报错!

第四步: 配置系统参数(1)

vi /etc/sysctl.conf

插入内容:

vm.max_map_count=655360

然后在命令行输入以下命令即时刷新:

sysctl -w vm.max_map_count=655360

在这里插入图片描述
第五步: 配置系统参数(2)

vi /etc/security/limits.conf

插入内容:

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

第六步: 新建用户并修改所属

做这一步的根本原因在于:ES不能使用root启动!

useradd es
passwd es

在这里插入图片描述
这里需要我们给新用户es设置密码,大家请按自己实际情况来操作

然后修改es6目录的属组:

chown -R es:es es6

可以使用ll来查看是否修改完成:
在这里插入图片描述

至此,ES配置已完成,然后让我们来测试一下!

启动ES

输入su 用户名,切换到刚才新建的普通用户

在/opt/es6目录下输入./bin/elasticsearch

底部出现started则表示启动成功
在这里插入图片描述
还可以去浏览器输入本机IP地址:9200,可以正常出页面,切有节点的信息,即是启动成功!
在这里插入图片描述

head-master及node

这里在上述步骤操作完之后,如果想让es一直开启,我们可以在标签页右键选择Duplicate Tab,然后在新的标签页继续操作

解压head-master

由于这里head-master是zip文件,所以我们需要unzip来解压。有的同学可能还没有装unzip工具,这里要先安装一下:在这里插入图片描述

unzip安装好之后输入如下指令:

unzip elasticsearch-head-master.zip
mv elasticsearch-head-master /opt
cd /opt
mv elasticsearch-head-master/ head

将head-master解压并移动到opt目录下,然后改名成head(或者自己认为比较简便的文件名)

再解压node安装包:(并改名为node8)

tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt
cd /opt
mv node-v8.9.1-linux-x64/ node8

配置

第一步:

vi /etc/profile

底部添加:

export NODE_HOME=/opt/node8
export PATH=$PATH:$NODE_HOME/bin

需要注意的是:如之前在java配置过PATH变量,则在原先的尾部增加:$NODE_HOME/bin (注意要有英文冒号)

此外,个人还建议使用echo $PATH来获取初始路径信息,并将其添加进来;最后的profile文件内容应当如下:

export JAVA_HOME=/opt/jdk1.8.0_221 #这里因人而异
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin #初始路径
export NODE_HOME=/opt/node8 #这里因人而异
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$NODE_HOME/bin:$PATH

然后source /etc/profile激活配置文件,node -v可以查看是否配置成功:
在这里插入图片描述

第二步:

cd /opt/head
npm install -g grunt-cli #等待的时间比较长
npm install
如果这里出错或者长时间卡顿,则强行中止并输入:
npm install [email protected] --ignore-scripts

第三步:

vi Gruntfile.js

然后在下面这个段落位置添加:hostname: '*',

connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',     <---添加的内容
            base: '.',
            keepalive: true
        }
    }
}

第四步:

vi _site/app.js

找到如下代码,并进行修改:(大约在4360行)

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.23.31:9200"; <---localhost修改成自己本机的IP地址

启动

输入如下命令,即可启动

npm run start

在浏览器输入http://IP地址:9100/可以查看是否启动成功

注意! es需要处于开启状态,否则这里会报错,无法启动

使用hm对es测试

1.点击索引页签,点击新建索引
2.点击总览页签,即可查看索引的情况

kibana

依旧是解压—安装—改名三部曲
在这里插入图片描述
在这里插入图片描述
这里解压时间耗时可能比较久,不 要 恐 慌

配置

进入/opt/kibana目录
输入vi config/kibana.yml
尾行添加:(IP地址因人而异)

server.host: "本机IP地址" 
elasticsearch.url: "http://本机IP地址:9200"

启动

还是在kibana目录下,输入./bin/kibana,启动kibana
浏览器输入http://本机IP地址:5601

在这里插入图片描述
使用dev tools可以进行更多对数据的处理,这里不多进行赘述

logstash

如图三部曲,不多复述了
在这里插入图片描述
在这里插入图片描述

测试

进入/opt/logstash目录下:

  • 输入:./bin/logstash -e ‘input { stdin{} } output { stdout{} }’ 来测试logstash是否正常工作
  • 输入:./bin/logstash -e ‘input { stdin{} } output { stdout{ codec => json } }’ 把控制台输入的数据转换成json格式的数据,也可以替换成rubydebug类型的

然后更多的是logstash的语法,这里只是安装及配置,先不做过多描述了

集群

克隆虚拟机

所谓集群,就是由多台机器“捆绑”在一起,形成了一个群体。
为了实现这一目标,我们需要对刚才配置好的虚拟机进行克隆!

在这里插入图片描述
右键虚拟机,选择管理,选择克隆(注意虚拟机要处于关闭状态)

然后选择 “克隆自:虚拟机当前的状态” —> “克隆方法:创建完整克隆” —> “虚拟机名称、位置:请自行输入” —> “完成!”

这时候不要急着打开新的虚拟机,我们还需要对它的mac地址重新生成一下:“编辑虚拟机设置” —> “网络适配器” —> “高级” —> “MAC地址:生成”
在这里插入图片描述
对两个网络适配器(仅主机和NAT)的mac地址都重新生成之后,再开启克隆的虚拟机

修改主机名和主机列表

先在虚拟机下修改本机的IP地址:修改IPADDR=…

vi /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network

#如果连接不上moba,可以查看防火墙设置
systemctl status firewalld
systemctl disable firewalld #禁用防火墙

连接MobaXtreme

修改主机名: (两种方法)
1.hostnamectl set-hostname 主机名
2.vi /etc/hostname 内容修改为主机名
可能需要重启才生效

修改主机列表:
vi /etc/hosts 内容增加:主机IP地址 主机名

注意:
1.这里克隆虚拟机的IP地址和主机名都要和原来的不同!
2.所有集群内的虚拟机都要在/etc/hosts下互相添加对方的IP地址和主机名

配置免密登录

1.ssh-keygen 生成私钥
在这里插入图片描述
具体步骤基本上是一路回车,如果有问“Overwrite(y/n)?” 输入y就好了

2.cat .ssh/id_rsa.pub >> .ssh/authorized_keys 复制私钥到公钥
注意!这一步需要在/root/目录下完成,不然会报错

3.ssh-copy-id -i .ssh/id_rsa.pub -p22 root@主机名 远程复制到另一台机器
在这里插入图片描述
有需要输入yes/no的就输入yes,有需要输入密码的就输入密码

4.ssh -p 22 root@主机名 远程登录验证,不需要输入密码即可

配置elasticsearch集群

1.vi /opt/es6/config/elasticsearch.yml
修改节点名,ip地址,主机列表
在这里插入图片描述

因为克隆的虚拟机我们不做主节点,这里的node.master要改成false,node.name也要改一下;还有要在每个虚拟机的discovery.zen.ping.unicast.hosts下添加集群内的所有主机名

2.在/opt/es6目录下删除data和log目录

rm -rf data/
rm -rf logs/

3.su es 切换用户
先运行主节点,再运行子节点
在这里插入图片描述

在这里插入图片描述
主节点的虚拟机运行head-master,如果不记得可以翻看上文
浏览器输入主节点IP地址:9100,出现下图所示,就代表集群搭建成功!
在这里插入图片描述

总结

这里介绍的是安装配置ELK和简单的集群搭建,不涉及个中工具的语法,之后我会再写一篇博客,专门总结一下具体如何使用这些工具!希望这篇博文能帮到大家!

猜你喜欢

转载自blog.csdn.net/Helltaker/article/details/108365270