ubuntu24 安装 Elasticsearch 7.16.2
安装 Elasticsearch 7.16.2
Java 环境:Elasticsearch 7.16.2 需要 Java 8 或 Java 11 环境。如果系统尚未安装,可以用以下命令安装 OpenJDK 11:
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version # 确认安装成功
系统参数:为确保 Elasticsearch 能正常运行,建议调整两个系统参数:
# 提高虚拟内存最大映射数量
sudo sysctl -w vm.max_map_count=262144
# 提高最大文件描述符数量
sudo ulimit -n 65536
为了让 vm.max_map_count 的设置永久生效,可以将其写入 /etc/sysctl.conf 文件。
安装步骤
下载 .deb 安装包
使用 wget 命令,从 Elastic 官方下载中心获取 7.16.2 的 Debian 包。
# 下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-amd64.deb
安装 Elasticsearch
下载完成后,使用 dpkg 命令进行安装。这会自动创建必要的用户、目录和服务。
# 安装 .deb 包
sudo dpkg -i elasticsearch-7.16.2-amd64.deb
配置 Elasticsearch
安装后,可根据需要修改配置文件 /etc/elasticsearch/elasticsearch.yml。
sudo nano /etc/elasticsearch/elasticsearch.yml
单机测试环境,建议设置以下两项,允许本地访问:
yaml
network.host: localhost
http.port: 9200
注意:若要在集群中使用或允许远程访问,请按官方文档配置 discovery.seed_hosts 等参数。
启动并验证服务
配置完成后,使用 systemctl 来管理 Elasticsearch 服务。
# 重新加载系统服务配置
sudo systemctl daemon-reload
# 设置 Elasticsearch 开机自启
sudo systemctl enable elasticsearch.service
# 立即启动 Elasticsearch 服务
sudo systemctl start elasticsearch.service
# 检查服务状态,确保其为 active (running)
sudo systemctl status elasticsearch.service
测试安装
服务启动后(可能需要等待几秒钟),通过 curl 命令向本地端口 9200 发送请求来验证。
curl -X GET ‘localhost:9200’
如果一切正常,你将看到类似下图的 JSON 响应,其中包含集群名称、版本号等信息:
json
{
“name” : “ubuntu-24-04”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “…”,
“version” : {
“number” : “7.16.2”,
“build_flavor” : “default”,
“build_type” : “deb”,
…
},
“tagline” : “You Know, for Search”
}
可能遇到的问题及解决方法
内存不足导致启动失败:Elasticsearch 默认的 JVM 堆内存(-Xms 和 -Xmx)可能是 1GB 或 4GB。如果你的服务器内存较小(例如 1GB),可以在
/etc/elasticsearch/jvm.options 文件中将这两个参数的值修改为 512m 或更小。
无法从远程访问:
首先检查 elasticsearch.yml 配置文件中的 network.host 是否绑定在正确的网络接口 IP 上(而非 localhost 或 127.0.0.1)。
检查 Ubuntu 的防火墙(UFW)或云服务商的安全组策略,确保 9200 端口对客户端 IP 是开放的。
注意:将 network.host 修改为非回环地址会触发 Elasticsearch 的引导检查,需要同时配置 discovery.seed_hosts 等集群发现设置。 如何卸载
如果需要彻底移除 Elasticsearch,可以执行以下命令:
sudo systemctl stop elasticsearch
sudo apt remove –purge elasticsearch
sudo rm -rf /var/lib/elasticsearch /etc/elasticsearch
#######
如果需要修改为公网或者其他机器访问 需调整network.host ,注意 需加 discovery.type: single-node OR 集群信息 否则无法启动
在你的 elasticsearch.yml 配置文件中,修改或添加以下两行:
yaml
# 绑定到所有网络接口,允许外部访问
network.host: 0.0.0.0
# 明确指定当前节点为单节点模式
discovery.type: single-node
修改保存后,重启 Elasticsearch 即可。
sudo systemctl restart elasticsearch
########### 添加密码设定 ‘’
编辑 Elasticsearch 的配置文件 elasticsearch.yml,添加或修改以下两行,开启内置的安全认证和传输层 SSL 功能。
sudo vim /etc/elasticsearch/elasticsearch.yml
在文件末尾添加:
yaml
# 开启 X-Pack 安全功能
xpack.security.enabled: true
# 开启传输层 SSL(如果打算配置节点间加密通信,此处必须为 true)
xpack.security.transport.ssl.enabled: true
保存并退出。
2. 重启 Elasticsearch 服务
配置修改后需要重启才能生效。
sudo systemctl restart elasticsearch
3. 执行密码设置命令
这是最关键的步骤。进入 Elasticsearch 的安装目录(如果通过 APT 安装,通常在 /usr/share/elasticsearch),使用其内置工具为所有内置用户设置密码。
# 进入 Elasticsearch 的 bin 目录
cd /usr/share/elasticsearch/bin
# 运行交互式密码设置命令
sudo ./elasticsearch-setup-passwords interactive
执行命令后,系统会提示你为以下内置用户逐一输入并确认密码:
elastic:超级管理员账号,拥有最高权限,务必记牢。
apm_system
kibana (或 kibana_system)
logstash_system
beats_system
remote_monitoring_user
输入过程中不会显示密码字符,这是正常的安全机制。
4. 验证密码是否生效
设置完成后,通过 curl 命令进行验证。如果配置了 network.host: 0.0.0.0,你需要使用服务器的 IP 地址或域名进行访问,并带上用户名和密码。
# 使用内网 IP 或 127.0.0.1 验证,-u 参数用于携带用户名密码
curl -u elastic:你的密码 http://127.0.0.1:9200
# 或者从外部机器访问(注意替换 IP 地址)
curl -u elastic:你的密码 http://<你的服务器IP>:9200
如果配置正确,服务器会返回包含集群信息的 JSON 数据,而不是无权限的认证错误。