ELK----Elasticsearch7集群部署

ELK---->>>Elasticsearch7集群部署

下载二进制包

 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz

部署

1 在每个节点创建用户 ela

useradd ela

2 在每个节点上解压到指定目录

tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/

3 在每个节点上修改安装主目录的属主和属组

 chown  -R ela.ela  /usr/local/elasticsearch-7.10.0

4 在每个节点上设置系统内核参数
设置内存映射

sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p
还需要设置关于这个进程可以打开的文件描述符数量
[root@prod ~]# tail /etc/security/limits.conf

#@faculty        soft    nproc           20

#@faculty        hard    nproc           50

#ftp             hard    nproc           0

#@student        -       maxlogins       4

# End of file

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
  1. 编辑配置文件:

     /usr/local/elasticsearch-7.10.0/config/elasticsearch.yml 
    
    • ela1节点

cluster.name: elk  #集群的名字
node.name: ela1    #节点的名字
node.data: true
network.host: 0.0.0.0 #监听的地址
http.port: 9200  #开放的端口

discovery.seed_hosts:  #下面是集群的ip  三种写法

   - ela1
   - 192.168.122.106:9300
   - 192.168.122.218
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"] #节点的名字
  • ela2节点
cluster.name: elk  #集群的名字
node.name: ela2    #节点的名字
node.data: true
network.host: 0.0.0.0 #监听的地址
http.port: 9200  #开放的端口

discovery.seed_hosts:  #下面是集群的ip  三种写法

   - ela1
   - 192.168.122.106:9300
   - 192.168.122.218
 cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]  #节点的名字
  • ela3节点
cluster.name: elk  #集群的名字
node.name: ela3    #节点的名字
node.data: true
network.host: 0.0.0.0 #监听的地址
http.port: 9200  #开放的端口

discovery.seed_hosts:  #下面是集群的ip  三种写法

   - ela1
   - 192.168.122.106:9300
   - 192.168.122.218
 cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]  #节点的名字

参数解释:

cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
network.host 绑定节点IP。
http.port 监听端口。
path.data 数据存储目录。
path.logs 日志存储目录。
discovery.seed_hosts 指定集群成员,用于主动发现他们,所有成员都要写进来,包括自己,每个节点中应该写一样的信息。
cluster.initial_master_nodes 指定有资格成为 master 的节点
http.cors.enabled 用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。

注意事项:
当您为提供自定义设置时 network.host,Elasticsearch会假设您正在从开发模式过渡到生产模式,并将许多系统启动检查从警告升级到异常。
cluster.initial_master_nodes 中的节点名称需要和 node.name 的名称一致。

启动集群

在每个节点上启动 elasticsearch 进程 切换到普通用户 ela

su - ela

执行如下命令:

cd /usr/local/elasticsearch-7.10.0

./bin/elasticsearch -d -p /tmp/elasticsearch.pid

参数

-d 后台运行
-p 指定一个文件,用于存放进程的 pid

查看日志:

日志消息可以在 /usr/local/elasticsearch-7.10.0/logs 目录中找到

[root@ela1 logs]# ls elk.log
elk.log

查看集群健康状态

 curl -X GET "localhost:9200/_cat/health?v" 
 
[elastic@ela3 elasticsearch-7.10.0]$ curl -X GET "localhost:9200/_cat/health?v"
epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1609065251 10:34:11  elk     green           3         3      0   0    0    0        0             0                  -                100.0%


三种不同状态的含义

  • 黄色 如果您仅运行单个Elasticsearch实例,则集群状态将保持黄色。单
    节点群集具有完整的功能,但是无法将数据复制到另一个节点以提供弹性。
  • 绿色 副本分片必须可用,群集状态为绿色。
  • 红色 如果群集状态为红色,则某些数据不可用。

查看集群节点信息

[elastic@ela3 elasticsearch-7.10.0]$ curl -X GET "localhost:9200/_cat/nodes?v"
ip              heap.percent ram.percent cpu load_1m load_5m load_15m node.role  master name
192.66.66.102          59          93   0    0.00    0.01     0.05 cdhilmrstw -      ela2
192.66.66.103           65          94   0    0.00    0.02     0.06 cdhilmrstw -      ela3
192.66.66.104             49          94   0    0.07    0.05     0.05 cdhilmrstw *      ela1

设置java占用堆大小

 vim /usr/local/elasticsearch-7.10.0/config/jvm.options
 Xms(最小堆大小 )和 Xmx(最大堆大小)的大小来设置 整个堆 。这两个设置必须彼此相等。
 可以把1g改成512m

在这里插入图片描述

排错:

  • 如果不小心用root用户启动了 会启动失败
# 找到进程

[ela@ela1 elasticsearch-7.10.0]$ jdk/bin/jps
8244 Jps
7526 Elasticsearch

# 杀死进程

[ela@ela1 elasticsearch-7.10.0]$ kill -9 7526

# 删除数据目录中的所有文件

[ela@ela1 elasticsearch-7.10.0]$ rm -rf data/*

# 删除 keystore 文件

[ela@ela1 elasticsearch-7.10.0]$ rm -rf config/elasticsearch.keystore

# 重新启动进程

[ela@ela1 elasticsearch-7.10.0]$ bin/elasticsearch -d -p /tmp/elk.pid



用docker-compose启动集群

docker-compose.yml 文件

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

运行集群


首先需要设置一下系统内核参数

sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p
1
2
还需要设置关于这个进程可以打开的文件描述符数量

[root@prod ~]# tail /etc/security/limits.conf

#@faculty        soft    nproc           20

#@faculty        hard    nproc           50

#ftp             hard    nproc           0

#@student        -       maxlogins       4

# End of file

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

 

进入含有 docker-compose.yml 文件的目录,之后执行如下命令启动集群

docker-compose   up  -d

查看集群:

curl -X GET "localhost:9200/_cat/nodes?v&pretty"
      hard    nproc           0

#@student - maxlogins 4

End of file

  • soft nofile 65536
  • hard nofile 131072
  • soft nproc 2048
  • hard nproc 4096

 进入含有 docker-compose.yml 文件的目录,之后执行如下命令启动集群

```bash
docker-compose   up  -d

查看集群:

curl -X GET "localhost:9200/_cat/nodes?v&pretty"
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值