标题关键字自动标红,简介关键字自动标红;
elasticsearch-head
可视化数据管理组件
- Linux新建用户,命令格式(
useradd 用户名
)
命令:useradd user-es
- 将ES目录分配给新创建的user-es用户,命令格式:(
chown 用户名:用户名 -R /要分配的目录路径
)
命令:chown user-es:user-es -R /www/server/Elasticsearch
问题1:为什么分配的路径是“/www/server/Elasticsearch”而不是“/www/server/Elasticsearch/elasticsearch-8.4.1”,以为后续还要安装elasticsearch-head(elasticsearch库的可视化工具)同样会用到user-es的用户权限!
问题2:不分配user-es行不行?答:不行,因为ES禁止使用root用户启动!
-切换新创建的es用户,命令格式:(su 用户名
)
命令:su user-es
使用命令切换到ES用户su user-es
进入elasticsearch的bin目录 cd /www/server/Elasticsearch/elasticsearch-8.4.1/bin
启动ES
方式1(临时启动,Ctrl+C则终止运行):./elasticsearch
方式2(后台启动):./elasticsearch -d
出现started时启动完成
关闭ES,命令:kill pid
说明:
Elasticsearch端口9100、9200,9300这3个端口需要你到服务器安装组进行开放
如果你还使用了宝塔面板请同时在侧边栏安全中放行这3个端口
端口用途
9100:elasticsearch-head数据可视化管理工具(不使用可以不开)
9200:作为Http协议,主要用于外部通讯
9300:作为Tcp协议,jar之间就是通过tcp协议通讯
使用./elasticsearch
启动ES,如果不出意外的话此时你将碰到因JDK导致无法启动的报错
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_291/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
因Java版本与ES的Java版本不匹配导致的报错;
命令:vim /etc/profile
修改如下代码,如果没有则新增如下代码
#java
export JAVA_HOME=/www/server/Elasticsearch/elasticsearch-8.4.1/jdk #我ES的安装位置是/www/server/Elasticsearch/elasticsearch-8.4.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改profile文件后,需要使用命令:source /etc/profile
使修改生效!
-Xms512m
-Xmx512m
3. 编辑ES config/elasticsearch.yml对ES进行一些基础配置(代码有则修改,无则添加)
注意:这个是ES的配置文件,默认里面的配置项都是注释过的,我将逐一解开配置并进行注释
#配置ES集群名称为"my-application"
cluster.name: my-application
#当前ES节点的名称为node-1(一个ES节点可以理解为1台服务器)
node.name: node-1
#数据的存储位置
path.data: /www/server/Elasticsearch/elasticsearch-8.4.1/data
#日志文件的存储位置
path.logs: /www/server/Elasticsearch/elasticsearch-8.4.1/logs
#默认情况下ES只能本机访问,设置为0.0.0.0则可以远程访问
network.host: 0.0.0.0
#ES通信端口
http.port: 9200
#设置master节点列表 多个节点用逗号分隔如cluster.initial_master_nodes: ["node-1","node-2"]
#我这里是单机,所以只填1个,注意:这个名称必须是集群中真是存在的节点,这里的node-1与上面的node.name配置项保持一致
cluster.initial_master_nodes: ["node-1"]
#将这个xpack.security.enabled选项修改为false,这样不用验证es的账户密码即可启动
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.transport.ssl.enabled: true
#跨域访问请在末尾添加如下2行代码
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:每次修改过config/elasticsearch.yml后需要重启ES服务使其修改生效!
权限不足的错误,重新执行下chown user-es:user-es -R /www/server/Elasticsearch
重新授权下就好了!
[2022-09-13T11:54:36,818][ERROR][o.e.b.Elasticsearch ] [node-1] fatal exception while booting Elasticsearchjava.lang.IllegalStateException: Unable to access 'path.logs' (/path/to/logs)
使用linux账户下的es账户启动es
命令: su user-es
cd /www/server/Elasticsearch/elasticsearch-8.4.1/bin
./elasticsearch
在浏览器访问 http://你服务器的ip:9200端口,我的是"http://115.28.137.30:9200/"
看到如下页面说明已经运行起来了。
下载地址: https://github.com/medcl/elasticsearch-analysis-ik/tags
图1:
图2:
将下载好的ik分词包上传到服务器/www/server/Elasticsearch/elasticsearch-8.4.1/plugins
目录中,并进行解压
手动创建ik分词器,并将ik分词包上传到服务器指定目录
ik分词包解压后的文件结构
注意:
1.这里的ik分词版本必须和es的版本保持一致,否则es将无法启动;
2.plugins/目录下需要手动创建ik目录;
3.需要注意ik目录权限不要是root且ik目录的名字只能为ik,名称不可修改!
从新启动ES,在浏览器访问http://115.28.137.30:9200/看到如下界面表示成功
没有node环境elasticsearch-head将无法运行
使用宝塔的用户点这里安装
其他用户自行百度,这不展开介绍了!
下载elasticsearch-head
图1
图2
上传并解压到/www/server/Elasticsearch
目录中(目录自定义,我是为了都放在一块好管理)
执行npm install
进入/www/server/Elasticsearch/elasticsearch-head-5.0.0目录
执行
npm install
如果执行失败则常识切换淘宝镜像cnpm在尝试;
在保证ES启动的情况下,在/www/server/Elasticsearch/elasticsearch-head-5.0.0目录中启动elasticsearch-head
启动服务
npm run start 或者 npm run-script start
可以后台启动
nohup npm run-script start &
启动成功后
图1
图2