You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Osquery包无法运行差异日志记录问题咨询

问题描述

运行osquery包中的计划查询时,结果始终以快照模式运行,无法捕获查询的差异数据,不确定这是Bug还是特性。

示例配置如下:

osquery.conf 配置

"schedule": {
   "processes": {
   "query": "SELECT * FROM processes;",
   "interval": 60,
   "removed": false
   }},
"packs": {
    "packname": "C:\\Program Files\\osquery\\packs\\test_processes.conf"
}

包文件test_processes.conf中包含相同的SELECT * FROM processes;查询。

单独在schedule里配置的processes查询运行正常,处于差异模式,不会产生大量重复进程日志;但包中的同一条查询却无法进入差异模式,每分钟都会向osquery日志中写入完全相同的进程事件。

osquery.flags 配置

--logger_plugin=filesystem
--logger_path=C:\myproject\Data\LogFiles\osquery
--enable_powershell_events_subscriber=true
--logger_rotate=true
--logger_rotate_size=20971520
--logger_rotate_max_files=10

请问--logger_plugin=filesystem是否与包不兼容?


解答

--logger_plugin=filesystem和osquery包不存在兼容性问题,问题出在包查询的默认差异模式配置上。

osquery的schedule配置中,removed参数默认值为false,此时查询默认启用差异模式(仅输出与上一次查询的差异数据)。但在包的配置文件中,默认行为不同:

  • 包内的查询默认强制使用快照模式,每次查询输出全量数据,不会自动启用差异模式。
  • 要让包内查询启用差异模式,需在包的查询配置中显式添加"removed": false参数(若需同时输出新增和移除的数据,可设为true)。

修改包文件test_processes.conf的配置,给查询加上removed参数即可:

"queries": {
  "processes": {
    "query": "SELECT * FROM processes;",
    "interval": 60,
    "removed": false
  }
}

修改后,包内的查询会和schedule中的查询一致,以差异模式运行,不再重复输出全量进程日志。


内容的提问来源于stack exchange,提问作者ala zegnani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:27:20