目录

ElasticSearch - 安装

# 官网教程

# 安装ElasticSearch

# Windows版本

ElasticSearch安装

前往官网下载 Windows 版本,https://www.elastic.co/cn/downloads/elasticsearch (opens new window)

image-20211114115512405

下载的是压缩包,选择好目录,进行解压,然后进入解压好的目录,其目录结构为:

根目录
|—— bin:可执行脚本目录
|—— config:配置目录
   |—— log4j2.properties:日志配置文件
   |—— jvm.options:Java 虚拟机的配置
   |—— elasticsearch.yml:es 的配置文件
|—— data:索引数据目录
|—— lib:相关类库 Jar 包目录
|—— logs:日志目录
|—— modules:功能模块目录
|—— plugins:插件目录
1
2
3
4
5
6
7
8
9
10
11

进入 ElasticSearch 的 bin 目录下,会看到很多文件,启动的文件是 elasticsearch.bat

image-20211114115918589

笔记

9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 http 协议 RESTful 端口。

打开浏览器,访问:http://localhost:9200 (opens new window)

image-20211114120301474

# 问题解决

Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配置使用自带的 JDK,一般建议使用系统配置的 JDK。

双击启动窗口闪退,通过路径访问追踪错误,如果是「空间不足」,请修改 config/jvm.options 配置文件。

# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
# Xms represents the initial size of total heap space
# 设置 JVM 最大可用内存为 1G
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
1
2
3
4
5
6

# Linux版本

请先确保 Linux 里已经安装了 jdk 1.8 以上版本

前往官网下载 Linux 版本,https://www.elastic.co/cn/downloads/elasticsearch (opens new window)

准备一台服务器或者有 Linux 系统的虚拟机

在 Linux 里,进入 /usr/local/ 目录,创建一个目录 elastic-stack

cd /usr/local/
mkdir elastic-stack
1
2

将下载的 Linux 版本通过 Xftp 工具传输到 Linux 刚刚创建的目录下

image-20211114171545008

在 Linux 里进入该目录,解压压缩包

cd elastic-stack
tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz
1
2

解压后在当前目录下,如果名字太长,可以去掉版本号,也可以移动到其他位置

# 改名字
mv elasticsearch-7.15.2 es
# 移动位置
mv -r 文件夹 位置
1
2
3
4

增加 elasticSearch 用户

必须创建一个非 root 用户来运行 ElasticSearch5 及以上版本,基于安全考虑,强制规定不能以 root 身份运行。

如果你使用 root 用户来启动 ElasticSearch,则会报错。

增加 elasticsearch 用户:

useradd elasticsearch
passwd elasticsearch
# 设置的密码
1
2
3

修改目录权限至新增的 elasticsearch 用户(没权限启动会报错)

在 root 用户下执行命令(ElasticSearch 安装目录)

# ElasticSearch 安装目录
chown -R elasticsearch /usr/local/elastic-stack/es
1
2

然后修改上述的data和log路径,vi /opt/elasticsearch-7.12.0/config/elasticsearch.yml

# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /data/es
#
# Path to log files:
#
path.logs: /var/log/es
1
2
3
4
5
6
7
8
9

配置文件修改

  1. 修改系统中允许应用最多创建多少文件等的限制权限。Linux 默认来说,一般限制应用最多创建的文件是 65535 个。但是 ES 至少需要 65536 的文件创建权限。
  2. 修改系统中允许用户启动的进程开启多少个线程。默认的 Linux 限制 root 用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启 1024个线程。必须修改限制数为 4096+。因为ES至少需要 4096 的线程池预备。ES在 5.x 版本之后,强制要求在 Linux 中不能使用 root 用户启动 ES 进程。所以必须使用其他用户启动 ES 进程才可以。
  3. Linux 低版本内核为线程分配的内存是 128K。4.x 版本的内核分配的内存更大。如果虚拟机的内存是 1G,最多只能开启 3000+ 个线程数。至少为虚拟机分配 1.5G 以上的内存。

ES 可以对每个进程的文件数进行限制等,如果服务器内存或空间不足,可以通过修改配置文件,进行「裁剪」

修改 /opt/module/es/config/elasticsearch.yml 文件

# 集群名
cluster.name: elasticsearch
# 节点名
node.name: node-1
# 允许外界访问的 ip
network.host: 0.0.0.0
# http 访问端口
http.port: 9200
# 集群节点的 master
cluster.initial_master_nodes: ["node-1"]
1
2
3
4
5
6
7
8
9
10

修改 /etc/security/limits.conf,在文件末尾中增加下面内容:

# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
1
2
3

修改 /etc/security/limits.d/20-nproc.conf,在文件末尾中增加下面内容:

# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
1
2
3
4
5
6

修改 /etc/sysctl.conf,在文件末尾中增加下面内容:

# 一个进程可以拥有的 VMA (虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
1
2

配置文件后,记得重新加载

sysctl -p
1

切换创建好的用户进行启动

-d 代表后台启动

#	切换用户
su elasticsearch
# 先进入安装目录
cd /usr/local/elastic-stack/es
./bin/elasticsearch -d
1
2
3
4
5

启动时,会动态生成文件,如果文件所属用户不匹配,会发生错误,需要重新进行修改用户

# ElasticSearch 安装目录
chown -R elasticsearch /usr/local/elastic-stack/es
1
2

查看安装是否成功

netstat -ntlp | grep 9200
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      11601/java          
tcp6       0      0 ::1:9200                :::*                    LISTEN      11601/java          
#	访问成功
[root@VM-0-6-centos ~]# curl 127.0.0.1:9200
{
    "name": "KELE-BINGTANG",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "0Fgi85zRTo2eU6du7A56Kg",
    "version": {
        "number": "7.15.2",
        "build_flavor": "default",
        "build_type": "zip",
        "build_hash": "93d5a7f6192e8a1a12e154a2b81bf6fa7309da0c",
        "build_date": "2021-11-04T14:04:42.515624022Z",
        "build_snapshot": false,
        "lucene_version": "8.9.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

注意

记得开放端口 9200(外界访问的端口)

2021-11-16 @Young Kbt

# 安装Kibana

Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并 让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如 何流经你的整个应用,都能轻松完成。

下载时尽量下载与 ElasicSearch 一致的版本。

# Windows版本

前往官网下载 Windows 版本:https://www.elastic.co/cn/downloads/kibana (opens new window)

下载后进行解压,目录如图:

image-20211114180733492

进入 bin 目录,双击 kibana.bat 启动服务

笔记

启动 Kibana 之前要启动 Elasticsearch

2021-11-14 @Young Kbt

访问:http://localhost:5601/

kibana 会自动去访问 9200,也就是 elasticsearch 的端口号

修改界面语言

访问界面是英文,可修改成中文,进入根目录下的 config 目录,打开 kibana.yml 文件

滑到最底部,加入

# 默认端口
server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://localhost:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"
1
2
3
4
5
6
7
8

image-20211114181316133

进入根目录下的 bin 目录,执行 kibana.bat 文件即可启动

# Linux版本

请先确保安装了 jdk1.8 以上版本

前往官网下载 Linux 版本:https://www.elastic.co/cn/downloads/kibana (opens new window)

利用 Xftp 工具传输到 Linux 里

image-20211114171648396

解压压缩包

tar -zxvf kibana-7.15.2-linux-x86_64.tar.gz
1

笔记

解压前记得切换到 root 用户,否则无法解压

2021-11-14 @Young Kbt

名字太长。可以去掉版本号

mv kibana-7.15.2-linux-x86_64 kibana
1

修改目录权限至新增的 elasticsearch 用户(没权限启动会报错)

在 root 用户下执行命令(ElasticSearch 安装目录)

# ElasticSearch 安装目录
chown -R elasticsearch /usr/local/elastic-stack/kibana
1
2

修改界面语言

访问界面是英文,可修改成中文,进入根目录下的 config 目录,打开 kibana.yml 文件

vim /usr/local/elastic-stack/kibana/config/kibana.yml
1

滑到最底部,加入:

# 默认端口
server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://localhost:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"
1
2
3
4
5
6
7
8

切换创建好的用户进行启动

#	切换用户
su elasticsearch
# 先进入安装目录
cd /usr/local/elastic-stack/kibana-7.15.2-linux-x86_64
./bin/kibana
1
2
3
4
5

如果打算后台启动:

nohup ./bin/kibana &
1

注意

记得开放端口 5601(外界访问的端口)

2021-11-16 @Young Kbt

# 安装Head

Head 是 elasticsearch 的图形化界面插件客户端,也是 elasticsearch 的集群管理工具,在集群操作用到。

注意

需要 NodeJS 的环境

2021-11-16 @Young Kbt

下载地址:https://github.com/mobz/elasticsearch-head/ (opens new window)

也可以直接打开 Git Bash Here,直接下载

git clone https://github.com/mobz/elasticsearch-head.git
1

# 下载

下载后进行解压,然后在解压目录安装依赖,打开 Vscode 或者管理员运行 CMD

    yarn install
    
    1
    npm install
    
    1
    // Make sure to add code blocks to your code group

    # 配置文件修改

    由于 ES 进程和客户端进程端口号不同,存在跨域问题,所以我们要在 ES 的配置文件中配置下跨域问题。

    进入 ES 根目录 /config,修改 elasticsearch 配置文件:elasticsearch.yml,增加以下两句命令:

    # 跨域配置:
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    1
    2
    3

    # 启动测试

      yarn run start
      
      1
      npm run start
      
      1
      // Make sure to add code blocks to your code group

      启动后打开浏览器,访问:http://localhost:9100/ (opens new window)

      # 配置密码访问

      使用基本许可证时,默认情况下禁用Elasticsearch安全功能。由于我测试环境是放在公网上的,所以需要设置下密码访问。相关文档可以参考这里 (opens new window)

      1. 停止 kibana 和 elasticsearch 服务
      2. xpack.security.enabled 设置添加到 ES_PATH_CONF/elasticsearch.yml 文件并将值设置为 true
      3. 启动elasticsearch (./bin/elasticsearch -d)
      4. 执行如下密码设置器,./bin/elasticsearch-setup-passwords interactive 来设置各个组件的密码
      5. 将elasticsearch.username设置添加到KIB_PATH_CONF/kibana.yml 文件并将值设置给elastic用户: elasticsearch.username: "elastic"
      6. 创建kibana keystore,./bin/kibana-keystore create
      7. 在kibana keystore 中添加密码 ./bin/kibana-keystore add elasticsearch.password
      8. 重启kibana 服务即可 nohup ./bin/kibana &

      然后就可以使用密码登录了

      # 参考文章

      https://www.pdai.tech/md/db/nosql-es/elasticsearch-x-install.html

      更新时间: 2024/01/17, 05:48:13
      最近更新
      01
      JVM调优
      12-10
      02
      jenkins
      12-10
      03
      Arthas
      12-10
      更多文章>