无畏复杂,以 ingest pipeline 的“灯塔”指引日志格式化解析
2024-02-15 08:19:28
在浩瀚的数据汪洋中,日志宛若一盏盏微弱的灯塔,指引着我们通向系统的脉搏。作为系统运行过程中的记录者,日志承载着宝贵的历史信息,是系统故障排除、性能优化和安全审计的可靠依据。然而,这些日志数据往往处于碎片化、异构化的状态,想要从中提取有意义的信息,犹如大海捞针。
Elasticsearch 的 ingest pipeline 便如同一位得力助手,帮助我们轻松地解析和格式化日志数据,让这些宝贵的历史信息焕发生机。在本教程中,你将了解如何使用 ingest pipeline 来处理来自不同来源和格式的日志数据,将其转化为可被搜索和分析的结构化数据,助力你洞悉系统运行状况、做出明智决策。
摄取管道基础知识
在正式开始之前,让我们先对摄取管道有个基本的了解。摄取管道是 Elasticsearch 中的一个功能,用于在将数据索引到 Elasticsearch 之前对其进行处理。这可以包括各种各样的操作,如解析、转换、丰富和验证。
你可以使用摄取管道来完成各种各样的任务,例如:
- 将来自不同来源的数据转换为一致的格式
- 从数据中提取有价值的信息
- 验证数据并确保其完整性
- 过滤掉不需要的数据
解析通用日志格式
通用日志格式(CLF)是一种广泛用于记录服务器请求的日志格式。它包含了诸如时间戳、请求方法、请求 URL、HTTP 状态代码、响应大小和引荐者等信息。以下是一个 CLF 日志的示例:
127.0.0.1 - - [01/Jan/2023:00:00:00 +0000] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36 Edg/108.0.1462.54"
为了能够在 Elasticsearch 中对 CLF 日志进行搜索和分析,我们需要将其解析为结构化的数据。我们可以通过创建一个摄取管道来实现这一目标。
创建摄取管道
要创建摄取管道,你可以使用 Elasticsearch API 或通过 Kibana 图形用户界面。在本教程中,我们将使用 Kibana 来创建摄取管道。
- 打开 Kibana 并转到“管道”选项卡。
- 点击“创建管道”按钮。
- 在“管道名称”字段中输入一个名称,例如“clf-pipeline”。
- 在“管道定义”字段中输入以下内容:
{
"processors": [
{
"grok": {
"field": "message",
"patterns": [
"%{TIMESTAMP_ISO8601:timestamp}",
"%{IP:clientip}",
"%{WORD:ident}",
"%{USER:user}",
"%{NOTSPACE:request}",
"%{NUMBER:status}",
"%{NUMBER:bytes}",
"%{QS:referrer}",
"%{GREEDYDATA:agent}"
]
}
}
]
}
- 点击“创建管道”按钮。
这个摄取管道将把 CLF 日志解析为以下字段:
- timestamp:时间戳
- clientip:客户端 IP 地址
- ident:用户名
- user:用户
- request:请求
- status:HTTP 状态代码
- bytes:响应大小
- referrer:引荐者
- agent:用户代理
应用摄取管道
现在我们已经创建了摄取管道,我们需要将其应用到索引。为此,请按照以下步骤操作:
- 打开 Kibana 并转到“索引模式”选项卡。
- 选择要应用摄取管道的索引模式。
- 在“摄取管道”字段中,选择“clf-pipeline”。
- 点击“保存”按钮。
摄取管道现在将应用于索引模式。所有进入该索引模式的新文档都将被解析并格式化为结构化的数据。
搜索和分析日志数据
现在我们已经解析了 CLF 日志,就可以开始搜索和分析日志数据了。你可以使用 Kibana 来执行此操作。
搜索日志数据
要搜索日志数据,请按照以下步骤操作:
- 打开 Kibana 并转到“发现”选项卡。
- 选择要搜索的索引模式。
- 在搜索字段中输入你的搜索查询。例如,你可以搜索以下内容:
timestamp:[2023-01-01 TO 2023-01-31] AND status:200
这将搜索从 2023 年 1 月 1 日到 2023 年 1 月 31 日之间发生的,并且 HTTP 状态代码为 200 的所有日志条目。
- 点击“搜索”按钮。
你的搜索结果将显示在“发现”选项卡中。
分析日志数据
你还可以使用 Kibana 来分析日志数据。例如,你可以创建图表或表格来可视化日志数据。你还可以使用聚合来汇总日志数据。
要创建图表或表格,请按照以下步骤操作:
- 打开 Kibana 并转到“可视化”选项卡。
- 选择要创建的图表或表格类型。
- 将字段拖放到图表或表格中。
- 点击“运行”按钮。
你的图表或表格将显示在“可视化”选项卡中。
结论
通过使用 ingest pipeline,你可以轻松地解析和格式化来自不同来源和格式的日志数据。这将使你能够更轻松地搜索和分析日志数据,从而做出更明智的决策。