Kibana介绍
- Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。使用者可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
- Kibana 可以使大数据通俗易懂。它很简单,基于浏览器的界面便于用户快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。
问题实例分析
场景1.kibana的discover页面报404错误
- 问题背景:用户新建集群后登录kibana点击discover功能,kibana页面报错显示server error。
- 排查思路:F12打开浏览器调试模式,返现discover调用的接口返回404错误。
- 问题原因:APM采集器会在elasticsearch集群中生成apm开头的索引,会自动生成apm-*(或apm开头)的索引模式。该索引模式下对应的索引一般没有数据,所以导致discover在从索引模式中加载数据时无法找到实际数据;
- 解决办法: 在kibana的Stack management中找到Kibana标签下的index patterns(索引模式)创建一个实际存在且有数据的索引模式,并设置为默认索引模式,即可解决该问题。
场景2.kibana堆栈监控无法打开
- 分析思路:堆栈监控作为kibana自带的ES基础监控,其中包含了集群、节点、索引维度的基础监控。这些指标均来自于对es集 群的采集。遇到堆栈监控问题优先排查用户的集群是否正常。
- 问题背景:kibana堆栈监控中的监控指标均采集于ES集群。
- 问题原因:大部分是由于ES集群负载过高节点压力过大,导致kibana请求ES鉴权失败。或者集群状态异常。
- 解决办法:优先在cerebro上检查集群状态,集群负载,基于监控分析集群业务压力是否影响到了kibana请求ES。
例如:集群出现熔断,集群压力过大,导致采集器无法采集到集群的指标数据并写入elasticsearch。Kibana堆栈监控在请求elasticsearch集群的监控索引时,也无法请求到数据,只接收到elasticsearch集群返回的熔断信息。
场景3.kibana无法登录
Case1:登录密码不对
排查方法:根据es集群ID,排查相应集群日志,日志中反馈密码错误。协助用户确认正确密码。
Case2:用户基于kibana公网地址访问kibana,提示无权限。
排查方法:公网访问地址一般会添加白名单。需要确认用户配置在白名单中的出口IP是否正确,如果不确定自身出口IP,可以在www.ip138.com中查询出口ip。
Case3:用户访问kibana提示timeout或504错误
排查方法:一般此类情况主要是由于es集群节点负载过高,导致kibana请求es鉴权出现超时。
Case4:用户访问kibana提示data too large 熔断。
排查方法:通过监控 cerebro 集群运行日志来定位es集群是否有熔断,导致kibana请求es的时候出现熔断的情况。
Case5:kibana节点磁盘使用率100%导致kibana无法登录。
排查方法:如果Kibana长期运行在低配节点,例如1C2G,2C2G规格的CVM实例上。长期运行导致服务长时间占用CVM句柄资源无法释放,需要重启kibana服务强制释放资源。重启后服务即可恢复正常。
场景4.kibana账户与权限配置
a.如何在kibana上创建只读账户。
b.使用elastic账户创建子账户后xx功能无法使用。
c.kibana中创建的账户能否在代码中配置使用。
问题解读:在es中elastic账户是超级管理员账户。Kibana使用的账户体系也是基于ES的账户体系。账户作为登录es或者kibana的凭证,所拥有的的权限与自身所绑定的role有密切关系。在kibana中配置User的Role已经细化到了索引维度与kibana的功能模块维度。在kibana中使用elastic管理员账户创建的子账号,根据相应role的不同,均可用于相应功能的访问或者配置于代码中请求es。遇到此类问题优先排查子账户上配置的Role权限。
场景5:Kibana导出CSV提示 request entity too large
- 问题原因:kibana默认导出csv文件大小限制是10M,超出限制就会报这个错误。
- 解决办法:需要在kibana.yml中调整xpack.reporting.csv.maxSizeBytes参数的大小。
注:kibana作为nodejs应用只适合少量数据导出,不适合做大量数据的问题导出,大量数据的导出建议使用scroll游标分页形式自行开发逻辑进行导出或使用logstash工具进行数据导出操作。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!