首页 > 技术文章 > osquery:Facebook开源的一款基于SQL的操作系统检测和监控框架

hljmly 2016-05-01 09:23 原文

  osquery是一款面向OSX和Linux的操作系统检测框架。它将操作系统暴露为一个高性能的关系型数据库,允许用户编写SQL查询查看操作系统数据。在osquery中,SQL表代表像下面这样的抽象概念:

  正在运行的进程

  已加载的内核模块

  打开的网络连接

  osqueryi是osquery中的交互式查询控制台。通过它,用户可以执行像下面这样的语句,从SQL表中获取操作系统中正在监听所有端口的进程的pid、名称和端口:

  osquery> SELECT DISTINCTwww.mlybyby.com 

  ...> process.name,

  ...> listening.port,

  ...> process.pid

  ...> FROM processes AS process

  ...> JOIN listening_ports AS listening

  ...> ON process.pid = listening.pid

  ...> WHERE listening.address = '0.0.0.0';

  osquery中已经存在许多表,用户可以在osquery命令行中使用“.table”命令列出所有表,而且还可以根据需要创建新表。有了这些表,用户可以:

  根据需要执行查询以查看操作系统的状态

  通过调度器执行查询以监控分布式主机操作系统www.mlyrx120.com

  使用osquery API从自定义应用程序中发起查询

  除了上文提及的特性及易于安装外,osquery还具有如下特性:

  osqueryd——这是osquery中的一个分布式主机监控守护进程,它性能高,内存占用小,允许用户在整个基础设施上执行查询。

  跨平台——虽然osquery利用了非常底层的操作系统API,但它允许用户在Ubuntu、Cent OS和Mac OS X上构建并使用它。

  详细的内部部署文档 www.hrbfkyy120.com

  此外,osquery代码库是由高性能的模块化组件构成,并且其公共API有清楚的文档记录。这些组件可以组合出新的、有趣的应用程序和工具。

推荐阅读