Kibana 是 Elastic Stack 的一部分,用于可视化和分析存储在 Elasticsearch 中的数据。它提供了强大的工具来创建各种图表、仪表盘、和地图,以便从大量数据中提取有价值的信息。
在使用 Kibana 之前,你需要确保 Elasticsearch 已经安装和运行,因为 Kibana 需要连接到 Elasticsearch 才能工作。
下载和安装
你可以从 Elasticsearch 官网 下载最新版本。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.0-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.8.0-linux-x86_64.tar.gz
cd elasticsearch-8.8.0
启动 Elasticsearch
./bin/elasticsearch
注意: 如果你是在 Windows 上运行 Elasticsearch,可以在 cmd
中运行 bin\elasticsearch.bat
。
下载和安装
从 Kibana 官网 下载最新版本的 Kibana。
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.8.0-linux-x86_64.tar.gz
tar -xzf kibana-8.8.0-linux-x86_64.tar.gz
cd kibana-8.8.0
配置 Kibana
编辑 config/kibana.yml
文件,设置 Kibana 连接到 Elasticsearch 的地址:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
如果你在不同的服务器上运行 Elasticsearch 和 Kibana,请确保 elasticsearch.hosts
指向正确的地址。
启动 Kibana
./bin/kibana
注意: 在 Windows 上,运行 bin\kibana.bat
。
启动 Kibana 后,你可以在浏览器中访问它,通常是 http://localhost:5601
。首次进入 Kibana,你需要添加数据到 Elasticsearch,然后就可以创建可视化和仪表盘。
为了使用 Kibana,你需要有一些数据在 Elasticsearch 中。我们可以使用内置的 sample data
来测试。
访问 Kibana
在浏览器中打开 http://localhost:5601
,进入 Kibana 的主界面。
添加示例数据
Add Data
。Sample eCommerce orders
,然后点击 **Add data
**。Kibana 会自动将示例数据集加载到 Elasticsearch 中,你可以用来测试和演示 Kibana 的功能。
进入 Visualize Library
Visualize Library
。Create visualization
。选择图表类型
选择你想创建的图表类型,例如 Bar
图。
配置图表
kibana_sample_data_ecommerce
索引。X-Axis
和 Y-Axis
。例如:
X-Axis
: order_date
(Date Histogram)Y-Axis
: Count
(Metrics)terms
(category.keyword)完成配置后,你可以看到所选数据集的可视化图表。
Dashboard
。Create dashboard
。Add
按钮。Save
按钮,输入仪表盘名称并保存。为了展示 Kibana 的使用,假设我们有一个应用程序日志数据集存储在 Elasticsearch 中。
你可以使用如下 Python 脚本来生成并导入日志数据到 Elasticsearch:
from datetime import datetime
from elasticsearch import Elasticsearch
import random
# 连接到 Elasticsearch
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# 示例日志数据
actions = ["login", "logout", "purchase", "view"]
# 创建索引
index_name = "app_logs"
if not es.indices.exists(index=index_name):
es.indices.create(index=index_name)
# 生成并导入日志数据
for i in range(1000):
doc = {
"timestamp": datetime.now(),
"user": f"user_{random.randint(1, 100)}",
"action": random.choice(actions),
"duration": random.randint(1, 300)
}
es.index(index=index_name, body=doc)
print("日志数据已导入")
Stack Management
。Index Patterns
,然后点击 **Create index pattern
**。app_logs
作为索引名称。timestamp
作为时间字段。app_logs
索引来创建各种可视化,例如:
通过以上步骤,你可以使用 Kibana 从 Elasticsearch 中获取数据,并创建各种强大的可视化和仪表盘。这对于分析和监控数据非常有用,特别是在处理大量日志和实时数据时。通过集成 Kibana,组织可以更有效地提取和利用数据中的洞察信息。