在 Kibana 中创建仪表板来监控日志

在 Kibana 中创建仪表板来监控日志

大家好,我叫尤金,是 Citymobil 的 B2B 团队负责人。 我们团队的任务之一是支持从合作伙伴处订购出租车的集成,为了确保稳定的服务,我们必须始终了解微服务中发生的情况。 为此,您需要不断监控日志。

在 Citymobil 中,我们使用 ELK 堆栈(ElasticSearch、Logstash、Kibana)来处理日志,并且那里的数据量非常巨大。 在部署新代码后可能出现的大量请求中查找问题是相当困难的。 为了进行视觉识别,Kibana 有一个仪表板部分。

关于 Habré 有不少文章提供了如何设置 ELK 堆栈来接收和存储数据的示例,但没有关于创建 Dashboard 的相关材料。 因此,我想展示如何根据 Kibana 中的传入日志创建数据的可视化表示。

调整

为了更清楚地说明,我使用 ELK 和 Filebeat 创建了一个 Docker 镜像。 并放入一个小容器中 程序 在 Go 中,对于我们的示例,它将生成测试日志。 我不会详细描述ELK的配置,Habré上已经写得足够多了。

克隆配置存储库 docker-compose 和 ELK 设置,并使用命令启动它 docker-compose up。 故意不添加密钥 -d查看ELK堆栈的进度。

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

如果一切配置正确,那么我们将在日志中看到一个条目(可能不会立即看到,启动具有整个堆栈的容器的过程可能需要几分钟):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

致地址: localhost:5061 Kibana 应该打开。

在 Kibana 中创建仪表板来监控日志
在 Kibana 中创建仪表板来监控日志
我们唯一需要配置的是为 Kibana 创建一个索引模式,其中包含有关要显示哪些数据的信息。 为此,我们将执行一个curl请求或在图形界面中执行一系列操作。

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

通过 GUI 创建索引模式
要进行配置,请选择左侧菜单中的“发现”部分,然后进入“索引模式创建”页面。

在 Kibana 中创建仪表板来监控日志
通过点击“创建索引模式”按钮,我们进入索引创建页面。 在“索引模式名称”字段中,输入“logstash-*”。 如果一切配置正确,Kibana 下面将显示符合该规则的索引。

在 Kibana 中创建仪表板来监控日志
在下一页上,选择带有时间戳的关键字段,在我们的例子中是 @timestamp.

在 Kibana 中创建仪表板来监控日志
这将打开索引设置页面,但目前不需要我们采取进一步的操作。

在 Kibana 中创建仪表板来监控日志

现在我们可以再次转到“发现”部分,我们将在其中看到日志条目。

在 Kibana 中创建仪表板来监控日志

卖家专用后台

在左侧菜单中,单击仪表板创建部分并进入相应页面。

在 Kibana 中创建仪表板来监控日志
点击“创建新仪表板”,进入向仪表板添加对象的页面。

在 Kibana 中创建仪表板来监控日志
点击“新建”按钮,系统会提示您选择数据显示类型。 Kibana 有很多,但我们将着眼于创建“垂直条”的图形表示和表格“数据表”。 其他类型的演示也以类似的方式配置。 
在 Kibana 中创建仪表板来监控日志
一些可用对象被标记为 B 和 E,这意味着该格式是实验性的或处于 Beta 测试阶段。 随着时间的推移,该格式可能会发生变化或从 Kibana 中完全消失。

竖条

对于“垂直条”示例,让我们创建一个表示服务成功和不成功响应状态比率的直方图。 设置结束后,我们得到下图:

在 Kibana 中创建仪表板来监控日志
我们将响应状态 < 400 的所有请求分类为成功,将 >= 400 分类为有问题。

要创建“垂直条形”图表,我们需要选择一个数据源。 选择我们之前创建的索引模式。

在 Kibana 中创建仪表板来监控日志
默认情况下,选择数据源后将出现单个实体图。 我们来设置一下吧。

在 Kibana 中创建仪表板来监控日志
在“Buckets”块中,按“Add”按钮,选择“X-asis”并设置X轴。让我们沿着它的日志中的条目的时间戳。 在“Aggregation”字段中选择“Date Histogram”,在“Field”中选择“@timestamp”,表示时间字段。 让我们将“最小间隔”保留为“自动”状态,它会自动调整以适应我们的显示。 

在 Kibana 中创建仪表板来监控日志
单击“更新”按钮,我们将看到一个图表,其中显示每 30 秒的请求数。

在 Kibana 中创建仪表板来监控日志
现在让我们设置 Y 轴上的列。现在我们将显示所选时间间隔内的请求总数。

在 Kibana 中创建仪表板来监控日志
让我们将“Aggregation”值更改为“Sum Bucket”,这将允许我们合并成功和不成功请求的数据。 在 Bucket -> Aggregation 块中,选择“Filters”进行聚合,并按“statusCode >= 400”设置过滤。 在“自定义标签”字段中,我们指示了指标名称,以便在图表上的图例和常规列表中更易于理解地显示。

在 Kibana 中创建仪表板来监控日志
通过单击设置块下的“更新”按钮,我们将获得包含问题请求的图表。

在 Kibana 中创建仪表板来监控日志
如果单击图例旁边的圆圈,将出现一个窗口,您可以在其中更改列的颜色。

在 Kibana 中创建仪表板来监控日志
现在让我们将成功请求的数据添加到图表中。 在“指标”部分中,单击“添加”按钮并选择“Y 轴”。

在 Kibana 中创建仪表板来监控日志
在创建的指标中,我们对错误请求进行相同的设置。 仅在过滤器中我们指定“statusCode < 400”。

在 Kibana 中创建仪表板来监控日志
通过更改新列的颜色,我们可以显示有问题的请求和成功的请求的比率。

在 Kibana 中创建仪表板来监控日志
通过单击屏幕顶部的“保存”按钮并指定名称,我们将在仪表板上看到第一个图表。

在 Kibana 中创建仪表板来监控日志

数据表

现在考虑表格视图“数据表”。 让我们创建一个表,其中包含所请求的所有 URL 以及这些请求的数量。 与垂直条示例一样,我们首先选择一个数据源。

在 Kibana 中创建仪表板来监控日志
之后,屏幕上将显示一个一列的表格,其中显示所选时间间隔内的请求总数。

在 Kibana 中创建仪表板来监控日志
我们只会更改“Buckets”块。 单击“添加”按钮并选择“拆分行”。

在 Kibana 中创建仪表板来监控日志
在“聚合”字段中,选择“术语”。 并在出现的字段“Field”中选择“url.keyword”。

在 Kibana 中创建仪表板来监控日志
通过在“自定义标签”字段中指定“Url”值并单击“更新”,我们将获得所需的表格,其中包含所选时间段内每个 URL 的请求数。

在 Kibana 中创建仪表板来监控日志
在屏幕顶部,再次单击“保存”按钮并指定表的名称,例如“Urls”。 让我们返回仪表板并查看创建的两个视图。

在 Kibana 中创建仪表板来监控日志

使用仪表板

创建仪表板时,我们仅在显示对象设置中设置主视图参数。 在对象中指定过滤器的数据是没有意义的,例如“日期范围”、“按用户代理过滤”、“按请求国家/地区过滤”等。 在位于对象上方的查询面板中指定所需的时间段或设置必要的过滤要方便得多。

在 Kibana 中创建仪表板来监控日志
此面板上添加的过滤器将应用于整个 Dashboard,所有显示对象将根据实际过滤后的数据重新构建。

结论

Kibana 是一个功能强大的工具,可让您以便捷的方式可视化任何数据。 我试图展示两种主要类型的显示设置。 但其他类型的配置方式类似。 我在“幕后”留下的大量设置将允许您非常灵活地自定义图表以满足您的需求。

来源: habr.com

添加评论