ElasticSearch - 多环境安装部署

233 阅读3分钟

我正在参加「掘金·启航计划」

ES入门 - 环境安装

Windows上安装ES

下载软件

Elasticsearch官网

Elasticsearch下载地址

本文档使用的是 Elasticsearch7.8.0 版本

es_002

安装软件

Windows 版的 Elasticsearch 的安装很简单,解压即安装完毕,解压后的 Elasticsearch 的目录结构如下

es_003

目录含义
bin可执行脚本目录
config配置目录
jdk内置JDK目录
lib类库
logs日志目录
moudules模块目录
plugins插件目录

解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务

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

打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果

es_004

遇到问题

  • 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

Windows上安装Kibana

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

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

下载软件

Kibana下载地址

es_005

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

es_010

注意:启动 Kibana 之前要启动 Elasticsearch

修改配置

进入根目录下的 config 目录,打开 kibana.yml 文件

修改以下配置文件

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

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

打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:5601/,测试结果

es_011

可以连接Elasticsearch索引,或者进入控制台进行操作

es_013

es_012

Linux上安装ES

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

输入以下命令查看java版本信息,如显示以下信息,则需要安装java环境。

es_006

Linux上安装java

1、下载java安装包

java8下载地址

2、上传安装java环境

  • 创建jdk文件夹、并解压jdk包
# 进入安装目录、创建文件夹
cd /usr/local
mkdir java
cd java
# 上传文件命令:rz
rz
# 解压 tar -zxvf 上传的jdk压缩包名
tar -zxvf jdk-8u351-linux-x64.tar.gz

es_007

  • 配置环境变量、并生效配置
# 打开配置文件
vim /etc/profile
# 在文件末尾追加【jdk文件名:是当前解压文件夹名,如我这里的jdk1.8.0_351】
JAVA_HOME=/usr/local/java/jdk文件名
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
# esc退出编辑模式,按shift+:输入wq保存并退出
# 查看配置文件
cat /etc/profile
# 生效配置
source /etc/profile
  • 检查java是否安装成功
java -version

es_008

Linux上安装es

1、下载es安装包

es7.8下载地址

2、上传安装es环境

  • 创建jdk文件夹、并解压jdk包
# 进入安装目录、创建文件夹
cd /usr/local/
mkdir elastic-stack
cd elastic-stack
# 上传文件命令:rz
rz
# 解压 tar -zxvf 上传的jdk压缩包名
tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz
# 重命名
mv elasticsearch-7.8.0 es

es_009

  • 创建es用户、修改es配置文件

  • 修改elasticsearch.yml

vim /usr/local/elastic-stack/es/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

# 文件末尾中增加下面内容
# 集群名
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. 修改系统中允许应用最多创建多少文件等的限制权限。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 可以对每个进程的文件数进行限制等,如果服务器内存或空间不足,可以通过修改配置文件

  • 修改其他配置文件
  1. 修改/etc/security/limits.conf,在文件末尾中增加下面内容:
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注:* 带表 Linux 所有用户名称
  1. 修改 /etc/sysctl.conf,在文件末尾中增加下面内容
# 一个进程可以拥有的 VMA (虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
  1. 配置文件后,记得重新加载
sysctl -p
  • 新增 elasticSearch 用户并配置权限
useradd es
passwd es
# 设置的密码
# 配置权限
# ElasticSearch 安装目录
chown -R es /usr/local/elastic-stack/es
# 日志文件权限
chown -R es 日志文件安装目录
  • 启动服务
# 切换用户
su es
# 先进入安装目录、启动服务
cd /usr/local/elastic-stack/es
./bin/elasticsearch -d
# 测试访问
curl 127.0.0.1:9200
{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "US9tbegDT_SfcewzyQCD3w",
  "version" : {
    "number" : "7.8.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
    "build_date" : "2020-07-21T16:40:44.668009Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

3、es服务自启动设置

  • 查看es进程、并关闭
# 查看es进程
ps -ef | grep elastic
# 关闭进程
kill -9 进程号
  • 创建elasticsearch的系统启动服务文件,进入到 cd /etc/init.d 目录
#进入到目录,创建elasticsearch系统启动服务文件
cd /etc/init.d      
vi elasticsearch

#文件内容如下

#!/bin/bash
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-7.10.2

# 这个目录是你Es所在文件夹的目录
export ES_HOME=/usr/local/elasticsearch-7.10.2
case $1 in
start)
    su es<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
    exit
!
    echo "elasticsearch is started"
    ;;
stop)
    pid=`cat $ES_HOME/pid`
    kill -9 $pid
    echo "elasticsearch is stopped"
    ;;
restart)
    pid=`cat $ES_HOME/pid`
    kill -9 $pid
    echo "elasticsearch is stopped"
    sleep 1
    su es<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
    exit
!
    echo "elasticsearch is started"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac
exit 0
  • 修改文件权限
chmod 777 elasticsearch
  • 添加和删除服务并设置启动方式
# 添加系统服务
chkconfig --add elasticsearch
# 删除系统服务
chkconfig --del elasticsearch
  • 关闭和启动服务
# 启动服务
service elasticsearch start
# 停止服务
service elasticsearch stop
# 重启服务
service elasticsearch restart
  • 查看当前的开机启动服务命令
chkconfig --list
  • 检验服务是否运行正常
curl  http://127.0.0.1:9200