[英]Pattern matching using Grok in Apache NiFi
我试图使用grok
读取Apache NiFi
日志数据,但无法获取所需的输出。 这是我的样本数据:
[2019-07-16 22:20:16] local.INFO: news.index {"mobile":"959404576540","message":Mozilla/5.0 (Linux; Android 8.0.0; ATU-L42 Build/HUAWEIATU-L42; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36 a/2.7.0}
我尝试了以下表达,但没有为我工作。
%{SYSLOG5424SD}%{JAVACLASS}: %{JAVACLASS} {%{QS}:%{QS},%{QS}:%{QS}}
有人请帮我2019-07-16 22:20:16
我如何提取2019-07-16 22:20:16
: 959404576540
, Mozilla/5.0 (Linux; Android 8.0.0; ATU-L42 Build/HUAWEIATU-L42; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36 a/2.7.0
来自以上数据。
编辑:
@Emma回答是有效的,但是,如果我的数据包含任何空值,则它无效。 例如:
[2019-07-16 22:20:16] local.INFO: news.index {"mobile":"8765453673","message":null}
提前致谢。
这个表达,
\[([^]]+?)\](.*?)"mobile":"\s*(\d+)\s*"\s*,\s*"message"\s*:\s*([^}]*?)\s*\}
例如,可能是开始提取这些数据。
如果您希望探索/简化/修改表达式,请在本演示的右上方面板中进行说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.