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 | OracleEs+Kibana官网:Download Elasticsearch | ElasticIk分词器: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/profileexport 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 -versionPS : 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-esnode.name: node-1#控制节点是否允许从单个目录启动多个实例。这个参数的目的是防止多个节点共享相同的数据路径,以 #防止数据丢失node.max_local_storage_nodes: 256#设置es的data和log目录,data和log目录如果不存在,可以自己创建,然后制定对应的路径path.data: /app/es/es-test/datapath.logs: /app/es/es-test/logs#es启动时,会检测是否有内存锁定的配置,不开启时,启动日志中可能会报错,打开注释后,同步需要 #更改一些系统文件的配置项bootstrap.memory_lock: true#设置对外可访问的地址及端口号network.host: 0.0.0.0http.port: 9200#开启集群模式时,需要指定一个初始化的主节点cluster.initial_master_nodes: ["node-1"]#设置用户名和密码,具体设置请看(三-4)xpack.security.enabled: truexpack.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 32Windows命令行:
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离线环境安装教程
目录 一、下载安装包 网盘链接: 二、安装流程及遇到的问题和解决方案 (1)JDK安装 (2)Elasticsearch安装 (3)Kibana安装 (4)Ik分词器安装 三、启动过程中的问题 ÿ…...
网络安全全栈培训笔记(59-服务攻防-中间件安全CVE复现lSApacheTomcataNginx)
第59天 服务攻防-中间件安全&CVE复现&lS&Apache&Tomcata&Nginx 知识点: 中间件及框架列表: lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,…...
操作系统真象还原---系列笔记总结
闲话 最开始知道这本书是在校内论坛上,有同学通过这本书里的项目拿到大厂的ssp offer,于是就从网上订购了这本较为大部头的书,想要在简历上添加一个足够底层并且有意思的项目经历,从而帮助自己在秋招时赢得一个好的offer。 第一遍…...
猫用空气净化器好吗?好用的养猫宠物空气净化器品牌推荐
作为一个养猫五年的资深铲屎官,我对如何轻松快乐地养猫有一些心得。猫咪每天在家里奔跑,导致家里经常会出现“猫毛雪”,沙发、地板和衣服都成了重灾区。在除猫毛的问题上,我真的尝试了各种方法,几乎用上了所有的技能。…...
【计网·湖科大·思科】实验六 IP数据报的发送和转发流程、默认路由和特定主机路由
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…...
freertos 源码分析一 list链表数据结构
链表和任务管理是freertos 的核心,先分析链表源码,freertos的链表是双向环形链表,定义与数据结构在list.h中,表项的初始化,插入与删除在list.c中。 数据结构 一、表项数据结构 struct xLIST_ITEM {listFIRST_LIST_IT…...
小程序uni-swiper-action-item滑动不了
<uni-swipe-action><uni-swipe-action-item :options"options"></uni-swipe-action-item></uni-swipe-action> 要在options前面加上right或left <uni-swipe-action><uni-swipe-action-item :right-options"options">&…...
【新课】安装部署系列Ⅲ—Oracle 19c Data Guard部署之两节点RAC部署实战
本课程由云贝教育-刘峰老师出品,感谢关注 课程介绍 Oracle Real Application Clusters (RAC) 是一种跨多个节点分布数据库的企业级解决方案。它使组织能够通过实现容错和负载平衡来提高可用性和可扩展性,同时提高性能。本课程基于当前主流版本Oracle 1…...
【从零开始的rust web开发之路 四】rust语言tokio异步使用redis教程
文章目录 前言一、首先引入依赖二、创建redis客户端三、相关操作设置值mset设置多个key值设置含有过期时间的值如果key不存在才设置获取基本类型值删除一个键删除多个键判断键是否存在 如何使用json序列化导入相关依赖代码相关实例 总结 前言 使用rust写web,自然是…...
uniapp本地存储的几种方式localStorage
在uniapp开发中,本地存储是一个常见的需求。本地存储可以帮助我们在客户端保存和管理数据,以便在应用程序中进行持久化存储。本文将介绍uniapp中本地存储的几种方式,以及相关的代码示例。 介绍 在移动应用开发中,我们经常需要将…...
扩展学习|统计学习理论(SLT)与极限学习机(ELM)应用于大社会数据分析
文献来源:[1] Oneto L , Bisio F , Cambria E ,et al.Statistical Learning Theory and ELM for Big Social Data Analysis[J].IEEE Computational Intelligence Magazine, 2016, 11(3):45-55.DOI:10.1109/MCI.2016.2572540. 提取链接:链接:h…...
配置实例—交换机VLAN聚合配置实例
一、组网需求 某公司拥有多个部门且位于同一网段,为了提升业务安全性,将不同部门的用户划分到不同VLAN中。现由于业务需要,不同部门间的用户需要互通。如图1所示,VLAN2和VLAN3为不同部门,现需要实现不同VLAN间的用户可…...
网络开发的隐形壁垒:如何巧妙解决跨域难题?
什么是跨域 跨域是浏览器受同源(协议、域名、端口)策略的限制,不允许不同源的站点之间进行某些操作(如发送ajax请求,操作dom,读取cookie),如果不进行特殊配置是不能操作成功的&…...
【极简】conda同一个服务器上迁移环境 export / create
导出 直接看conda的document:https://docs.conda.io/projects/conda/en/latest/commands/env/export.html conda env export conda env export --file SOME_FILE重建 conda documentation: https://docs.conda.io/projects/conda/en/latest/commands/env/create.…...
HBase 数据导入导出
HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…...
(java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
目录 冒泡排序(BubbleSort): 代码详解: 冒泡排序的优化: 选择排序(SelectSort): 代码详解: 插入排序(InsertSort): 代码详解: 希尔排序(ShellSort): 法一…...
服务器托管的作用是什么?
服务器托管是将企业的服务器和相关设备托管到具有完善机房设施、高品质网络环境与运营经验的网络数据中心内,服务器托管在维护方面一般是由客户负责的,或者是由其他的授权人进行远程维护。 那服务器托管的作用都有哪些呢? 服务器托管不需要企…...
美团启动架构调整:聚力核心本地商业,提升科技与境外业务优先级
2月2日,美团CEO王兴发布内部邮件宣布新的组织架构调整。邮件显示,美团对核心本地商业相关多项业务进行了整合,并进一步提升了科技与国际化相关业务的优先级。 在核心本地商业上,美团对过去相对独立的事业群进行了整合。主要调整包…...
监测Tomcat项目宕机重启脚本(Linux)
1.准备好写好的脚本 #!/bin/sh # 获取tomcat的PID TOMCAT_PID$(ps -ef | grep tomcat | grep -v tomcatMonitor |grep -v grep | awk {print $2}) # tomcat的启动文件位置 START_TOMCAT/mnt/tomcat/bin/startup.sh # 需要监测的一个GET请求地址 MONITOR_URLhttp://localhost:…...
道可云元宇宙每日资讯|北京:推进元宇宙在智慧城市应用
道可云元宇宙每日简报(2024年2月2日)讯,今日元宇宙新鲜事有: 石狮市检察院“元宇宙智慧展馆”正式启用 为深入实施数字检察战略,主动探索元宇宙技术在未成年人检察、公益诉讼检察等方面的应用,打造集案件…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
