- Logstash 输入阶段
- Logstash - 收集日志
- Logstash - 支持的输入
- Logstash 解析和转换
- Logstash - 日志解析
- Logstash - 过滤器
- Logstash - 日志转换
- Logstash 输出阶段
- Logstash - 输出阶段
- Logstash - 支持的输出
- Logstash 高级主题
- Logstash - 插件
- Logstash - 监控 API
- Logstash - 安全性和监控
- Logstash 有用资源
- Logstash - 快速指南
- Logstash - 有用资源
- Logstash - 讨论
Logstash - 日志解析
Logstash 使用输入插件接收日志,然后使用过滤器插件解析和转换数据。日志的解析和转换是根据输出目标系统中存在的系统进行的。Logstash 解析日志数据,仅转发所需字段。之后,这些字段将转换为目标系统兼容且易于理解的形式。
如何解析日志?
日志解析是通过使用**GROK**(知识图形表示)模式进行的,您可以在 Github 上找到它们:
https://github.com/elastic/logstash/tree/v1.4.2/patterns.
Logstash 将日志数据与指定的 GROK 模式或模式序列匹配以解析日志,例如“%{COMBINEDAPACHELOG}”,这通常用于 Apache 日志。
解析后的数据结构更清晰,更易于搜索和执行查询。Logstash 在输入日志中搜索指定的 GROK 模式,并提取日志中的匹配行。您可以使用 GROK 调试器来测试您的 GROK 模式。
GROK 模式的语法为 %{SYNTAX:SEMANTIC}。Logstash GROK 过滤器采用以下形式:
%{PATTERN:FieldName}
这里,PATTERN 代表 GROK 模式,fieldname 是字段的名称,它表示输出中解析的数据。
例如,使用在线 GROK 调试器 https://grokdebugger.com/
输入
日志中的一行示例错误:
[Wed Dec 07 21:54:54.048805 2016] [:error] [pid 1234:tid 3456829102] [client 192.168.1.1:25007] JSP Notice: Undefined index: abc in /home/manu/tpworks/tutorialspoint.com/index.jsp on line 11
GROK 模式序列
此 GROK 模式序列与日志事件匹配,该事件包括时间戳、日志级别、进程 ID、事务 ID 和错误消息。
\[(%{DAY:day} %{MONTH:month} %{MONTHDAY} %{TIME} %{YEAR})\] \[.*:%{LOGLEVEL:loglevel}\] \[pid %{NUMBER:pid}:tid %{NUMBER:tid}\] \[client %{IP:clientip}:.*\] %{GREEDYDATA:errormsg}
输出
输出采用 JSON 格式。
{ "day": [ "Wed" ], "month": [ "Dec" ], "loglevel": [ "error" ], "pid": [ "1234" ], "tid": [ "3456829102" ], "clientip": [ "192.168.1.1" ], "errormsg": [ "JSP Notice: Undefined index: abc in /home/manu/tpworks/tutorialspoint.com/index.jsp on line 11" ] }
广告