一个简单的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转储。在
使用
这是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集团
- 项目
标签: