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 监控功能

  1. Stack Monitoring:集群监控仪表板

  2. Dev Tools:执行查询和查看集群状态

  3. 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. 各工具功能对比

功能KibanaCerebroElasticHD
节点状态监控
索引管理
分片分配查看
集群健康状态
查询分析⚠️
仪表板定制
告警功能
安装复杂度中等简单简单

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. 访问地址

8. 主要监控界面说明

Kibana Stack Monitoring

  1. 集群概览:节点数、分片数、索引数

  2. 节点详情:CPU、内存、磁盘、网络

  3. 索引统计:文档数、存储大小、索引速率

  4. 分片分配:分片分布和状态

Cerebro 界面

  1. 集群状态:整体健康状态

  2. 节点列表:每个节点的详细状态

  3. 索引管理:索引CRUD操作

  4. 分片查看:分片分配和移动

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 初始配置

第一次访问

  1. 打开浏览器访问 http://你的IP:5601

  2. 等待 Kibana 启动完成(约30-60秒)

  3. 您将看到 Kibana 欢迎页面

配置索引模式(首次使用)

  1. 点击左侧菜单 "Stack Management"

  2. 选择 "Index Patterns"

  3. 点击 "Create index pattern"

  4. 输入索引名称模式,如:

    • user_es_index(您的用户索引)

    • logstash-*(如果使用 Logstash)

    • *(匹配所有索引)

5. 查看集群监控

方法1:Stack Monitoring

  1. 左侧菜单点击 "Stack Monitoring"

  2. 选择 "Overview" 查看集群概览

  3. 点击 "Nodes" 查看节点详细信息

  4. 点击 "Indices" 查看索引统计

方法2:Dev Tools

  1. 左侧菜单点击 "Dev Tools"

  2. 执行以下命令查看集群状态:

json

// 查看集群健康状态
GET _cluster/health

// 查看节点信息
GET _cat/nodes?v

// 查看索引状态
GET _cat/indices?v

// 查看分片分配
GET _cat/shards?v

方法3:Dashboard

  1. 点击 "Dashboard"

  2. 创建自定义监控仪表板

  3. 添加各种可视化组件

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 集群的所有状态信息了!