Osquery 模块

编辑

osquery 模块收集并解码由 osqueryd 以 JSON 格式写入的结果日志。要设置 osqueryd,请按照操作系统的 osquery 安装说明进行操作,并配置 filesystem 日志驱动程序(默认值)。确保启用了 UTC 时间戳。

运行模块时,它会在后台执行一些任务

  • 设置日志文件的默认路径(但不用担心,您可以覆盖默认值)
  • 确保每个多行日志事件都作为单个事件发送
  • 使用 Elasticsearch 摄取管道来解析和处理日志行,将数据塑造成适合在 Kibana 中可视化的结构
  • 部署用于可视化日志数据的仪表板

阅读 快速入门,了解如何配置和运行模块。

兼容性

编辑

osquery 模块已使用来自 osquery 版本 2.10.2 的日志进行了测试。由于结果以 JSON 格式写入,因此此模块可能适用于任何版本的 osquery。

此模块在 Linux、macOS 和 Windows 上可用。

配置模块

编辑

您可以通过在 modules.d/osquery.yml 文件中指定 变量设置 或覆盖命令行中的设置来进一步优化 osquery 模块的行为。

您必须在模块中启用至少一个文件集。文件集默认情况下处于禁用状态。

以下示例显示了如何在 modules.d/osquery.yml 文件中设置路径以覆盖 syslog 和授权日志的默认路径

- module: osquery
  result:
    enabled: true
    var.paths: ["/path/to/osqueryd.results.log*"]

要在命令行中指定相同的设置,请使用

-M "osquery.result.var.paths=[/path/to/osqueryd.results.log*]"

变量设置

编辑

每个文件集都有单独的变量设置来配置模块的行为。如果您未指定变量设置,则 osquery 模块将使用默认值。

对于高级用例,您还可以覆盖输入设置。请参阅 覆盖输入设置

在命令行中指定设置时,请记住在设置前添加模块名称前缀,例如,使用 osquery.result.var.paths 而不是 result.var.paths

result 文件集设置

编辑
var.paths
指定在哪里查找日志文件的基于 glob 的路径数组。此处还支持 Go Glob 支持的所有模式。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:/path/to/log/*/*.log。这将获取 /path/to/log 的子文件夹中的所有 .log 文件。它不会获取 /path/to/log 文件夹本身的日志文件。如果此设置为空,则 Filebeat 将根据您的操作系统选择日志路径。
var.use_namespace
如果为 true,则此模块导出的所有字段都以 osquery.result 为前缀。设置为 false 以将字段复制到文档的根目录。如果启用,此设置还会禁用某些字段的重命名(例如,将 hostIdentifier 重命名为 host_identifier)。请注意,如果将其设置为 false,则此模块附带的示例仪表板将无法正常工作。默认为 true。

示例仪表板

编辑

此模块附带一个示例仪表板,用于可视化“合规性”包收集的数据。要收集此数据,请在 osquery 配置文件中启用 it-compliance 包。

kibana osquery compatibility

字段

编辑

有关模块中每个字段的说明,请参阅 导出字段 部分。