主页 > 电脑硬件  > 

ElasticSearch搜索与分析引擎-Linux离线环境安装教程


目录

一、下载安装包

网盘链接:

二、安装流程及遇到的问题和解决方案

(1)JDK安装

(2)Elasticsearch安装

(3)Kibana安装

​(4)Ik分词器安装

三、启动过程中的问题

(1)日志输出

(2)日志一直输出

(3)告警日志

(4)设置密码

(5)failed to authencated user [xxxx]

(6)Es和Kibana启动停止命令


一、下载安装包 Jdk官网:Java Downloads | Oracle Es+Kibana官网:Download Elasticsearch | Elastic Ik分词器:https://github.com/medcl/elasticsearch-analysis-ik 网盘链接: Es链接: https://pan.baidu.com/s/1u4a_3w_2271jkdbgoD9pXg 提取码: 865r Kibana链接: https://pan.baidu.com/s/1pwBk5gIjgegzFg4eAOPoew 提取码: 7zz4 Ik分词器链接: https://pan.baidu.com/s/10wK4TOfGJsAItRoewQPN0Q 提取码: 3gzx JDK11链接: https://pan.baidu.com/s/1m1IpkF6ResRyb1WQveeZJQ 提取码: bwk8 二、安装流程及遇到的问题和解决方案 (1)JDK安装 (1)将下载好的jdk安装包放到/usr/local/java目录下,解压缩:tar -zxvf jdk-11.0.22_linux-x64_bin.tar.gz (2)修改环境变量配置文件:vim /etc/profile export JAVA_HOME=/usr/local/java/jdk-11.0.22   export JRE_HOME=${JAVA_HOME}/jre   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   export PATH=${JAVA_HOME}/bin:$PATH (3)保存:source /etc/profile (4)查看是否安装成功:java -version PS : JDK这个安装过程,可装可不装,Es有自己封装好的jdk。

(2)Elasticsearch安装 (2.1) 将下载好的安装包,放到服务器上,例如:/app/elastic目录下,然后解压缩:tar -zxvf elasticsearch-7.16.3-linux-x86_64.tar.gz (2.2)进入elasticsearch目录下,再进入config目录,编辑配置文件:vim elasticsearch.yml,修改好配置文件后,wq保存并退出 #设置集群名和节点名 cluster.name: my-es node.name: node-1 #控制节点是否允许从单个目录启动多个实例。这个参数的目的是防止多个节点共享相同的数据路径,以 #防止数据丢失 node.max_local_storage_nodes: 256 #设置es的data和log目录,data和log目录如果不存在,可以自己创建,然后制定对应的路径 path.data: /app/es/es-test/data path.logs: /app/es/es-test/logs #es启动时,会检测是否有内存锁定的配置,不开启时,启动日志中可能会报错,打开注释后,同步需要 #更改一些系统文件的配置项 bootstrap.memory_lock: true #设置对外可访问的地址及端口号 network.host: 0.0.0.0 http.port: 9200 #开启集群模式时,需要指定一个初始化的主节点 cluster.initial_master_nodes: ["node-1"] #设置用户名和密码,具体设置请看(三-4) xpack.security.enabled: true xpack.security.enrollment.enabled: true #离线环境,需要将该配置项设为false,这样不会默认去官网更新 ingest.geoip.downloader.enabled: false (2.3)启动es,进入bin目录,执行:./elasticsearch

安装Es的时候,会有以下几个常见的问题:

(p1)can not run elasticsearch as root

[2023-01-31T17:42:42,296][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException:can not run elasticsearch as root

(S1)更换一个普通用户

Es出于系统安全设置考虑,不允许root用户启动实例,需要创建一个普通用户 # 新建用户组和密码 1. groupadd elsearch#用户组 useradd elsearch#普通用户 -g elsearch#用户组 -p elasticsearch#用户密码 # 授予普通用户权限 2.chown -R elsearch:elsearch elasticsearch#Es目录 # 切换到elsearch用户 3.su elsearch # 启动es 4. cd /bin ./elasticsearch # 查看是否启动成功 5. 服务器请求: curl http://ip:9200 浏览器请求: http://ip:9200 若启动成功,可以看到es版本号等信息

(p2)bootstrap checks failed

ERROR: [3] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]: max number of threads [3780] for user [es] is too low, increase to at least [4096] [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] [2018-12-12T21:54:57,353][INFO ][o.e.n.Node ] [PlbSkhz] stopping ... [2018-12-12T21:54:57,413][INFO ][o.e.n.Node ] [PlbSkhz] stopped [2018-12-12T21:54:57,413][INFO ][o.e.n.Node ] [PlbSkhz] closing ... [2018-12-12T21:54:57,473][INFO ][o.e.n.Node ] [PlbSkhz] closed [2018-12-12T21:54:57,488][INFO ][o.e.x.m.j.p.NativeController] [PlbSkhz] Native controller process has stopped - no new native processes can be started

(S2)修改系统文件中的部分配置项

如果非root用户创建es的话,普通用户就需要root授予sudo权限,用于修改一些系统文件的配置。 #查询当前用户是否有sudo权限 sudo cat /etc/sudoers # max virtual memory areas vm.max_map_count [65530] is too low,increase to at least 262144] 修改命令: 打开文件:sudo vi /etc/sysctl.conf 添加内容:vm.max_map_count = 262144 保存修改:sysctl -p # max file descriptors [4096] for elastic process is too low,increase to at least [65536] 修改命令: 打开文件:sudo vi /etc/security/limits.conf 添加内容:* soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 * soft memlock unlimited * hard memlock unlimited # es默认的内存大小可能需要手动修改,如果启动日志中有告警提示的话,可以酌情修改参数值 修改命令: 打开文件:vi /es/config/jvm.options 修改内容:-Xms 2g -Xmx 2g

 (P3)es自7.x之后,都有自带的jdk环境,如果安装版本和服务器本机jdk版本不符,可以使用es自带的jdk。

(S3)如图

(P4)安装ik重启后报错

# org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: failed to obtain node locks, tried [[/data/elasticsearch/data/elasticsearch]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?

(S4)解决方案,设置节点数

# 打开config/elasticsearch.yml 添加内容:node.max_local_storage_nodes: 256 保存,重启es (3)Kibana安装 (3.1)上传Kibana安装包,解压缩,tar -zxvf kibana-7.16.3-linux-x86_64.tar.gz (3.2)进入config目录,修改配置信息 # 指定kibana访问主机地址和端口号 server.host: "localhost" server.port: 5601 # 关联的es实例地址 elasticsearch.hosts: ["http://localhost:9200"] # 关联的es的用户名和密码 elasticsearch.username: "kibana_system" elasticsearch.password: "pass" # 设置Kibana的日志存储路径 logging.dest: /var/logs/kibana.log #Kibana汉化 i18n.locale: "zh-CN" #以下设置为8.12版本的格式 #logging.root.level: debug #logging.appenders.default: # type: file # fileName: /var/logs/kibana.log # layout: # type: json (3.3)wq保存退出,进入bin目录,启动实例 命令:./kibana & #后台启动 (3.4)启动成功,浏览器输入:http://ip:5601 查看是否成功 (4)Ik分词器安装 (4.1)Ik分词器是zip包,如果机器上没有zip相关命令,需要先安装一下 在线:yum -y install unzip 离线:下载unzip离线包-unzip-6.0-19.el7.x86_64.rpm,放入指定目录,并执行以下命令安装: rpm -Uvh unzip-6.0-19.el7.x86_64.rpm 安装成功后,输出rpm -qa | grep unzip 查看是否安装成功 (4.2)对Ik安装包解压缩后,将其移动到/elasticsearch/plugins目录下,重启es

Ik分词器有两种分词粒度,分别是“粗粒度-ik_max_word”和“细粒度-ik_smart ”,elastic也有自己的分词策略-standard,三种测试情况如下:

三、启动过程中的问题

Kibana启动时遇到的错误:

(1)日志输出

(2)日志一直输出 如果Kibana启动后,日志一直如下图所示,在不停地输出info信息,其中可能会夹杂着一些warning信息,这些其实目前我并没有弄清楚它具体的原因。但是现在有两种方法,可以解决日志一直输出的问题。 (2.1)在kibana.yml文件中,将以下注释掉的选项,打开并修改: logging.quiet: ture 该配置项设为true时,日志文件中就只会输出error级别的日志。 (2.2)对Es和Kibana设置密码,具体设置流程见(3).在一直输出的日志里,会看到部分warning信息,具体如下图2,告警信息主要是说明,如果es未设置用户名和密码,可能会导致任何人都可以访问你的es实例,不安全,系统就会一直提示设置用户名和密码。 设置了密码并重启机器之后,日志确实不会一直输出了,我理解的话是因为,Kibana不再一致刷新es的监控状态了,所以就不会一直发请求,日志自然就不再一直输出了,等一定的时间间隔才会有新的日志输出。 !!!!如果有哪位大佬知道,Kibana启动后,一直有日志输出的这个问题的原因,劳烦帮忙给解释一下,万分感谢!!!!!!!!

(3)告警日志 [warning][config][plugins][security] # xpack.security.encryptionKey 为32位随机keyGenerating a random key for xpack.security.encryptionKey. # 为防止kibana重启 用户会话失效,配置文件增加 xpack.security.encryptionKey 配置;或者 使用 kibana-encryption-keys启动 To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in the kibana.yml or use the bin/kibana-encryption-keys command. [warning][config][plugins][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.reporting.encryptionKey in the kibana.yml or use the bin/kibana-encryption-keys command. [warning][encryptedSavedObjects][plugins] # xpack.encryptedSavedObjects.encryptionKey 未设置,kibaba 部分功能受限Saved objects encryption key is not set. This will severely limit Kibana functionality. Please set xpack.encryptedSavedObjects.encryptionKey in the kibana.yml or use the bin/kibana-encryption-keys command. [warning][actions][plugins] # API功能关闭; 设置 xpack.encryptedSavedObjects.encryptionKey 启用 APIs are disabled because the Encrypted Saved Objects plugin is missing encryption key. Please set xpack.encryptedSavedObjects.encryptionKey in the kibana.yml or use the bin/kibana-encryption-keys command.

在kibana.yml中新增如下配置,配置项的值,可以随机生成32位字符串:

xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210 xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210 xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210 参考:https://blog.csdn.net/h952520296/article/details/112017739 Linux命令行: head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32 Windows命令行: New-Guid | ForEach-Object { $_ -replace '-', '' } | Set-Content encryptionKey.txt (4)设置密码 首先,在elasticsearch.yml中添加几句配置项: xpack.security.enabled: true xpack.security.transport.ssl.enabled: true 添加后,wq保存退出。 然后,执行命令: ./elasticsearch-setup-passwords interactive 会提示要设置多项的密码,选择y后,直接输出密码即可,如图。 最后,密码设置成功后,需要重启es。 然后是更新Kibana的配置文件kibana.yml,将其中两句注释掉的配置打开,并修改成自己es的用户名和密码: #添加以下内容 elasticsearch.username: "elastic" elasticsearch.password: "你在es中设置的密码" 修改完成后,wq保存退出,并重启Kibana。

(5)failed to authencated user [xxxx] Es如果中途宕机,重启后报上述错误: (5.1)停止es,修改配置文件,将设置的密码的两行配置项先注释掉 (5.2)然后删除config下的elasticsearch.keystore文件 (5.3)打开配置文件,将注释去掉 (5.4)保存,重启es (5.5)按照(4)步骤重置密码 (5.6)再次重启es (6)Es和Kibana启动停止命令 (1)Elasticsearch启动,进入bin目录,执行命令: ./elasticsearch 后台启动命令:./elasticsearch -d 然后打开logs目录下的xxx.log查看日志。 (2)Kibana启动,进入bin目录,执行命令: ./kibana 后台启动命令:./kibana & 然后打开logs目录下的kibana.log查看日志。 (3)均适用的服务停止命令: netstat -tnpl | grep 9200/5601 根据端口号查看各个进程的进程号, 然后执行: kill -9 'Es.PID/Kibana.PID'

标签:

ElasticSearch搜索与分析引擎-Linux离线环境安装教程由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ElasticSearch搜索与分析引擎-Linux离线环境安装教程