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
相关产品推荐
相关产品推荐

