一、环境准备与前置条件
1.1 硬件与系统要求
- 节点配置建议:每个节点建议配置4核CPU、16GB内存、50GB以上磁盘空间(SSD优先),生产环境需根据数据量扩展。
- 操作系统选择:推荐CentOS 7/8或Ubuntu 20.04 LTS,需关闭SELinux(CentOS)或UFW(Ubuntu)以避免防火墙干扰。
- JDK依赖:Elasticsearch 8.9.0内置OpenJDK 17,无需单独安装,但需验证版本:
java -version # 应输出OpenJDK 17.x
1.2 网络与安全配置
- 节点间通信:确保所有节点在同一子网,开放9200(HTTP)、9300(TCP传输)端口。
- 安全组规则:若使用云服务器,需在安全组中放行上述端口,并限制来源IP为集群内节点。
- 主机名解析:编辑
/etc/hosts文件,为每个节点添加静态IP与主机名映射,例如:192.168.1.10 node1192.168.1.11 node2192.168.1.12 node3
二、Elasticsearch集群安装与配置
2.1 下载与安装
- 下载官方包:从Elasticsearch官网获取8.9.0版本压缩包,使用
wget或curl下载:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-linux-x86_64.tar.gztar -xzf elasticsearch-8.9.0-linux-x86_64.tar.gzcd elasticsearch-8.9.0/
2.2 核心配置文件修改
编辑config/elasticsearch.yml,关键参数如下:
# 集群名称(所有节点需一致)cluster.name: my-es-cluster# 节点名称(唯一)node.name: node1# 主节点列表(至少3个,避免脑裂)discovery.seed_hosts: ["node1", "node2", "node3"]# 初始主节点(与seed_hosts一致)cluster.initial_master_nodes: ["node1", "node2", "node3"]# 网络绑定(0.0.0.0允许外部访问,生产环境建议限制IP)network.host: 0.0.0.0http.port: 9200transport.port: 9300# 禁用X-Pack安全(测试环境,生产需启用)xpack.security.enabled: false
2.3 启动与验证
- 启动服务:
./bin/elasticsearch -d # 后台运行
- 检查状态:
curl -X GET "localhost:9200/_cluster/health?pretty"
正常响应应显示
"status": "green",且number_of_nodes与配置一致。
2.4 常见问题排查
- 内存不足错误:调整JVM堆大小,编辑
config/jvm.options:-Xms4g-Xmx4g
建议不超过物理内存的50%。
- 节点无法加入集群:检查
discovery.seed_hosts和network.host配置,确保网络互通。 - 端口冲突:使用
netstat -tulnp | grep 9200确认端口未被占用。
三、Kibana 8.9.0安装与集成
3.1 下载与安装
- 获取Kibana包:
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.9.0-linux-x86_64.tar.gztar -xzf kibana-8.9.0-linux-x86_64.tar.gzcd kibana-8.9.0/
3.2 配置文件调整
编辑config/kibana.yml,关键参数:
# Elasticsearch主机(Kibana所在节点需能访问ES)elasticsearch.hosts: ["http://node1:9200"]# 服务器绑定(0.0.0.0允许外部访问)server.host: "0.0.0.0"# 端口配置server.port: 5601# 禁用安全(测试环境)xpack.security.enabled: false
3.3 启动与访问
- 启动Kibana:
./bin/kibana --allow-root # 若以root用户运行需添加参数
- 验证访问:浏览器打开
http://<KIBANA_IP>:5601,应显示Kibana仪表盘。
四、生产环境优化建议
4.1 安全配置
- 启用TLS与认证:
# Elasticsearch配置xpack.security.enabled: truexpack.security.transport.ssl.enabled: true# Kibana配置elasticsearch.username: "kibana_system"elasticsearch.password: "<GENERATED_PASSWORD>"
使用
bin/elasticsearch-setup-passwords auto生成默认密码。
4.2 监控与告警
- 集成Elasticsearch监控:在Kibana中启用
Stack Monitoring,实时跟踪集群健康度。 - 设置告警规则:通过
Alerting功能配置节点离线、磁盘空间不足等告警。
4.3 备份与恢复
- 快照配置:在Elasticsearch中配置共享存储(如NFS)作为快照仓库:
path.repo: ["/mnt/es_snapshots"]
执行快照命令:
curl -X PUT "localhost:9200/_snapshot/my_backup?pretty" -H 'Content-Type: application/json' -d'{"type": "fs","settings": {"location": "/mnt/es_snapshots","compress": true}}'
五、总结与最佳实践
- 分阶段部署:先在测试环境验证配置,再迁移到生产。
- 版本一致性:确保所有节点使用相同版本的Elasticsearch和Kibana。
- 日志分析:定期检查
/var/log/elasticsearch/和/var/log/kibana/日志,提前发现潜在问题。 - 文档记录:保存所有配置文件和操作步骤,便于后续维护。
通过以上步骤,开发者可一次性完成Elasticsearch + Kibana 8.9.0集群的安装与配置,避免常见陷阱,确保集群高效稳定运行。