Elasticsearch入门之二 kibana
Kibana是什么
Kibana 是为 Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。
可视化界面
下面就Kibana对ES的查询监控作介绍,就是常提到的大数据日志处理组件ELK里的K。
什么是Kibana?现引用园友的一段对此的介绍,个人觉得比较全。
-
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
-
Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。
-
设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
主要功能
Elasticsearch集成
访问:http://192.168.0.5:5601/
kibana4-1-circle-graphs
Kibana架构为Elasticsearch定制,可以将任何结构化和非结构化数据加入Elasticsearch索引。Kibana还充分利用了Elasticsearch强大的搜索和分析功能。
整合你的数据
kibana4-2-color-low-high-graph
Kibana能够更好地处理海量数据,并据此创建柱形图、折线图、散点图、直方图、饼图和地图。
复杂数据分析
kibana4-3-orange-circles
Kibana提升了Elasticsearch分析能力,能够更加智能地分析数据,执行数学转换并且根据要求对数据切割分块。
让更多团队成员受益
kibana4-4-bar-graph
强大的数据库可视化接口让各业务岗位都能够从数据集合受益。
接口灵活,分享更容易
kibana4-5-color-dot-line-graph
使用Kibana可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。
配置简单
kibana4-6-bar-graph
Kibana的配置和启用非常简单,用户体验非常友好。Kibana 4自带Web服务器,可以快速启动运行。
可视化多数据源
kibana-other-technologies
Kibana可以非常方便地把来自Logstash、ES-Hadoop、Beats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache Flume、Fluentd等。
简单数据导出
kibana4-7-green-graph
Kibana可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,发现新结果。
与Elasticsearch REST API实现可视化交互
multiple-requests
Sense是一个可视化终端,通过Kibana插件支持自动补全、自动缩进和语法检查功能。
安装Kibana
方案一: docker安装
服务器开放5601端口号:
- 打开目录:
cd /home/index/
- 创建kibana文件夹:
mkdir /home/index/kibana8
- 进入kibana文件夹:
cd kibana8/
- 拉取镜像:
docker pull kibana:8.11.3
- 配置 kibana.yml
需要先得到 kibana.yml文件 , 可以通过docker cp
# 临时启动容器
docker run --name kibana8 -d -p 5601:5601 kibana:8.11.3
# docker cp 拷贝 kibana/config 到 宿主机对于的配置文件夹
docker cp kibana8:/usr/share/kibana/config /home/index/kibana8
cp 后 宿主机下对于的路径 就有如下文件了
本文安装版本为8.11.3,es不允许使用用户密码授权给kibana, 根据官网说明,创建服务账号令牌
# 进入 Elasticsearch 对应的docker容器, 安装目录的 bin 文件夹
docker exec -it elasticsearch8 /bin/bash
# 生成服务账号令牌(格式:<service-name>/<token-name>)
./bin/elasticsearch-service-tokens create elastic/kibana my-kibana-token
获得生成结果
SERVICE_TOKEN elastic/kibana/my-kibana-token = XXXX
列出所有令牌
./bin/elasticsearch-service-tokens list
退出es的docker容器
修改kibana.yml
添加服务账号令牌配置
elasticsearch.serviceAccountToken: XXXX
注意,确保没有elasticsearch.username和elasticsearch.password ,有则删除
重启 Kibana
docker restart <kibana_container_id_or_name>
kibana.yml配置示例 ,其中127.0.0.1改成自己es地址
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://127.0.0.1:9200" ]
#添加以下内容
elasticsearch.serviceAccountToken: "AAEAAWVsYXN0aWMva2liYW5hL215LWtpYmFuYS10b2tlbjI6S2F5bTNTejNTbWlIWUlKa195OGZkUQ"
#elasticsearch.ssl.certificateAuthorities: ["config/http.p12"]
#elasticsearch.ssl.verificationMode: certificate
monitoring.ui.container.elasticsearch.enabled: true
# 添加
i18n.locale: "zh-CN"
- 检验kibana
方案二:安装包
下载解压安装包,一定要装与ES相同的版本
下载地址:https://www.elastic.co/downloads/kibana
编辑文件config/kibana.yml ,配置属性:
[root@H32 ~]# cd kibana/config/
[root@H32 config]# vim kibana.yml
添加:
server.host: "192.168.80.32"
elasticsearch.url: "http://192.168.80.32:9200"
先启动ES,然后再启动
cd /usr/local/kibana530
bin/kibana
kibana必须是在root下运行,否则会报错,启动失败
使用
打开http://192.168.80.32:5601/status
想要在Kibana中监控ES则需要安装 X-pack插件,现介绍 X-pack插件。
X-pack监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装在X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据
X-pack的安装
安装X-pack的时候分别在ElasticSearch根目录和Kibana根目录下操作。以下参考网友的安装方法。
Elasticsearch下载X-Pack
在Es的根目录(每个节点),运行 bin/elasticsearch-plugin进行安装。
先进入elasticsearch安装的目录,然后键入下命令:
bin/elasticsearch-plugin install x-pack
安装过程中跳出选项现在y即可。
如果你在Elasticsearch已禁用自动索引的创建,在elasticsearch.yml配置action.auto_create_index允许X-pack创造以下指标:
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
运行Elasticsearch。
bin/elasticsearch
Kibana下载X-Pack
在Kibana根目录运行 bin/kibana-plugin 进行安装。
先进入kibana的安装目录,然后键入以下命令:
bin/kibana-plugin install x-pack
安装过程会比较久,耐心等待。
运行Kibana。
bin/kibana
验证X-Pack
在浏览器上输入: http://192.168.80.32:5601/ ,可以打开Kibana,此时需要输入用户名和密码登录,默认分别是 elastic 和 changeme。
若在线安装不了,则可选择下载后离线安装。
手动安装的方法
先下载对应的版本,本机装的是x-pack-5.2.2.zip 有128M 有点大,慢慢下,下载好后放在usr/local文件夹下,先进入elasticsearch安装文件夹再
bin/elasticsearch-plugin install file:usr/local/x-pack-5.2.2.zip
kibana中安装是一样
bin/kibana-plugin install file:usr/local/x-pack-5.2.2.zip
Kibana+X-Pack介绍使用
下面参考园友对X-Pack的介绍 ElasticSearch 5学习(2)——Kibana+X-Pack介绍使用(全)
下面是目前Kibana 5最新版本的界面。相比较Kibana 4除了界面的风格变化,最主要是功能栏上添加了Timeline、Management和Dev Tools选项。
Discover
从发现页可以交互地探索ES的数据。可以访问与所选索引模式相匹配的每一个索引中的每一个文档。您可以提交搜索查询、筛选搜索结果和查看文档数据。还可以看到匹配搜索查询和获取字段值统计的文档的数量。如果一个时间字段被配置为所选择的索引模式,则文档的分布随着时间的推移显示在页面顶部的直方图中。
Visualize
可视化能使你创造你的Elasticsearch指标数据的可视化。然后你可以建立仪表板显示相关的可视化。Kibana的可视化是基于Elasticsearch查询。通过一系列的Elasticsearch聚合提取和处理您的数据,您可以创建图表显示你需要知道的关于趋势,峰值和骤降。您可以从搜索保存的搜索中创建可视化或从一个新的搜索查询开始。
Dashboard
一个仪表板显示Kibana保存的一系列可视化。你可以根据需要安排和调整可视化,并保存仪表盘,可以被加载和共享。
Monitoring
从图中可以发现,默认Kibana是没有该选项的。其实,Monitoring是由X-Pack集成提供的。
该X-pack监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装在X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据。
Graph
X-Pack图的能力使你发现一个Elasticsearch索引项是如何相关联的。你可以探索索引条款之间的连接,看看哪些连接是最有意义的。从欺诈检测到推荐引擎,对各种应用中这都是有用的,例如,图的探索可以帮助你发现网站上黑客的目标的漏洞,所以你可以硬化你的网站。或者,您可以为您的电子商务客户提供基于图表的个性化推荐。X-pack提供简单,但功能强大的图形开发API,和Kibana交互式图形可视化工具。使用X-pack图有工作与开销与现有Elasticsearch指标你不需要任何额外的数据存储的特征。
Timelion
Timelion是一个时间序列数据的可视化,可以结合在一个单一的可视化完全独立的数据源。它是由一个简单的表达式语言驱动的,你用来检索时间序列数据,进行计算,找出复杂的问题的答案,并可视化的结果。
这个功能由一系列的功能函数组成,同样的查询的结果,也可以通过Dashboard显示查看。
Management
管理中的应用是在你执行你的运行时配置kibana,包括初始设置和指标进行配置模式,高级设置,调整自己的行为和Kibana,各种“对象”,你可以查看保存在整个Kibana的内容如发现页,可视化和仪表板。
这部分是pluginable,除此之外,X-pack可以给Kibana增加额外的管理能力。
你可以使用X-pack安全控制哪些用户可以访问Elasticsearch数据通过Kibana。当你安装X-pack,Kibana用户登录。他们需要有kibana_user作用以及获得的指标,他们将在Kibana的工作。如果用户加载Kibana仪表板,访问数据的一个索引,他们未被授权查看,他们得到一个错误,表明指数不存在。X-pack安全目前并不提供一种方法来控制哪些用户可以负荷的仪表板。
Dev Tools
原先的交互式控制台Sense,使用户方便的通过浏览器直接与Elasticsearch进行交互。从Kibana 5开始改名并直接内建在Kibana,就是Dev Tools选项。
安装问题
[2025-02-18T05:38:07.191+00:00][FATAL][root] Reason: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
at ensureValidConfiguration (/usr/share/kibana/node_modules/@kbn/core-config-server-internal/src/ensure_valid_configuration.js:23:11)
at Server.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/server.js:162:5)
at Root.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/root/index.js:47:14)
at bootstrap (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/bootstrap.js:97:9)
at Command.<anonymous> (/usr/share/kibana/src/cli/serve/serve.js:211:5)
FATAL Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
错误分析:此错误信息表明 Kibana 在配置验证时,检测到 elasticsearch.username 配置项使用了 elastic 这个超级用户账号,而该账号不允许写入 Kibana 所需的系统索引,因此需要使用服务账号令牌来替代。以下是解决该问题的详细步骤:
创建服务账号
curl -X POST -u elastic:<elastic_password> "http://localhost:9200/_security/service/default/kibana/kibana-service-account/_enable" -H 'Content-Type: application/json' -d '{
"metadata": {
"description": "Service account for Kibana"
}
}'
生成服务账号令牌
curl -X POST -u elastic:<elastic_password> "http://localhost:9200/_security/service/default/kibana/kibana-service-account/credential/token/kibana-token" -H 'Content-Type: application/json' -d '{
"expiration": "100y"
}'
修改 Kibana 配置文件
找到并注释或删除以下配置项:
# elasticsearch.username: "elastic"
# elasticsearch.password: "<elastic_password>"
添加服务账号令牌配置
elasticsearch.serviceAccountToken: "your_service_account_token"
重启 Kibana
docker restart <kibana_container_id_or_name>
安装执行命令集合
docker stop kibana8
docker rm kibana8
docker logs kibana8
docker pull kibana8:8.10.2
启动kibana8临时节点
docker run -itd --name kibana8 --net elk_network -p 5602:5601 kibana:8.11.3
mkdir /home/index/kibana8
复制容器镜像文件
docker cp kibana8:/usr/share/kibana/config /home/index/kibana8
创建真实容器节点
docker run -itd --name kibana8 --net elk_network -p 5602:5601 -v /home/index/kibana8/config:/usr/share/kibana/config kibana:8.11.3
确保 Elasticsearch 安全功能已启用
xpack.security.enabled: true
生成 Kibana 服务账号令牌
# 进入 Elasticsearch 安装目录的 bin 文件夹
docker exec -it elasticsearch8 /bin/bash
# 生成服务账号令牌(格式:<service-name>/<token-name>)
./bin/elasticsearch-service-tokens create elastic/kibana my-kibana-token
获得生成结果
SERVICE_TOKEN elastic/kibana/my-kibana-token = XXXX
修改 Kibana 配置文件
找到并注释或删除以下配置项:
# elasticsearch.username: "elastic"
# elasticsearch.password: "<elastic_password>"
添加服务账号令牌配置
elasticsearch.serviceAccountToken: XXXX
列出所有令牌
./bin/elasticsearch-service-tokens list
重启 Kibana
docker restart <kibana_container_id_or_name>