要在 Ubuntu 24.04 上安装 Elasticsearch 7.6.0,可以按照以下步骤进行:
步骤 1: 更新系统依赖
确保系统是最新的,并安装必要的依赖包:
sudo apt update
sudo apt upgrade -y
sudo apt install -y apt-transport-https openjdk-11-jdk wget
步骤 2: 导入 Elasticsearch 的 GPG 密钥
Elasticsearch 的 APT 存储库需要 GPG 签名验证。运行以下命令导入密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
步骤 3: 添加 Elasticsearch 的 APT 存储库
创建一个文件 /etc/apt/sources.list.d/elastic-7.x.list
,并添加以下内容:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
更新 APT 缓存:
sudo apt update
步骤 4: 下载并安装 Elasticsearch 7.6.0
直接安装 Elasticsearch:
sudo apt install elasticsearch=7.6.0
验证安装是否成功:
dpkg -l | grep elasticsearch
步骤 5: 配置 Elasticsearch
- 编辑主配置文件:
sudo nano /etc/elasticsearch/elasticsearch.yml
- 配置示例:
- 设置网络绑定地址:
network.host: 0.0.0.0
- 配置集群名称(可选):
cluster.name: my-cluster
- 配置节点名称(可选):
node.name: node-1
- 设置网络绑定地址:
步骤 6: 启动和启用 Elasticsearch 服务
- 启动服务:
sudo systemctl start elasticsearch
- 设置开机自启:
sudo systemctl enable elasticsearch
验证服务状态:
sudo systemctl status elasticsearch
步骤 7: 验证 Elasticsearch 是否正常运行
使用 curl
命令验证:
curl -X GET "localhost:9200/"
输出示例:
{"name" : "node-1","cluster_name" : "my-cluster","cluster_uuid" : "xxxxxxxxxx","version" : {"number" : "7.6.0",...}
}
注意事项
-
内存配置: 如果需要调整 Elasticsearch 使用的内存,可以编辑 JVM 配置文件
/etc/elasticsearch/jvm.options
:sudo nano /etc/elasticsearch/jvm.options
修改以下选项,将
2g
替换为合适的内存值(例如 1g):-Xms2g -Xmx2g
-
防火墙配置: 如果希望远程访问 Elasticsearch,需要确保防火墙允许端口
9200
:sudo ufw allow 9200
-
生产环境建议: 默认情况下,Elasticsearch 仅允许本地访问。生产环境中应通过安全配置(如 HTTPS 和身份认证)保护服务。
完成这些步骤后,您应该能够成功在 Ubuntu 24.04 上安装和配置 Elasticsearch 7.6.0。如有问题,请提供错误信息以便进一步帮助!
这个错误表明你正在尝试运行 Elasticsearch,而不是 ZooKeeper,且遇到了与生产模式相关的配置问题。Elasticsearch 在生产模式下需要设置集群发现和主节点的相关配置。
以下是解决方法:
1. 错误原因
在生产模式下,Elasticsearch 强制要求以下配置项之一:
discovery.seed_hosts
:指定集群内其他节点的地址。discovery.seed_providers
:用于动态发现其他节点。cluster.initial_master_nodes
:指定集群初始化时的主节点列表。
如果未配置这些参数,Elasticsearch 将无法启动。
2. 解决方法
(1) 修改 Elasticsearch 配置文件
编辑 Elasticsearch 的配置文件 elasticsearch.yml
:
sudo nano /etc/elasticsearch/elasticsearch.yml
在文件中添加或修改以下内容:
-
如果是单节点开发环境:
cluster.name: my-cluster node.name: node-1 network.host: 0.0.0.0 discovery.type: single-node
解释:
discovery.type: single-node
告诉 Elasticsearch 以单节点模式运行,适用于开发环境或非分布式部署。
-
如果是多节点集群环境:
cluster.name: my-cluster node.name: node-1 network.host: 0.0.0.0 discovery.seed_hosts: ["node-1-ip", "node-2-ip"] cluster.initial_master_nodes: ["node-1", "node-2"]
解释:
discovery.seed_hosts
列出集群中其他节点的 IP 地址或主机名。cluster.initial_master_nodes
列出初始化集群时的主节点。
(2) 保存并重启 Elasticsearch
保存文件后,重启 Elasticsearch:
sudo systemctl restart elasticsearch
3. 验证
检查 Elasticsearch 是否启动成功:
sudo systemctl status elasticsearch
或者使用 curl
测试:
curl -X GET "localhost:9200/"
正常情况下会返回类似以下信息:
{"name" : "node-1","cluster_name" : "my-cluster","cluster_uuid" : "_na_","version" : {"number" : "8.x.x",...},"tagline" : "You Know, for Search"
}
4. 生产模式下的额外配置
如果这是生产环境,请确保:
- JVM 内存配置:调整
/etc/elasticsearch/jvm.options
中的-Xms
和-Xmx
参数,例如:-Xms2g -Xmx2g
- 防火墙规则:确保允许外部访问的端口(默认是
9200
和9300
)。 - 安全性配置:在生产环境中启用 TLS 和认证。
通过这些配置,你应该能够成功启动 Elasticsearch。