Elasticsearch 7.12 图形化界面配置(亲测)
Elasticsearch 7.12 有几种图形化界面工具可以查看集群状态和节点信息。我来为您详细介绍:
1. Kibana(官方推荐)
安装 Kibana 7.12
bash
# 下载 Kibana 7.12 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz# 解压 tar -xzf kibana-7.12.0-linux-x86_64.tar.gz cd kibana-7.12.0# 修改配置文件 vi config/kibana.yml
Kibana 配置 (kibana.yml)
yaml
# Kibana 服务端口 server.port: 5601# Kibana 服务地址 server.host: "0.0.0.0"# Elasticsearch 地址(测试环境按照这个配置的) elasticsearch.hosts: ["http://localhost:9200", "http://localhost:9201", "http://localhost:9202"]# 集群名称(可选,这个没有写) elasticsearch.clusterName: "my-es-cluster"# 支持中文 i18n.locale: "zh-CN"
启动 Kibana
bash
./bin/kibana
Kibana 监控功能
-
Stack Monitoring:集群监控仪表板
-
Dev Tools:执行查询和查看集群状态
-
Management:索引管理和集群设置
2. Cerebro(轻量级替代)
安装 Cerebro
bash
# 下载最新版本(兼容 ES 7.12) wget https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.tgz# 解压 tar -xzf cerebro-0.9.4.tgz cd cerebro-0.9.4# 修改配置 vi conf/application.conf
Cerebro 配置
conf
# 服务配置 host = "0.0.0.0" port = 9000# 认证(可选) auth = {type: basicsettings: {username = "admin"password = "password"} }# 集群配置 clusters = [{name = "my-es-cluster"url = "http://localhost:9200"} ]
启动 Cerebro
bash
./bin/cerebro
Cerebro 功能特点
-
节点状态:CPU、内存、磁盘使用率
-
索引管理:创建、删除、优化索引
-
分片分配:查看和重新分配分片
-
集群重启:滚动重启节点
-
实时监控:实时显示集群状态
3. ElasticHD(国产工具)
安装 ElasticHD
bash
# 下载 wget https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/download/1.4/ElasticHD_linux_amd64# 添加执行权限 chmod +x ElasticHD_linux_amd64# 启动 ./ElasticHD_linux_amd64 -p 0.0.0.0:9800
4. 使用 Docker 快速部署
Kibana Docker 部署
bash
docker run -d \--name kibana \-p 5601:5601 \-e "ELASTICSEARCH_HOSTS=http://es-node1:9200" \docker.elastic.co/kibana/kibana:7.12.0
Cerebro Docker 部署
bash
docker run -d \--name cerebro \-p 9000:9000 \-e "ES_HOST=http://es-node1:9200" \lmenezes/cerebro:0.9.4
5. 各工具功能对比
功能 | Kibana | Cerebro | ElasticHD |
---|---|---|---|
节点状态监控 | ✅ | ✅ | ✅ |
索引管理 | ✅ | ✅ | ✅ |
分片分配查看 | ✅ | ✅ | ✅ |
集群健康状态 | ✅ | ✅ | ✅ |
查询分析 | ✅ | ⚠️ | ✅ |
仪表板定制 | ✅ | ❌ | ❌ |
告警功能 | ✅ | ❌ | ❌ |
安装复杂度 | 中等 | 简单 | 简单 |
6. 推荐部署方案
生产环境推荐:Kibana
bash
# 使用 systemd 管理 Kibana 服务 sudo vi /etc/systemd/system/kibana.service
ini
[Unit] Description=Kibana Documentation=https://www.elastic.co Wants=network-online.target After=network-online.target[Service] Type=simple User=kibana Group=kibana WorkingDirectory=/opt/kibana-7.12.0 ExecStart=/opt/kibana-7.12.0/bin/kibana Restart=always RestartSec=10[Install] WantedBy=multi-user.target
开发环境推荐:Cerebro
bash
# 创建启动脚本 cat > start_cerebro.sh << 'EOF' #!/bin/bash cd /opt/cerebro-0.9.4 ./bin/cerebro -Dhttp.port=9000 -Dhttp.address=0.0.0.0 EOFchmod +x start_cerebro.sh
7. 访问地址
-
Kibana: http://localhost:5601
-
Cerebro: http://localhost:9000
-
ElasticHD: http://localhost:9800
8. 主要监控界面说明
Kibana Stack Monitoring
-
集群概览:节点数、分片数、索引数
-
节点详情:CPU、内存、磁盘、网络
-
索引统计:文档数、存储大小、索引速率
-
分片分配:分片分布和状态
Cerebro 界面
-
集群状态:整体健康状态
-
节点列表:每个节点的详细状态
-
索引管理:索引CRUD操作
-
分片查看:分片分配和移动
9. 浏览器访问测试
部署完成后,在浏览器中访问相应端口,您将看到:
Kibana:
text
1. 首次访问需要配置索引模式 2. 进入 Stack Monitoring 查看集群状态 3. 使用 Dev Tools 执行查询
Cerebro:
text
1. 输入 Elasticsearch 节点地址 2. 立即看到集群状态仪表板 3. 点击节点查看详细信息
推荐选择
-
全面监控:选择 Kibana(功能最完整)
-
简单管理:选择 Cerebro(轻量快速)
-
国产工具:选择 ElasticHD(中文友好)
根据您的需求,我建议先尝试 Cerebro,因为它安装简单,功能足够查看节点信息和集群状态。如果需要更复杂的查询分析和仪表板,再部署 Kibana。
Kibana 本身不需要做集群,它是单实例应用。Kibana 只是连接和监控 Elasticsearch 集群的可视化工具。
1. Kibana 架构说明
text
┌─────────────────┐ ┌─────────────────────────────────┐ │ Kibana │ │ Elasticsearch 集群 │ │ (单实例) │───▶│ Node-1 ─── Node-2 ─── Node-3 │ │ │ │ │ └─────────────────┘ └─────────────────────────────────┘
2. Kibana 7.12.0 安装步骤
下载和解压
bash
# 下载 Kibana 7.12.0 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-linux-x86_64.tar.gz# 解压 tar -xzf kibana-7.12.0-linux-x86_64.tar.gz cd kibana-7.12.0
配置 Kibana (config/kibana.yml)
yaml
# Kibana 服务端口(默认 5601) server.port: 5601# Kibana 服务监听地址(0.0.0.0 表示所有网络接口) server.host: "0.0.0.0"# Elasticsearch 集群节点地址(测试环境没有按照这个配置感觉有问题) elasticsearch.hosts: - "http://192.168.1.101:9200"- "http://192.168.1.102:9200" - "http://192.168.1.103:9200"# Elasticsearch 集群名称(与您的 ES 集群配置一致) # elasticsearch.clusterName: "my-es-cluster"# 支持中文界面 i18n.locale: "zh-CN"# 可选:设置 Kibana 索引(默认 .kibana) # kibana.index: ".kibana"# 可选:开启监控数据收集 # monitoring.ui.container.elasticsearch.enabled: true# 可选:安全认证(如果 ES 开启了安全认证) # elasticsearch.username: "kibana_system" # elasticsearch.password: "your_password"
启动 Kibana
bash
# 前台启动(测试用) ./bin/kibana# 后台启动(测试环境用的这个配置) nohup ./bin/kibana > kibana.log 2>&1 &# 使用 systemd 启动(推荐生产环境) sudo vi /etc/systemd/system/kibana.service
systemd 服务文件
ini
[Unit] Description=Kibana Documentation=https://www.elastic.co Wants=network-online.target After=network-online.target[Service] Type=simple User=es-user Group=es-user WorkingDirectory=/opt/kibana-7.12.0 ExecStart=/opt/kibana-7.12.0/bin/kibana Restart=always RestartSec=10[Install] WantedBy=multi-user.target
启用服务:
bash
sudo systemctl daemon-reload sudo systemctl enable kibana sudo systemctl start kibana sudo systemctl status kibana
3. 访问 Kibana
访问地址
text
http://你的服务器IP:5601
示例地址
-
本地访问:
http://localhost:5601
-
远程访问:
http://192.168.1.100:5601
4. Kibana 初始配置
第一次访问
-
打开浏览器访问
http://你的IP:5601
-
等待 Kibana 启动完成(约30-60秒)
-
您将看到 Kibana 欢迎页面
配置索引模式(首次使用)
-
点击左侧菜单 "Stack Management"
-
选择 "Index Patterns"
-
点击 "Create index pattern"
-
输入索引名称模式,如:
-
user_es_index
(您的用户索引) -
logstash-*
(如果使用 Logstash) -
*
(匹配所有索引)
-
5. 查看集群监控
方法1:Stack Monitoring
-
左侧菜单点击 "Stack Monitoring"
-
选择 "Overview" 查看集群概览
-
点击 "Nodes" 查看节点详细信息
-
点击 "Indices" 查看索引统计
方法2:Dev Tools
-
左侧菜单点击 "Dev Tools"
-
执行以下命令查看集群状态:
json
// 查看集群健康状态 GET _cluster/health// 查看节点信息 GET _cat/nodes?v// 查看索引状态 GET _cat/indices?v// 查看分片分配 GET _cat/shards?v
方法3:Dashboard
-
点击 "Dashboard"
-
创建自定义监控仪表板
-
添加各种可视化组件
6. 主要监控功能
集群概览
-
集群健康状态(Green/Yellow/Red)
-
节点数量和数据节点数量
-
分片总数和未分配分片数
-
文档总数和存储大小
节点详情
-
CPU 使用率
-
内存使用情况(JVM 堆内存)
-
磁盘使用率和磁盘空间
-
网络流量和负载
索引监控
-
每个索引的文档数量
-
索引存储大小
-
索引性能指标
-
分片分布情况
7. 故障排查
Kibana 无法启动
bash
# 检查日志 tail -f /opt/kibana-7.12.0/kibana.log# 常见问题: # 1. 端口被占用:netstat -tulpn | grep 5601 # 2. 内存不足:增加 JVM 内存 # 3. ES 连接失败:检查 elasticsearch.hosts 配置
无法连接 Elasticsearch
bash
# 测试 ES 连接 curl http://192.168.1.101:9200# 检查防火墙 sudo firewall-cmd --list-ports sudo firewall-cmd --add-port=5601/tcp --permanent sudo firewall-cmd --reload
8. 生产环境建议
安全配置
yaml
# 启用 HTTPS server.ssl.enabled: true server.ssl.certificate: /path/to/your/cert.crt server.ssl.key: /path/to/your/cert.key# 基本认证 elasticsearch.username: "kibana" elasticsearch.password: "secure_password"# 允许的主机 server.host: "kibana.yourcompany.com"
性能优化
yaml
# 增加内存 NODE_OPTIONS="--max-old-space-size=2048"# 优化 Elasticsearch 连接 elasticsearch.pingTimeout: 30000 elasticsearch.requestTimeout: 30000
总结
-
Kibana 是单实例,不需要集群
-
访问地址:
http://服务器IP:5601
-
配置简单:只需指定 Elasticsearch 集群地址
-
功能强大:完整的集群监控和可视化
安装完成后,您就可以通过 Kibana 的图形化界面实时查看 Elasticsearch 集群的所有状态信息了!