1. 首页 > ElasticSearch教程 > 正文

ElasticSearch教程FG021-ElasticSearch与Kibana联动实战

内容简介:本文档风哥主要介绍ElasticSearch与Kibana的联动使用,包括Kibana的安装配置、与ElasticSearch的连接、索引模式配置、数据可视化等内容。通过学习本文,您将掌握如何使用Kibana来可视化ElasticSearch中的数据,创建仪表盘,进行日志分析等操作。风哥教程参考ElasticSearch官方文档Kibana部分。

Part01-基础概念与理论知识

1.1 Kibana概述

Kibana是Elastic Stack(ELK Stack)中的可视化组件,它提供了丰富的图表和仪表盘功能,用于可视化ElasticSearch中的数据。Kibana的主要功能包括:

  • 数据可视化:通过各种图表展示数据
  • 仪表盘:将多个可视化组件组合在一起
  • 日志分析:实时分析和查询日志数据
  • 地图功能:地理空间数据的可视化
  • 机器学习:异常检测和预测分析

1.2 Kibana与ElasticSearch的关系

Kibana与ElasticSearch的关系:

  • Kibana是ElasticSearch的可视化前端,通过REST API与ElasticSearch交互
  • Kibana将用户的查询请求转换为ElasticSearch的查询语句
  • Kibana将ElasticSearch返回的结果可视化展示
  • Kibana可以管理ElasticSearch的索引、映射等

1.3 Kibana核心功能

Kibana的核心功能包括:

  • Discover:探索和查询数据
  • Visualize:创建各种可视化图表
  • Dashboard:创建和管理仪表盘
  • Canvas:创建自定义的可视化和报告
  • Maps:地理空间数据可视化
  • Machine Learning:异常检测和预测分析
  • Dev Tools:开发工具,用于执行ElasticSearch API请求
  • Management:管理索引模式、用户、角色等

Part02-生产环境规划与建议

2.1 Kibana部署规划

在生产环境中,Kibana的部署规划建议:

  • 独立部署:将Kibana部署在独立的服务器上,与ElasticSearch集群分开
  • 负载均衡:对于高流量场景,部署多个Kibana实例并使用负载均衡
  • 网络配置:确保Kibana服务器能够访问ElasticSearch集群
  • 备份策略:定期备份Kibana的配置和仪表盘

2.2 系统资源要求

Kibana的系统资源要求:

  • CPU:至少2核,推荐4核以上
  • 内存:至少4GB,推荐8GB以上
  • 磁盘:至少20GB,推荐50GB以上
  • 网络:千兆以上网络
  • 操作系统:支持Linux、Windows、macOS

2.3 安全配置建议

Kibana的安全配置建议:

  • 启用认证:配置Kibana的基本认证或集成企业认证系统
  • HTTPS配置:启用HTTPS,保护数据传输安全
  • 访问控制:设置基于角色的访问控制,限制用户权限
  • 审计日志:启用审计日志,记录用户操作

Part03-生产环境项目实施方案

3.1 Kibana安装与配置

Kibana的安装与配置步骤:

# 下载Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.10.0-linux-x86_64.tar.gz

# 解压Kibana
tar -xzf kibana-8.10.0-linux-x86_64.tar.gz
mv kibana-8.10.0-linux-x86_64 /es/app/kibana-8.10.0

# 编辑Kibana配置文件
vi /es/app/kibana-8.10.0/config/kibana.yml

# 配置ElasticSearch连接
elasticsearch.hosts: [“http://192.168.1.10:9200”]

# 配置Kibana端口
server.port: 5601
server.host: “0.0.0.0”

# 配置中文界面
i18n.locale: “zh-CN”

3.2 Kibana与ElasticSearch连接

配置Kibana与ElasticSearch的连接:

# 启动Kibana服务
/es/app/kibana-8.10.0/bin/kibana

# 或者作为系统服务启动
# 创建systemd服务文件
vi /etc/systemd/system/kibana.service

[Unit]
Description=Kibana
After=elasticsearch.service

[Service]
Type=simple
User=elasticsearch
ExecStart=/es/app/kibana-8.10.0/bin/kibana
Restart=always

[Install]
WantedBy=multi-user.target

# 启动服务
systemctl daemon-reload
systemctl start kibana.service
systemctl enable kibana.service

3.3 Kibana索引模式配置

配置Kibana索引模式:

  1. 访问Kibana界面:http://192.168.1.10:5601
  2. 点击左侧菜单中的”管理” → “索引模式”
  3. 点击”创建索引模式”
  4. 输入索引模式名称,如”fgedu-*”
  5. 选择时间字段(如果有)
  6. 点击”创建索引模式”

3.4 Kibana可视化配置

配置Kibana可视化:

  1. 点击左侧菜单中的”可视化”
  2. 点击”创建可视化”
  3. 选择可视化类型,如”柱状图”、”折线图”等
  4. 选择索引模式
  5. 配置聚合和指标
  6. 点击”保存”

Part04-生产案例与实战讲解

4.1 Kibana安装与配置实战

安装和配置Kibana:

# 下载Kibana 8.10.0
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.10.0-linux-x86_64.tar.gz

# 解压到指定目录
tar -xzf kibana-8.10.0-linux-x86_64.tar.gz
mv kibana-8.10.0-linux-x86_64 /es/app/kibana-8.10.0

# 创建Kibana用户
useradd -m kibana
chown -R kibana:kibana /es/app/kibana-8.10.0

# 配置Kibana
vi /es/app/kibana-8.10.0/config/kibana.yml

# 配置内容
server.port: 5601
server.host: “0.0.0.0”
elasticsearch.hosts: [“http://192.168.1.10:9200”, “http://192.168.1.11:9200”, “http://192.168.1.12:9200”]
i18n.locale: “zh-CN”

# 创建systemd服务
vi /etc/systemd/system/kibana.service

[Unit]
Description=Kibana
After=elasticsearch.service

[Service]
Type=simple
User=kibana
ExecStart=/es/app/kibana-8.10.0/bin/kibana
Restart=always

[Install]
WantedBy=multi-user.target

# 启动服务
systemctl daemon-reload
systemctl start kibana.service
systemctl enable kibana.service

# 检查服务状态
systemctl status kibana.service

执行后输出:

● kibana.service – Kibana
Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2024-01-01 10:00:00 CST; 1min ago
Main PID: 12345 (node)
CGroup: /system.slice/kibana.service
└─12345 /es/app/kibana-8.10.0/bin/../node/bin/node /es/app/kibana-8.10.0/bin/../src/cli/dist.js

Jan 01 10:00:00 fgedu-node1 systemd[1]: Started Kibana.

4.2 数据可视化实战

使用Kibana创建数据可视化:

# 首先创建测试数据
curl -X POST “http://192.168.1.10:9200/fgedu-sales/_bulk” -H “Content-Type: application/json” -d ‘{
“index”: {“_id”: “1”}
{“date”: “2024-01-01”, “product”: “ElasticSearch”, “sales”: 1000, “region”: “北京”}
{“index”: {“_id”: “2”}
{“date”: “2024-01-02”, “product”: “ElasticSearch”, “sales”: 1200, “region”: “上海”}
{“index”: {“_id”: “3”}
{“date”: “2024-01-03”, “product”: “ElasticSearch”, “sales”: 800, “region”: “广州”}
{“index”: {“_id”: “4”}
{“date”: “2024-01-01”, “product”: “Kibana”, “sales”: 800, “region”: “北京”}
{“index”: {“_id”: “5”}
{“date”: “2024-01-02”, “product”: “Kibana”, “sales”: 900, “region”: “上海”}
{“index”: {“_id”: “6”}
{“date”: “2024-01-03”, “product”: “Kibana”, “sales”: 700, “region”: “广州”}
}’

执行后输出:

{
“took” : 123,
“errors” : false,
“items” : [
{
“index” : {
“_index” : “fgedu-sales”,
“_id” : “1”,
“_version” : 1,
“result” : “created”,
“_shards” : {
“total” : 1,
“successful” : 1,
“failed” : 0
},
“_seq_no” : 0,
“_primary_term” : 1
}
},

]
}

然后在Kibana中创建索引模式和可视化:

  1. 访问Kibana界面:http://192.168.1.10:5601
  2. 点击左侧菜单中的”管理” → “索引模式”
  3. 点击”创建索引模式”,输入”fgedu-sales”,点击”下一步”
  4. 选择时间字段”date”,点击”创建索引模式”
  5. 点击左侧菜单中的”可视化”,点击”创建可视化”
  6. 选择”柱状图”,选择”fgedu-sales”索引模式
  7. 在”X轴”中选择”日期直方图”,字段选择”date”,间隔选择”天”
  8. 在”Y轴”中选择”求和”,字段选择”sales”
  9. 点击”保存”,输入名称”销售趋势图”

4.3 仪表盘创建实战

使用Kibana创建仪表盘:

  1. 点击左侧菜单中的”仪表盘”,点击”创建仪表盘”
  2. 点击”添加”,选择之前创建的”销售趋势图”
  3. 再次点击”添加”,创建一个新的可视化,如”按产品销售饼图”
  4. 调整可视化组件的位置和大小
  5. 点击”保存”,输入名称”销售分析仪表盘”

4.4 日志分析实战

使用Kibana进行日志分析:

# 首先创建日志索引
curl -X PUT “http://192.168.1.10:9200/fgedu-logs” -H “Content-Type: application/json” -d ‘{
“mappings”: {
“properties”: {
“@timestamp”: {
“type”: “date”
},
“level”: {
“type”: “keyword”
},
“message”: {
“type”: “text”
},
“service”: {
“type”: “keyword”
},
“host”: {
“type”: “keyword”
}
}
}
}’

# 插入测试日志数据
curl -X POST “http://192.168.1.10:9200/fgedu-logs/_bulk” -H “Content-Type: application/json” -d ‘{
“index”: {“_id”: “1”}
{“@timestamp”: “2024-01-01T10:00:00”, “level”: “INFO”, “message”: “Application started”, “service”: “app1”, “host”: “fgedu-node1”}
{“index”: {“_id”: “2”}
{“@timestamp”: “2024-01-01T10:01:00”, “level”: “ERROR”, “message”: “Database connection failed”, “service”: “app1”, “host”: “fgedu-node1”}
{“index”: {“_id”: “3”}
{“@timestamp”: “2024-01-01T10:02:00”, “level”: “INFO”, “message”: “User login successful”, “service”: “app2”, “host”: “fgedu-node2”}
{“index”: {“_id”: “4”}
{“@timestamp”: “2024-01-01T10:03:00”, “level”: “WARN”, “message”: “Disk space low”, “service”: “app3”, “host”: “fgedu-node3”}
}’

然后在Kibana中进行日志分析:

  1. 在Kibana中创建”fgedu-logs”索引模式
  2. 点击左侧菜单中的”Discover”,选择”fgedu-logs”索引模式
  3. 使用时间过滤器选择时间范围
  4. 使用搜索框搜索特定日志,如”ERROR”
  5. 点击左侧菜单中的”可视化”,创建日志级别分布饼图
  6. 创建仪表盘展示日志分析结果

Part05-风哥经验总结与分享

5.1 Kibana最佳实践

  • 合理规划索引模式:根据数据类型和查询需求,创建合适的索引模式
  • 优化可视化性能:避免创建过于复杂的可视化,合理设置聚合和过滤条件
  • 使用仪表盘模板:为不同的业务场景创建标准化的仪表盘模板
  • 定期备份配置:定期备份Kibana的配置、可视化和仪表盘
  • 权限管理:根据用户角色设置适当的权限,限制对敏感数据的访问

5.2 常见问题与解决方案

  • Kibana无法连接到ElasticSearch:检查网络连接、ElasticSearch服务状态和Kibana配置
  • 可视化加载缓慢:优化查询语句,增加ElasticSearch缓存,减少可视化复杂度
  • 仪表盘数据不准确:检查索引模式配置,确保时间字段和字段类型正确
  • Kibana服务启动失败:检查端口占用、文件权限和配置文件
  • 访问权限问题:检查用户权限配置,确保用户有适当的访问权限

5.3 性能优化建议

  • 硬件优化:为Kibana服务器配置足够的CPU和内存资源
  • ElasticSearch优化:确保ElasticSearch集群性能良好,响应迅速
  • 网络优化:确保Kibana与ElasticSearch之间的网络连接稳定
  • 缓存优化:启用浏览器缓存和ElasticSearch缓存
  • 查询优化:优化Kibana中的查询语句,减少不必要的聚合和计算
  • 负载均衡:对于高流量场景,部署多个Kibana实例并使用负载均衡

更多视频教程www.fgedu.net.cn

学习交流加群风哥微信: itpux-com

学习交流加群风哥QQ113257174

风哥提示:Kibana是ElasticSearch的重要可视化工具,合理使用可以大大提高数据分析效率

更多学习教程公众号风哥教程itpux_com

from ElasticSearch视频:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息