Elastic Stack-01-Elasticsearch7.10.0-单节点部署

Elastic Stack-01-Elasticsearch7.10.0-单节点部署_第1张图片

Elasticsearch:存储,搜索和分析

Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和丰富您的数据并将其存储在Elasticsearch中。使用Kibana,您可以交互式地探索,可视化和共享对数据的见解,并管理和监视堆栈。Elasticsearch是发生索引,搜索和分析魔术的地方。

Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。

支持的数据类型有:

  • 结构化文本
  • 非结构化文本
  • 数字数据
  • 地理空间数据

Elastic Stack-01-Elasticsearch7.10.0-单节点部署_第2张图片

一、 二进制压缩包方式下载和安装

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

1 不同的版本依赖不同版本的 Java

官方链接:https://www.elastic.co/cn/support/matrix#matrix_jvm

下载二进制压缩包

二进制压缩包可以解压后直接使用无需编译


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

总结几点:

  • 5.x 版本和更高的版本都可以使用 JDK 1.8

  • JDK 的版本不是越高越好,大部分都不支持 JDK 9 和 10

  • 从6.5 版本开始支持 JDK11

2 解压安装

解压到指定的安装目录即可完成安装

这里是安装到系统的 /usr/local/ 目录下


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

3 目录结构介绍

Elastic Stack-01-Elasticsearch7.10.0-单节点部署_第3张图片

4 运行

运行 Elasticsearch 要求使用非 root 用户,所以需要建立一个普通的用户来运行 Elasticsearch.

useradd  elastic

运行期间可以会对安装目录下的日志文件进行写操作,所以需要修改安装主目录是属于 elastic 用户的

root 用户执行如下操作

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

之后切换用户并启动


cd /usr/local/elasticsearch-7.10.0
./bin/elasticsearch 

这会运行于前台

以后台方式运行可以使用 -d 参数

./bin/elasticsearch  -d

5 查看状态

[root@prod ~]# curl  http://localhost:9200/
{
  "name" : "prod",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "nYkwCL9YQEinaJk2dstK0w",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
    "build_date" : "2020-11-09T21:30:33.964949Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

恭喜你!到目前为止,你已经成功了运行了一个节点的 Elasticsearch。

注意: 这里只是启动了一个节点,Elasticsearch 本身是支持集群的,集群至少三个节点。后面章节如何启动一个集群。

默认端口号是 :

  • 9200 用于外部访问的监听端口,比如查看集群状态,向其传输数据,查询数据等
  • 9300 用户集群中节点之间的互相通信,比如主节点的选举,集群节点信息的通告等。

查看端口的命令如下:

ss -ntal

二、YUM 方式安装

Centos5及以下不支持这种方式

Elasticsearch包含 来自JDK维护者(GPLv2 + CE)的OpenJDK捆绑版。
所以不需要额外部署 JDK 环境即可。

1 下载并安装公共签名密钥

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2 安装

首先在 /etc/yum.repos.d/ 目录下创建一个文件 elasticsearch.repo ,并写入如下内容:

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

之后可以使用如下命令安装


yum install --enablerepo=elasticsearch elasticsearch

默认情况下,已配置的存储库是禁用的。这样就消除了elasticsearch在升级系统其余部分时意外升级的可能性。每个安装或升级命令必须显式启用存储库,如上面的示例命令所示。

三、docker-compose 方式

下面的 Docker Compose 文件示例 创建了一个三节点的Elasticsearch集群。节点es01上监听宿主机的 9200 端口,并es02和es03交谈es01过泊坞网络。

请注意,此配置在所有网络接口上公开端口9200,并且鉴于Docker iptables在Linux上的操作方式,这意味着您的Elasticsearch集群是可公开访问的,可能会忽略任何防火墙设置。如果您不想公开端口9200,而是使用反向代理,请在docker-compose.yml文件中替换9200:9200为127.0.0.1:9200:9200。然后,只能从主机本身访问Elasticsearch。

确保为Docker Engine分配了至少4GiB的内存。

1 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

2 运行集群

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

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

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

docker-compose   up -d

默认情况下,Elasticsearch 在 Docker 容器中是使用用户 elasticsearch 运行的,并且对应的 uid:pid1000:0

3 查看集群节点信息

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

4 使用自定义配置文件

容器内的 /usr/share/elasticsearch/config/ 目录用于存放配置文件,可以把自定义的配置文件挂载到此目录下实现。

当然,您可以使用Docker环境变量来设置各个Elasticsearch配置参数。

你可能感兴趣的:(Elastic,linux)