本文最后更新于 1 分钟前,文中所描述的信息可能已发生改变。
Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,Kibana是其可视化平台。本文将详细介绍在CentOS/RHEL系统上通过RPM包安装和配置Elasticsearch与Kibana的完整过程。
环境准备
系统要求
- CentOS 7/8 或 RHEL 7/8
- Java 11 或更高版本
- 至少 4GB 内存
- 足够的磁盘空间(建议至少 50GB)
安装 Java
bash
# 安装 OpenJDK 11
不在多bb百度一下你就知道~
# 验证 Java 版本
java -version
离线 RPM 包准备
1. 下载 RPM 包
在有网络的环境中,预先下载所需的 RPM 包:
bash
# 下载 Elasticsearch 8.11.0 RPM 包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.0-x86_64.rpm
# 下载 Kibana 8.11.0 RPM 包
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-x86_64.rpm
2. 传输到目标服务器
将下载的 RPM 包传输到离线服务器:
bash
# 使用 scp 传输文件
scp elasticsearch-8.11.0-x86_64.rpm user@target-server:/tmp/
scp kibana-8.11.0-x86_64.rpm user@target-server:/tmp/
# 或使用 U 盘等物理介质传输
安装 Elasticsearch
1. 离线安装 Elasticsearch 8.11
bash
# 使用本地 RPM 包安装 Elasticsearch
sudo rpm -ivh /tmp/elasticsearch-8.11.0-x86_64.rpm
2. 启动 Elasticsearch 服务
bash
# 启动 Elasticsearch
sudo systemctl start elasticsearch
# 设置开机自启动
sudo systemctl enable elasticsearch
# 检查服务状态
sudo systemctl status elasticsearch
3. 重置 elastic 用户密码
在首次登录前,需要重置 elastic 用户的密码:
bash
# 重置 elastic 用户密码
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
执行后会显示新生成的密码,请妥善保存。如果需要交互式设置密码,可以使用:
bash
# 交互式设置密码
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
4. 验证 Elasticsearch 安装
bash
# 测试 Elasticsearch 连接
curl -X GET "localhost:9200" -u elastic:your-password
# 查看集群健康状态
curl -X GET "localhost:9200/_cluster/health" -u elastic:your-password
安装 Kibana
1. 离线安装 Kibana 8.11
bash
# 使用本地 RPM 包安装 Kibana
sudo rpm -ivh /tmp/kibana-8.11.0-x86_64.rpm
2. 生成 Kibana 注册 Token
bash
# 为 Kibana 生成注册 token
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana
保存生成的 token,稍后配置 Kibana 时需要使用。
3. 启动 Kibana 服务
bash
# 启动 Kibana
sudo systemctl start kibana
# 设置开机自启动
sudo systemctl enable kibana
# 检查服务状态
sudo systemctl status kibana
4. 获取 Kibana 验证码
首次访问 Kibana 时需要验证码:
bash
# 获取 Kibana 验证码
sudo /usr/share/elasticsearch/bin/kibana-verification-code
5. 配置 Kibana
访问 http://your-server-ip:5601
,使用上面获取的 token 和验证码完成初始配置。
Fleet 离线配置
1. 修改 Kibana 配置文件
编辑 /etc/kibana/kibana.yml
文件:
yaml
# Kibana 基本配置
server.host: "0.0.0.0"
server.port: 5601
# Elasticsearch 连接配置
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "your-kibana-password"
# 中文界面配置
i18n.locale: "zh-CN"
2. 配置离线 Fleet Registry
如果需要完全离线环境,可以配置本地 Registry:
yaml
# 离线 Fleet 配置
xpack.fleet.registryUrl: "http://your-local-registry:8080"
3. 重启 Kibana 服务
bash
# 重启 Kibana 应用配置
sudo systemctl restart kibana
# 检查日志
sudo journalctl -u kibana -f
Kibana 中文界面配置
1. 通过配置文件设置
在 /etc/kibana/kibana.yml
中添加:
yaml
# 设置中文界面
i18n.locale: "zh-CN"
2. 通过 Kibana 界面设置
- 登录 Kibana 管理界面
- 进入 Stack Management > Advanced Settings
- 搜索
locale
设置 - 将值设置为
zh-CN
- 保存设置并刷新页面
3. 验证中文设置
重启 Kibana 后,界面应该显示为中文。如果没有生效,检查浏览器语言设置。
安全配置
1. 配置防火墙
bash
# 开放 Elasticsearch 端口(仅本地访问)
sudo firewall-cmd --permanent --add-port=9200/tcp --zone=internal
# 开放 Kibana 端口
sudo firewall-cmd --permanent --add-port=5601/tcp
# 重载防火墙配置
sudo firewall-cmd --reload
2. 配置 SSL/TLS
编辑 /etc/elasticsearch/elasticsearch.yml
:
yaml
# 启用 SSL
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# SSL 配置
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
常见问题排查
1. Elasticsearch 启动失败
bash
# 检查 Elasticsearch 日志
sudo journalctl -u elasticsearch -f
# 检查配置文件语法
sudo /usr/share/elasticsearch/bin/elasticsearch --version
# 检查 Java 堆内存设置
sudo cat /etc/elasticsearch/jvm.options
2. Kibana 连接失败
bash
# 检查 Kibana 日志
sudo journalctl -u kibana -f
# 测试 Elasticsearch 连接
curl -X GET "localhost:9200/_cluster/health" -u elastic:password
# 检查 Kibana 配置
sudo cat /etc/kibana/kibana.yml
3. Fleet 配置问题
bash
# 检查 Fleet 状态
curl -X GET "localhost:5601/api/fleet/agents" -u elastic:password
# 重置 Fleet 配置
# 在 Kibana 界面中:Fleet > Settings > Reset to defaults
4. 内存不足问题
bash
# 调整 Elasticsearch JVM 堆内存
sudo vim /etc/elasticsearch/jvm.options
# 修改以下参数(根据服务器内存调整)
-Xms2g
-Xmx2g
性能优化建议
1. 系统级优化
bash
# 增加文件描述符限制
echo "elasticsearch soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "elasticsearch hard nofile 65536" | sudo tee -a /etc/security/limits.conf
# 增加虚拟内存映射限制
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2. Elasticsearch 优化
yaml
# 在 /etc/elasticsearch/elasticsearch.yml 中添加
bootstrap.memory_lock: true
indices.memory.index_buffer_size: 10%
thread_pool.write.queue_size: 1000
监控和维护
1. 设置日志轮转
bash
# 配置 Elasticsearch 日志轮转
sudo vim /etc/elasticsearch/log4j2.properties
# 配置 Kibana 日志轮转
sudo vim /etc/kibana/kibana.yml
2. 定期备份
bash
# 创建快照仓库
curl -X PUT "localhost:9200/_snapshot/backup_repo" -u elastic:password -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "/backup/elasticsearch"
}
}'
# 创建快照
curl -X PUT "localhost:9200/_snapshot/backup_repo/snapshot_1" -u elastic:password
总结
通过本文的详细步骤,我们成功完成了 Elasticsearch 和 Kibana 8.11 版本的 RPM 安装和配置。关键配置包括:
- 使用
elasticsearch-reset-password
重置初始密码 - 通过
elasticsearch-create-enrollment-token
获取 Kibana 注册 token - 使用
kibana-verification-code
获取验证码 - 配置 Fleet 离线 Registry 地址
- 设置 Kibana 中文界面
在生产环境中,建议进一步配置 SSL/TLS 加密、设置适当的用户权限、配置监控告警,并制定定期备份策略,确保系统的安全性和可靠性。