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: basic
settings: {
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
EOF
chmod +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 集群的所有状态信息了!
浙公网安备 33010602011771号