Kibana Dashboard 是 ELK Stack 的重要组成部分之一。它可以帮助我们实时监控日志数据并快速定位异常问题。但是如果要手动创建一个完整的 Dashboard 是非常困难的,很多公司都采用了内部工具来自动生成 Kibana Dashboard。而 import-kibana-dashboard 正是一个为了方便 Kibana Dashboard 的生成而生的工具。
在本文中,我们将会学习如何使用 import-kibana-dashboard,他提供的几个重要功能,并给出一个用例来展示如何快速地生成一个 Kibana Dashboard。
import-kibana-dashboard 介绍
import-kibana-dashboard 是一个使用 Node.js 编写的命令行工具,通过读取 JSON 格式的配置文件生成一个 Kibana Dashboard。当我们使用这个工具时,需要先提供 ELand Kibana 的 URL,然后通过一些必备配置信息,生成一个 JSON 文件。
这个 JSON 文件可以直接上传至 Kibana 并使用。
import-kibana-dashboard 的功能
import-kibana-dashboard 提供了多个生成 Kibana Dashboard 的配置选项。这些选项包括源索引、过滤器、时间范围、时间字段等等。下面是一些重要的配置选项:
indexPattern:指向 Elasticsearch 的索引名称,Kibana 利用它来搜索并过滤 Elasticsearch 的数据。
timeFieldName:时间戳用于过滤 Elasticsearch 数据。
filters: 一个对象数组,每个对象都描述了一个 filter,可以用来过滤 Elasticsearch 数据。
query:一个简单的 Elasticsearch 查询。
panelsJSON:一个对象数组,每个对象都描述了要创建的 Kibana 可视化图表和面板。
timeRange:时间范围,格式为 YYYY/MM/DD。
import-kibana-dashboard 的安装
使用 import-kibana-dashboard 之前,需要先安装它。使用 npm 可以轻松地完成这个过程:
npm install -g import-kibana-dashboard
Kibana Dashboard 使用示例
在这个示例中,我们将会使用 import-kibana-dashboard 生成一个日志监控的 Kibana Dashboard。
我们的数据源是一个 Elasticsearch 索引,它有多个字段,例如:timestamp
, source
, severity
, message
。我们的目标是创建一个 Kibana Dashboard ,其中包含三个可视化面板:
表格,展示按来源分组的事件数。
条形图,按严重程度分组的日志计数。
时间线图,展示最近 24 小时的日志事件数。
第一步:创建仪表盘 JSON 文件
在安装了 import-kibana-dashboard 之后,使用下面的命令创建一个仪表盘 JSON 文件:
import-kibana-dashboard \ --es_url http://localhost:9200 \ --index_pattern my_index-* \ --time_field timestamp \ --panels_json ./panels.json \ --dashboard_name "My Dashboard"
其中, --es_url 是 Elasticsearch 的 URL, --indes_pattern 是 Elasticsearch 索引的名称, --time_field 是时间戳, --panels_json 是我们上面提到的可视化面板 JSON 文件。
第二步:创建可视化面板 JSON 文件
在第一步中,我们创建了一个仪表盘 JSON 文件,但是还没有包含任何可视化面板。面板通常是一个带有可视化图表的小部件,可用于向业务用户展示数据。在我们的示例中,我们创建了三个可视化面板。下面是表格面板的 JSON 文件示例:
-- -------------------- ---- ------- - ----- -------------- ------- -------- -------- ---- --------- --------- -- --------- -- ---------- - ---- -- ---- -- ---- --- ---- - -- ---------- - ------------ ------ ----------- ------ ----------- ----- ------------------ - -- --- --- --- --- -- --------- --- ------------ ------ -- ---------- --- ---------- - - -------- --------- -------- --------- -------- ----- ------------- ----- ----------- ----- ---------------- ----- -- - -------- --------- -------- --------- -------- ----- ------------- ------ ----------- ----- ---------------- ------ - -- --------------- - -------- ------------- -------- - --------------- - -------- ----------------- -- --------------- - -- --------- -- - -
可以看到,这个 JSON 文件包括整个表格面板的全部参数,包括标题、大小、位置、属性和过滤器等等。其他两个面板的 JSON 文件可以在这里获取 https://github.com/grafana/grafana/blob/master/public/app/plugins/datasource/elasticsearch/migrations/v6/panels_v6.ts。
第三步:上传到 Kibana 并使用
完成上述步骤之后,我们就可以将生成的 JSON 文件上传至 Kibana 中,并将其设置为默认的 Dashboard。
在 Kibana 中,你可以通过页面的左侧导航栏访问到自己创建的 Dashboard。
总结
使用 import-kibana-dashboard 可以轻松自动生成 Kibana Dashboard,非常适合那些希望省去手动创建 Dashboard 的人员。在这篇文章中,我们介绍了 import-kibana-dashboard 工具和它提供的重要配置选项,然后展示了一个使用实例。
在实际工作中,每个企业的需求都是不同的,可以根据 import-kibana-dashboard 工具提供的参数自定义生成仪表盘的部分内容,这也是 import-kibana-dashboard 工具的优势所在。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005670081e8991b448e3438