您的位置:首页 > 其它

Elasticsearch-6.5.4集群安装部署

2020-02-04 00:20 211 查看

ES集群安装部署

硬件选择

  1. 环境选择
    集群名称:phone_his_log
    ElasticSearch安装需要JDK,本文的ElasticSearch版本为6.5.4,JDK为1.8.
服务器ip 节点属性 分配JVM内存 节点名称 节点端口
192.169.0.23 Data1节点 8GB data1 9200/9300
Master1节点 2GB master1 9201/9301
192.169.0.24 Data2节点 8GB data2 9200/9300
Master3节点 2GB master2 9201/9301
192.169.0.25 Data3节点 8GB data1 9200/9300
Master4节点 2GB master2 9201/9301

相关配置见下文,这个表格以下ES配置的地方会会使用到

下载地址:
ElasticSearch-6.5.4: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
Kibana-6.5.4:https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz
JDK1.8 : http://www.oracle.com/technetwork/java/javase/downloads

Linux配置

  • 修改最大内存限制

    修改sysctl.conf文件

    vim /etc/sysctl.conf

    在末尾增加如下配置:

    vm.max_map_count = 655360 //硬件内存大小
    vm.swappiness=1

    然后保存退出,输入以下命令使其生效

    sysctl -p

    使用命令查看:
    tail -3 /etc/sysctl.conf

  • 修改最大线程个数
    修改90-nproc.conf文件

    vim /etc/security/limits.d/90-nproc.conf

    注:不同的linux服务器90-nproc.conf可能文件名不一样,建议先在/etc/security/limits.d/查看文件名确 认之后再来进行更改
    将下述的内容
    soft nproc 2048

    修改为以下内容
    soft nproc 4096

    使用命令查看
    tail -3 /etc/security/limits.d/90-nproc.conf

  • 修改最大打开文件个数
    修改limits.conf

    vim /etc/security/limits.conf

    在末尾添加如下内容:

    hard nofile 65536
    soft nofile 65536
    elastic soft memlock unlimited
    elastic hard memlock unlimited

  • 防火墙关闭
    关闭防火墙的命令

  • CentOS 6
    查询防火墙状态:
    [root@localhost ~]# service iptables status
    停止防火墙:
    [root@localhost ~]# service iptables stop
    启动防火墙:
    [root@localhost ~]# service iptables start
    重启防火墙:
    [root@localhost ~]# service iptables restart
    永久关闭防火墙:
    [root@localhost ~]# chkconfig iptables off
    永久关闭后启用:
    [root@localhost ~]# chkconfig iptables on

  • CentOS 7
    关闭防火墙
    systemctl stop firewalld.service

JDK安装

  • 文件准备
    解压下载下来的JDK
    tar -xvf jdk-8u144-linux-x64.tar.gz

    移动到opt/java文件夹中,没有就新建,然后将文件夹重命名为jdk1.8
    mv  jdk1.8.0_144 /opt/java
    mv  jdk1.8.0_144  jdk1.8
  • 环境配置
    java -version
    查看JDK版本,版本不适合的话,就卸载

    输入
    rpm -qa | grep java
    查看信息

    然后输入
    rpm -e --nodeps “你要卸载JDK的信息”
    如:
    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64


    确认没有了之后,解压下载下来的JDK
    然后编辑 profile 文件,添加如下配置
    输入:
    vim /etc/profile

    添加下列信息
    export JAVA_HOME=/opt/java/jdk1.8 export JRE_HOME=/opt/java/jdk1.8/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=.:${JAVA_HOME}/bin:$PATH


    输入:
    source /etc/profile

    使其生效

ElasticSearch安装

  • 文件准备
    将下载好的elasticsearch文件解压
    输入

    tar -xvf elasticsearch-6.5.4.tar.gz

    然后移动到/opt/elk文件夹 里面,没有该文件夹则创建,然后将文件夹重命名为masternode
    在/opt/elk输入

    mv elasticsearch-6.5.4 /opt/elk
    mv  elasticsearch-6.5.4  masternode
  • 配置修改
    因为elasticsearch需要在非root的用户下面操作,并且elasticsearch的文件夹的权限也为非root权限, 因此我们需要创建一个用户进行操作,我们创建一个elastic用户,并赋予该目录的权限。
    命令如下:

    adduser elastic
    chown -R elastic:elastic  /opt/elk/masternode

    创建ElasticSearch数据和日志的文件夹,先切换到elastic用户下面

    su elastic
    mkdir  /home/elk
    mkdir  /home/elk/masternode
    mkdir  /home/elk/masternode/data
    mkdir  /home/elk/masternode/logs
    mkdir  /home/elk/datanode1
    mkdir  /home/elk/datanode1/data
    mkdir  /home/elk/datanode1/logs

    创建成功之后,修改各个节点elasticsearch.yml和jvm.options文件的配置
    注意这里使用的是elastic用户

    cd /opt/elk/
    vim masternode/config/elasticsearch.yml
    vim masternode/config/jvm.options

    masternode的elasticsearch.yml文件配置如下:

    elasticsearch.yml文件参数配置说明:

    cluster.name:
    集群名称,同一集群的节点配置应该一致。es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
  • node.name: 该节点的名称。
  • path.data: 数据存放的路径。
  • path.logs: 日志存放的路径。
  • network.host: 设置ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。
  • network.publish_host: 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
  • transport.tcp.port:设置节点间交互的tcp端口,默认是9300。
  • http.port:设置对外服务的http端口,默认为9200。
  • discovery.zen.ping.unicast.hosts: 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
  • node.master: 指定该节点是否有资格被选举成为node,默认是true。  node.data: 指定该节点是否存储索引数据,默认为true。
  • node.ingest: 指定该节点是否使用管道,默认为true。
  • index.number_of_shards: 设置默认索引分片个数,默认为5片。
  • index.number_of_replicas:设置默认索引副本个数,默认为1个副本
  • discovery.zen.minimum_master_nodes:设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
  • bootstrap.memory_lock: 设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过
    ulimit -l unlimited
    命令。
  • http.max_content_length: 设置内容的最大容量,默认100mb

将jvm.options配置Xms和Xmx改成4G,配置如下:

在配置完masternode节点的ElasticSearch之后,我们再来配置datanode节点的,我们将masternode节点copy一份并重命名为datanode1,然后根据上述示例图中红色框出来简单更改一下即可。
命令如下:

cd /opt/elk/
cp -r  masternode/ datanode1
vim datanode1/config/elasticsearch.yml
vim datanode1/config/jvm.options

datanode的elasticsearch.yml文件配置如下:

将jvm.options配置Xms和Xmx改成8G,配置如下

注:配置完成之后需要使用ll命令检查一下masternode和datanode1权限是否属于elastic用户的,若不属于,可以使用chown -R elastic:elastic +路径 命令进行赋予权限
上述配置完成之后,可以使用相同的方法在其他的机器在操作一次,或者使用ftp工具进行传输,又或者使用scp命令进行远程传输文件然后根据不同的机器进行不同的修改。
scp命令示例:

jdk环境传输:

scp -r /opt/java root@slave1:/opt
scp -r /opt/java root@slave2:/opt

ElasticSearch环境传输:

scp -r /opt/elk root@slave1:/opt
scp -r /home/elk root@slave1:/opt
scp -r /opt/elk root@slave2:/opt
scp -r /home/elk root@slave2:/opt
  1. 启动ElasticSearch
    这里还是需要使用elastic用户来进行启动,每台机器的每个节点都需要进行操作!
    在/opt/elk的目录下输入:
    su elastic
    cd /opt/elk
    ./masternode/bin/elasticsearch -d
    ./datanode1/bin/elasticsearch -d
    启动成功之后,可以输入jps命令进行查看或者在浏览器上输入 ip+9200或ip+9201进行查看。
    出现以下界面表示成功!

kibana 安装

kinaba只需要部署一台即可,直接通过root用户进行操作,需要注意的是kinaba需要和ElasticSearch服务器网络ping通即可

  1. 文件准备
    将下载下来的kibana-6.5.4-linux-x86_64.tar.gz的配置文件进行解压
    在linux上输入:
    tar -xvf kibana-6.5.4-linux-x86_64.tar.gz

    然后移动到/opt/elk 里面,然后将文件夹重命名为 kibana6.5.4
    输入
    mv  kibana-6.5.4-linux-x86_64  /opt/elk
    mv  kibana-6.5.4-linux-x86_64  kibana6.5.4
  2. 配置修改
    进入文件夹并修改kibana.yml配置文件:
    cd /opt/elk/kibana6.5.4
    vim config/kibana.yml
    将配置文件中的
    server.host: "localhost"

    修改为
    server.host: "192.169.6.183"

    然后一行新增,这行的意思是不使用帐号密码登录
    xpack.security.enabled: false

  3. Kinaba 启动
    root用户下启动
    在kibana6.5.4文件夹输入:
    nohup ./bin/kibana >/dev/null 2>&1 &

    浏览器输入:
    http://IP:5601

程序关闭

  1. Elasticsearch进程关闭
    输入
    jps获取Elasticsearch进程号

    然后执行
    kill -9 进程号
    注意:如果需要关闭集群需要一个节点一个节点的关闭,如果需要关闭的是Master节点时间长,需要关闭集群下的Data节点
  2. Kinaba程序关闭
    输入
    netstat -tunlp|grep 5601

    获取kinaba进程号

    然后执行
    kill -9 进程号
    例如:kill -9 309449
  • 点赞
  • 收藏
  • 分享
  • 文章举报
技术橙子 发布了8 篇原创文章 · 获赞 1 · 访问量 316 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: