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

news2025/2/3 7:04:00

目录

一、下载安装包

网盘链接:

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

(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'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1427572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口自动化处理动态参数

接口自动化处理动态参数 1、流程说明 某些接口的请求入参数据不能写死,需要动态传参。如用户注册接口,用户名需要动态生成。使用yaml编写测试数据时,在需要动态参数的数据后面添加上特殊字符${生成动态数据的方法名(参数&#x…

Find My点读笔|苹果Find My技术与点读笔结合,智能防丢,全球定位

点读笔是采用国际最新光学图像识别技术和先进的数码语音技术开发而成的新一代智能阅读和学习工具。它体现了电子产品与教育行业的完美融合,实现了科技以人为本的理念。点读笔能同时实现点读、复读、跟读、录音、娱乐等诸多功能。由于小孩贪玩很容易造成点读笔的丢失…

基于OpenCV灰度图像转GCode的单向扫描实现

基于OpenCV灰度图像转GCode的单向扫描实现 引言单向扫描存在的问题灰度图像单向扫描代码示例结论 基于OpenCV灰度图像转GCode的单向扫描实现 本文将介绍如何使用OpenCV库将灰度图转换为GCode,并通过单向扫描实现对图像的激光雕刻。GCode是一种用于控制数控机床和…

物联网自动虫情测报仪器

TH-CQ3S在农业生产的进程中,病虫害的防治始终是关键的一环。然而,传统的病虫害监测手段往往存在着效率低下、准确度不高等问题,这无疑给农业生产带来了巨大的困扰。好在,随着科技的飞速发展,一款基于物联网技术的自动虫…

Oracle闪回日志管理(flashbackup log)

Oracle闪回日志管理(flashbackup log) 1.开启闪回日志 shutdown immediate startup mount; alter database archivelog; alter database flashback on; alter database open; 2、查看闪回日志保留期限 show parameter flash 默认是1440分钟&#xff0c…

【软件设计师笔记】程序语言设计考点

【考证须知】IT行业高含金量的证书(传送门)💖 【软件设计师笔记】计算机系统基础知识考点(传送门)💖 【软件设计师笔记】操作系统考点(传送门)💖 🐓 编程语言之间的翻译形式 汇编 高级程序不能直接在计算机上执行,…

极狐GitLab 和飞书的集成实践

飞书集成和通知 如果您想在飞书的群组中查看极狐GitLab 项目中的事件变更,如创建议题、流水线故障或关闭合并请求等,您可以将飞书与极狐GitLab 进行集成。 飞书集成 配置飞书 在飞书中创建机器人在飞书群组中添加机器人 在飞书中创建机器人&#xff…

【全网最全】2024美赛ABCDEF题思路模型全解(后续会更新)

欲获取更多资料,一定要点击这里并关注文末的公众号!!! 最新更新:我们团队不仅在第一时间更新了24美赛全题目的深度翻译和深入分析,经过爆肝奋战,我们在第一时间给出了ABCDEF全题目的完整建模过程…

OSPF——开放最短路径优先、多区域OSPF

目录 1 内部网关协议 OSPF 1.1 三个主要特点(生成拓扑图) 其他特点 1.2 链路状态数据库 (link-state database) 1.3 链路状态路由过程 1.4 OSPF 的五种分组类型 1.4.1 OSPF 分组用 IP 数据报传送 1.5 OSPF 工作过程 1.6 OSPF 定义五种网络类型 1.7 多路访…

WAF 无法防护的八种风险

一、目录遍历漏洞 测试用例:Apache 目录遍历漏洞 测试环境搭建: apt intsall apache2 && cd /var/www/html/ && rm index.html无法拦截原因: 请求中无明显恶意特征,无法判断为攻击行为 实战数据: 截…

飞腾D2000+X100的UART串口调试方法

一、测试使用主板的串口说明 D2000自带的UART0直接引出9针全功能RS232串口,UART1为CPU调试串口,UART2和UART3接485接口芯片转为RS485,此外,主板还有X100 usb2.0转出8路RS232,详细硬件框图如下: 源芯片串口号串口电平连接器丝印D2000UART0RS232COM0D2000UART1TTL调试串口…

LightDB24.1 存储过程中声明的不带参数的游标,支持open 游标名加括号的调用方式

背景 oracle 存储过程中不带参数声明的游标,可以在open打开时加上括号进行调用。在老的业务中经常能够看到这种用法。虽然觉得不合理,但是oracle人家支持,作为兼容性极强的LightDB不会在这个小水沟翻车的,果断进行支持一波。 L…

【鸿蒙千帆起】高德地图携手 HarmonyOS NEXT,开启智能出行新篇章

2024 年 1 月 18 日下午,华为举办了鸿蒙生态千帆启航仪式,对外宣布 HarmonyOS NEXT 星河预览版现已开放申请,同时,首批 200鸿蒙原生应用加速开发,鸿蒙生态设备数量更是突破了 8 亿大关。这些进展反映了开发者和合作伙伴…

Jmeter+ant+Jenkins 接口自动化框架完整版

接口自动化测试单有脚本是不够的,我们还需要批量跑指定接口,生成接口运行报告,定位报错接口,接口定时任务,邮件通知等功能。批量跑指定接口:我们可以利用ant批量跑指定目录下的Jmeter脚本生成接口运行报告&…

上传upload及显示img图片预览、删除

上传图片文件a-upload html部分 <div className="clearfix"><a-upload:custom-request="customRequest"listType="picture-card":fileList="fileList":onPreview="handlePreview":on-remove="del">&…

【算法与数据结构】300、674、LeetCode最长递增子序列 最长连续递增序列

文章目录 一、300、最长递增子序列二、674、最长连续递增序列三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、300、最长递增子序列 思路分析&#xff1a; 第一步&#xff0c;动态数组的含义。 d p [ i ] dp[i] dp[i…

什么是接口的幂等性,如何保证接口的幂等性?

✅作者简介&#xff1a;大家好&#xff0c;我是Leo哥&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo哥的博客 &#x1f49e;当前专栏&#xff1a; Java ✨特色专栏&#xff1a; MyS…

如何在Windows部署GoLand并通过SSH远程连接Linux服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器&#xff0c;并结合cpolar内…

想好新年去哪了吗?合合信息扫描全能王用AI“留住”年味

还有不到十天&#xff0c;除夕就要到了。近几年春节假期中&#xff0c;有人第一次带着孩子直击海面冰风&#xff0c;坐船回老家&#xff1b;也有人选择“漫游”国内外&#xff0c;在旅行中迎接新春的朝气。合合信息旗下扫描全能王APP通过AI扫描技术&#xff0c;提供了一种全新的…

白皮书发布,石油石化数字孪生加速

近日&#xff0c;《数字石化 孪生智造——石油石化数字孪生白皮书》发布。白皮书聚焦石油石化行业发展机遇&#xff0c;剖析数字孪生技术在行业中的案例实践与应用场景&#xff0c;展望石油石化企业未来孪生发展新态势。 当前&#xff0c;国家大力推动减污降碳协同增效&#x…