一个简单的Json数据包查询。

pyjq-ng的Python项目详细描述


pyjq公司

一个简单的Python包来查询Json数据。在

特点

  • 支持纯json文件
  • 在一个文件中支持多个json对象,用换行符(/n)分隔
  • 支持gzip文件
  • 支持可自定义的筛选器
  • 支持纯日期时间范围筛选器

托多

采用Python3 stdlib operator,可以方便地扩展滤波器。 请参见pyjq.PyJQ.filter以扩展操作映射。在

安装

pip install pyjq-ng

示例数据

请参见example/alerts.json。 pyjq一行一行地工作(按\n分隔)。 它已用于Wazuh警报json文件和Django转储。在

^{pr2}$

使用

这是pyjq用来访问嵌套子对象的名称空间的一个示例。换句话说就是json['agent']['name']。 它对嵌套元素的数量没有限制。在

对Wazuh警报文件应用一些带有AND和OR运算符的自定义筛选器

pyjq -j ../Scaricati/alerts.json -filter 'agent__ip == 172.16.16.102 and agent__name == telegram-gw or agent__ip == 172.16.16.108'

包含运算符

pyjq -j ../Scaricati/alerts.json -filter 'rule__description in iptables and agent__name == dev-bastion'

将指定的文件转换为纯日期时间对象,并在指定范围内进行筛选

pyjq -j ../Scaricati/alerts.json -start_datetime 2020-04-06T10:22:00 -end_datetime 2020-04-06T13:22:00 -datetime_field timestamp

实时读取,它只接受后面的条目,用换行符分隔\n

pyjq -j /var/ossec/logs/alerts/alerts.json -datetime_field timestamp -realtime

直接使用gzip压缩的json文件

pyjq -j ../Scaricati/alerts.json.gzip

将结果限制为2

pyjq -j ../Scaricati/alerts.json  -limit 2

对特定实体的实时监控

pyjq -j /var/ossec/logs/alerts/alerts.json -realtime -filter 'agent__name == tinyurl and rule__level == 3'

自定义回调,用于bot集成和其他发布/订阅API

python3 pyjq -j examples/alerts.json -realtime -filter 'agent__name == tinyurl and rule__description in ssh' -callback 'examples.callback.things'

从stdin读取

cat examples/alerts.json | python3 ./pyjq -filter 'rule__level > 3'

# continous processing
tail -f  /tmp/alerts.json | python3 ./pyjq -filter 'location != osquery'

作者

朱塞佩·德马尔科giuseppe.demarco@unical.it

学分

GarrLab的Wazuh SIEM集团

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnClick用于ListView中的特定项   java如何多次循环相同的TestNG测试。包括课前和课后   java如何在Codenameone中设置BrowserComponent浏览器窗口大小   java Socketchannel始终为空   java以编程方式向JavaFX WebEngine历史添加新条目   java Hibernate+Spring与Oracle一起使用分层查询(从+连接方式开始)   Java中的安卓 getView和Beacon(Estimote)问题   计时器如何在java中设置暂停选项   java为什么输入1000000000000的输出不正确?   java如何在程序执行期间更改log4j2中的日志记录级别   java阻止代码引发XML异常   未找到媒体类型为application/json的java JAX RS MessageBodyWriter   java如何将BuffereImage中的特定颜色(0xFF00FF)设置为透明?   java如何列出web元素,如果网页中没有特定链接的id,如何单击网页中的特定链接?   在Java中读取txt文件时获取EOFEException   java如何避免为每个视图添加inject方法?   JavaSpringController:Facebook上类似文章的永久链接   java在尝试执行脚本时遇到错误“net.serentiybdd.core.exceptions.serentitymanagedexception:No session ID”