ELK系列之ElasticSearch集群的安装部署

前言

ELK作为日志收集、分析和展示的组件,功能十分强大。本系列将介绍ELK的安装和基于实例的使用过程,每个步骤和测试实例都是亲自实验过的。本篇将介绍ElasticSearch集群的安装,部署的ElasticSearch的版本为7.2,JDK8的版本,计划用三台机器组成一个ElasticSearch集群,从而组成高可用。
官网下载:https://www.elastic.co/cn/downloads/elasticsearch
百度云盘百度云盘链接 提取码:g34e

1、本地环境

IP 用户 组件
192.168.158.129 elk elasticsearch ,head
192.168.158.130 elk elasticsearch
192.168.158.131 elk elasticsearch

2、安装ElasticSearch

在安装之前,我们需要安装JDK8的环境,没有安装的,先看下面的链接进行安装:JDK8安装教程链接

  1. ELK不允许使用root账户,我们创建elk用户
[root@localhost ~]# useradd elk
  1. 解压
[root@localhost ~]# su elk
[elk@localhost root]$ cd /home/elk/
[elk@localhost ~]$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz
  1. 编辑配置文件
[elk@localhost ~]$ vi elasticsearch-7.2.0/config/elasticsearch.yml

在文件的最底部添加上以下配置:

#三个集群需要同样的集群名
cluster.name: my-application
#每个node的名字需要唯一
node.name: node-1
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#数据存放的位置,需要新建一个目录
path.data: /home/elk/elasticsearch-7.2.0/data
#日志存放的位置,需要新建一个目录
path.logs: /home/elk/elasticsearch-7.2.0/log
#监听的ip
network.host: 0.0.0.0
#监听的端口
http.port: 9200
transport.tcp.port: 9300
xpack.security.enabled: false
#允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.158.129", "192.168.158.130", "192.168.158.131"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
  1. 主机参数修改

修改参数是为了解决es启动时的这二个报错
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[elk@localhost ~]$ su root
[root@localhost elk]# vi /etc/sysctl.conf

添加下面的配置

vm.max_map_count=655360

并执行下面命令,让配置生效

[root@localhost elk]# sysctl -p

继续修改另外一个配置

[root@localhost elk]# vi /etc/security/limits.conf

在文件的最底部,添加下面的配置

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

编辑好保存后,退出该用户,再登录,让配置生效,我们来查看下,用户可以打开文件的最大数目、用户可以开启进程/线程的最大数目是否已经修改

[root@localhost elk]# ulimit -Hn
65536
[root@localhost elk]# ulimit -Hu
4096
  1. 启动
[root@localhost elk]# cd elasticsearch-7.2.0/bin/
[root@localhost bin]# su elk
#-d 表示后台启动,-p 表示启动的进程号保存在pid.log中
[elk@localhost bin]$ ./elasticsearch -d -p pid.log

启动成功后,将另外两台机器进行重复操作,配置文件唯一的区别是node.name分别为node-2、node-3,其它配置不变。

  1. 集群启动

配置完主从节点,三台机器同时启动elasticsearch,关闭防火墙,执行以下命令看是否安装成功

#关闭防火墙,否则请求会出现503
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# su elk
[elk@localhost bin]$ curl -XGET http://127.0.0.1:9200/_cat/nodes?pretty
#出现下面的结果就表示集群搭建成功了
192.168.158.129  8 88 10 0.11 0.17 0.12 mdi * node-1
192.168.158.130 10 86  9 0.13 0.27 0.13 mdi - node-2
192.168.158.131 11 86 12 0.18 0.28 0.13 mdi - node-3

3、安装head

在elasticsearch的高级版本之后,head不在是一个插件,而是一个独立的应用来部署,需要安装node

  1. 安装node(已经安装的可以忽略)

将安装包上传到/usr/local/(我习惯的)目录下

#解压
[root@localhost local]# tar -zxvf node-v8.16.0-linux-x64.tar.gz
#重命名
[root@localhost local]# mv node-v8.16.0-linux-x64 nodejs
#通过建立软连接变为全局
[root@localhost local]# ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
[root@localhost local]# ln -s /usr/local/nodejs/bin/node /usr/local/bin/
#查看版本
[root@localhost local]# node -v
v8.16.0
  1. 部署head
#解压
[elk@localhost ~]$ unzip elasticsearch-head-master.zip
[elk@localhost ~]$ cd elasticsearch-head-master
#安装
[elk@localhost elasticsearch-head-master]$ npm install
#运行
[elk@localhost elasticsearch-head-master]$ npm run start

启动后,如果不报错,可以用netstat nltp 查看下端口,看到9100端口,就表示安装成功了,如果在window中访问,需要更改一下文件

[elk@localhost elasticsearch-head-master]$ vi Gruntfile.js

找到下面位置,增加hostname行,就可以在window浏览器中使用ip:9100访问了

connect: {
       server: {
               options: {
                       hostname:'0.0.0.0',
                       port: 9100,
                       base: '.',
                       keepalive: true
               }
       }
}

安装成功后,打开 http://192.168.158.129:9100/,浏览器显示如下的界面,则安装成功:
在这里插入图片描述
在Head组件的界面上,可以很方便的查看集群的状态和数据。

结束语

本篇到此,elasticsearch的安装就结束了,下一篇,将介绍logstash和kibana的安装。

如果本篇对您有帮助,请点个赞再走,您的点赞是博主的动力!

原创文章 55 获赞 76 访问量 17万+

猜你喜欢

转载自blog.csdn.net/cool_summer_moon/article/details/105945245