跳转到主要内容

针对 https://github.com/garyelephant/pygrok/pull/3 的临时包

项目描述

pygrok 构建状态

Join the chat at https://gitter.im/garyelephant/pygrok

一个用于解析字符串并从结构化/非结构化数据中提取信息的Python库

我能用Grok做什么?

  • 解析和匹配字符串(日志、消息等)中的模式

  • 从复杂正则表达式解脱出来。

  • 从结构化/非结构化数据中提取信息

安装

$ pip install pygrok

或从这里下载,解压缩并安装pygrok

$ tar zxvf pygrok-xx.tar.gz
$ cd pygrok_dir
$ sudo python setup.py install

入门

>>> import pygrok
>>> text = 'gary is male, 25 years old and weighs 68.5 kilograms'
>>> pattern = '%{WORD:name} is %{WORD:gender}, %{NUMBER:age} years old and weighs %{NUMBER:weight} kilograms'
>>> print pygrok.grok_match(text, pattern)
{'gender': 'male', 'age': '25', 'name': 'gary', 'weight': '68.5'}

非常酷!您可以使用的一些模式列表如下

`WORD` means \b\w+\b in regular expression.
`NUMBER` means (?:%{BASE10NUM})
`BASE10NUM` means (?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)))

other patterns such as `IP`, `HOSTNAME`, `URIPATH`, `DATE`, `TIMESTAMP_ISO8601`, `COMMONAPACHELOG`..

查看所有模式 这里

更多信息

由于Python re模块不支持正则表达式原子分组(?>)语法,所以pygrok需要安装regex

pygrok受到Jordan Sissel开发的Grok的启发。这并不是Jordan Sissel的Grok的包装器,而是完全由我实现的。

Grok是一款简单的软件,允许您轻松解析字符串、日志和其他文件。使用Grok,您可以轻松地将非结构化日志和事件数据转换为结构化数据。Pygrok做同样的事情。

我建议您查看logstash filter grok,它解释了Grok-like机制的工作原理。

模式文件来自logstash filter grok的模式文件

贡献

获取帮助

mail:garygaowork@gmail.com
twitter:@garyelephant

贡献者

感谢所有贡献者

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pygroker-0.1.1.tar.gz (20.3 kB 查看哈希值)

上传时间

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面