Ubuntu2204安装和配置elasticsearch
此文档用来记录自己在Ubuntu2204系统上安装es的过程,方便下次安装查阅
[英文水平高的参考官方安装指南即可](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
一、安装es
准备工作
- 根据自己操作系统的版本查看适配的es版本
support matrix
我选择的是8.17.0版本。
注意:es从7.0版本开始有内置的JVM,无特殊需求一般不用额外安装JAVA.
es是资源密集型应用程序。生产环境中,建议在专用主机上运行Elasticsearch,或者将其作为主要服务运行。您可以在Elasticsearch旁边运行Metricbeat以获取集群统计信息,但资源消耗较大的kibana和Logstash应该部署在其他主机上。 - docker已安装
安装和运行
如果目前登录的用户是root用户的话请换成另一个用户进行操作,因为ES官方不允许使用root用户进行操作(在进行启动时会报错,提示不允许root用户进行运行)
官方给出的安装方式有: 用于本地开发和测试的快速安装、直接运行编译好的tar压缩包进行安装、deb包安装、docker上安装。
我选择在docker上面部署安装。
单节点集群
- 新建一个docker network
docker network create elastic
elastic是你自己取的名字
这一步的目的是可以让其它的 Elastic Stack 组件(如kibana)访问 Elasticsearch - 拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.17.0
如果在虚拟机或者网络受限的情况下,拉取镜像可能很慢。需要配置docker国内镜像源、镜像加速器。我通过/etc/docker/daemon.json配置了阿里加速器和国内镜像源。
{
"registry-mirrors": ["https://<你的专有地址>.mirror.aliyuncs.com",
"https://docker.m.daocloud.io"
]
}
呃,貌似快了一点。或者通过一个网速快的电脑下载好镜像再用docker加载进去吧
3. 开启一个elasticsearch节点容器
运行命令如下,
docker run -d --name es01 -p 9200:9200 -p 9300:9300 -v /home/znn/es/data:/usr/share/elasticsearch/data --net elastic elasticsearch:8.17.0
a. 在Ubutu虚拟机下操作,我的容器刚启动就退出
ERROR: Elasticsearch died while starting up, with exit code 78
通过命令docker logs 容器name
可以查看具体的报错信息,
显示vm.max_map_count为65536太低建议设置为262144
首先查看系统vm.max_map_count的值
sudo sysctl -n vm.max_map_count
返回结果为65536
然后在/etc/sysctl.conf文件末尾增加一行配置vm.max_map_count的值
重启电脑/虚拟机或者终端运行下列命令使配置生效
sudo sysctl -p
b. 解决完上面的问题使用docker再次启动elastic容器又报错
错误指出,elasticsearch试图获取/usr/share/elasticsearch/data的节点锁但失败了,可能的原因有,
(1)文件权限问题
需要确保/usr/share/elasticsearch/下面的data,config, plugin目录的权限至少是750,我的默认为775,排除这个原因.
(2)多个节点使用相同的数据路径
因为我只有一个节点,所以不认为是这个原因引起的.
(3) 文件不存在
/usr/share/elasticsearch/data/node.lock可能不存在,因为我的容器启动失败就无法进去查看node.lock文件是否存在,不认为是这个原因.
后来仔细想了一下,我启动容器的命令是挂载了本地目录的[-v /home/znn/es/data:/usr/share/elasticsearch/data],而我又以不同的节点名多次启动,所以原因就是多个节点使用相同的数据路径。
找到原因后,我删除了本地目录/home/znn/es/data,新建了一个数据目录/home/znn/docker/es/data并修改此目录的访问权限为777,再次启动容器,成功!!
4. 进入容器
docker exec -it es01 /bin/bash
重置elastic用户的密码
./usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
为kibana重新生成证书
./usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
- 验证elasticsearch运行成功
在浏览器输入https://localhost:9200回车,输入用户名和密码后返回JSON格式的信息,如下
多节点集群
配置
二、安装es的可视化工具kibana
安装和运行
docker pull docker.elastic.co/kibana/kibana:8.17.0
docker run --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.17.0
在终端会返回一个URL(https://0.0.0.0:5601),用浏览器打开此链接后,粘贴为kibana生成的证书后通过elastic用户名和密码登录进去。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」