格式化elasticsearch结果

吉尔赫姆·迪马基(Guilherme Dimarchi)

我正在使用Elasticsearch检索一些日志:

http:/ localhost:9200 / collection / _search?q = type:“ log”

它给我带来了一些像这样的命中:

        {
                "_index": "collection",
                "_type": "doc",
                "_id": "UL878GMBYKUUOvfyQJWl",
                "_score": 6.487114,
                "_source": {
                    "@version": "1",
                    "type": "log",
                    "message": "64.242.88.10;[07/Mar/2004:16:11:58 -0800];"GET /twiki/bin/view/TWiki/WikiSyntax HTTP/1.1\"; 200 7352\r",
                    "@timestamp": "2018-06-11T19:03:23.163Z",
                    "host": "logstash",
                    "path": "/opt/access_log.log"
                }
            }

每个匹配都有一个“消息”,就像CSV中的一行“ access_log.log”一样。

但是,每个有用的信息都只是一个大字符串,而在“消息”中。因此,我需要提取某种方式来标识服务器IP(64.242.88.10)。

如何使用“;”分割此“消息”字符串 作为正则表达式,以便我只能获取所需的数据?

Sufiyan Ghori |

您可以为此使用grok过滤器插件

Grok是将非结构化日志数据解析为结构化和可查询内容的好方法。

该工具非常适合syslog日志,apache和其他Web服务器日志,mysql日志,以及通常用于人类而非计算机使用的任何日志格式。

Logstash默认附带大约120种模式。您可以在这里找到它们:https : //github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns您可以轻松地添加自己的。(请参阅patterns_dir设置)

如果您需要帮助构建与日志匹配的模式,您会发现http://grokdebug.herokuapp.comhttp://grokconstructor.appspot.com/应用程序非常有用!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章