8.1 配置 Docker 日志的索引
为了演示,我创建了一个含有测试程序的 Docker 镜像,包括 ELK 和 Filebeat,用于生成日志。在这个示例中,我们将专注于在 Kibana 中配置 Docker 日志的索引。
步骤 1: 克隆仓库并启动 ELK 堆栈
下载包含 ELK 堆栈 Docker Compose 配置的仓库并启动它:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker compose up
为了方便,省略了 -d
标志,这样可以看到 ELK 堆栈的启动过程。启动可能需要几分钟。成功启动后,日志中应该会出现以下记录:
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],
"pid":6,"message":"http server running at http://0:5601"}
步骤 2: 访问 Kibana
打开网络浏览器并访问 http://localhost:5601 。

步骤 3: 配置日志索引
点击 Kibana 左侧菜单中的 Discover 部分,进入创建索引页面。

步骤 4: 创建新索引
点击 Create index pattern 按钮以打开设置表单。在 Index pattern name 字段中输入 logstash-*
。如果设置正确的话,Kibana 会显示符合规则的索引。

步骤 5: 选择时间字段
在下一页选择带时间戳的关键字段 — 例如 @timestamp
。

步骤 6: 验证索引
完成设置后,你会看到索引设置页面。目前无需额外操作。

步骤 7: 查看日志
返回到 Discover 部分,这里会显示来自 Docker 容器的日志记录。

8.2 创建用于可视化日志的Dashboard
步骤 1. 创建用于可视化日志的Dashboard
在左侧菜单中点击 "Dashboard" 部分 - 它会将我们带到创建Dashboard的页面。

步骤 2. 点击「Create new dashboard」,然后我们会跳转到一个可以向Dashboard添加对象的页面。

步骤 3. 点击按钮「Create new」,Kibana会提示选择如何显示数据。选项非常多,这里举两个例子 - 样式为「Vertical Bar」的图表和表格形式「Data Table」。其他配置方式类似。

8.3 日志直方图
来试试用“Vertical Bar”做一个直方图,展示服务成功和失败请求的比例。设置完成后会是这样的:

成功的请求指响应代码 < 400,而 >= 400 的我们认为是有问题的。
首先要选择图表的数据源。使用之前创建的 Index Pattern。

选择数据源后,默认会显示一个综合的图表。我们来调整它。

在“Buckets”部分,点击“Add”,选择“X-axis”并设置X轴。这里会用时间戳来标记。在“Aggregation”字段选择“Date Histogram”,然后在“Field”字段填入“@timestamp”。“Minimum interval”字段可以保持“Auto”。

点击“Update”,图表会显示每30秒的请求数量。

接下来我们设置Y轴的柱状图。现在显示的是每个时间间隔内的总请求数。我们将聚合方式更改为“Sum Bucket”,区分成功和有问题的请求。在Bucket → Aggregation部分选择“Filters”,并设置过滤器:“statusCode >= 400”。在“Custom label”字段写上清晰的指标名称。

按“Update”,图表会只显示有问题的请求。

想更改柱形的颜色吗?点击图表图例中的圆点,会弹出颜色选择窗口。

现在我们添加成功请求的数据。在“Metrics”部分点击“Add”,选择“Y-axis”。设置方法类似,但过滤器字段改为“statusCode < 400”。

更改新柱形的颜色后,我们就完成了成功和有问题请求比的可视化。

别忘了保存图表,点击顶部的“Save”。填写名称后,它会显示在Dashboard上。

8.4 日志表格
来吧,咱们搞个“Data Table”,这样可以看到所有被请求的URL以及它们的数量。先和“Vertical Bar”一样,从选择数据来源开始。

选择数据来源后,屏幕上会出现一张只有一列的表格,显示选定时间范围内的总请求数。

接下来,咱们来设置表格。转到“Buckets”部分,点击“Add”,然后选择“Split rows”。

在出现的“Aggregation”字段中选择“Terms”,然后在“Field”字段中指定“url.keyword”。

在“Custom label”字段中输入一个便于理解的名字,比如“Url”。然后点击“Update”,我们的表格就准备好了。表格中显示了选定时间范围内,每个URL的请求数量。

为了保存表格,点击屏幕顶部的“Save”,输入一个名称(比如“Urls”),然后返回到Dashboard。现在我们能看到我们创建的两个可视化。

GO TO FULL VERSION