系统模块
编辑系统模块
编辑此功能处于 beta 阶段,可能会发生更改。其设计和代码不如正式 GA 功能成熟,按“原样”提供,不提供任何担保。Beta 功能不受正式 GA 功能的支持 SLA 约束。
system
模块收集有关系统的各种安全相关信息。所有数据集都会发送周期性的状态信息(例如,所有当前正在运行的进程)和实时更改(例如,当新进程启动或停止时)。
该模块在 x86 上的 Linux 上完全实现。目前,socket
模块在 ARM 上不可用。某些数据集也可用于 macOS (Darwin) 和 Windows。
工作原理
编辑每个数据集发送两种类型的信息:状态和事件。
状态信息会定期发送,并且(对于某些数据集)在启动时发送。状态更新将包含每个当前在系统上处于活动状态的对象(例如,进程)的一个事件。属于同一状态更新的所有事件将在 event.id
中共享相同的 UUID。
可以使用 state.period
配置选项控制所有数据集的状态更新频率。可以按数据集进行覆盖。默认值为 12h
。
事件信息会在事件发生时发送(例如,进程启动或停止)。所有数据集目前都使用轮询模型来检索其数据。这些轮询的频率由 period
配置参数控制。
实体 ID
编辑此模块会填充 entity_id
字段,以唯一标识主机内的实体(用户、软件包、进程…)。这需要 Auditbeat 获取主机的唯一标识符
- Windows:使用
HKLM\Software\Microsoft\Cryptography\MachineGuid
注册表项。 - macOS:使用
gethostuuid(2)
系统调用返回的值。 -
Linux:使用以下文件之一的内容,这些文件由
systemd
或dbus
创建- /etc/machine-id
- /var/lib/dbus/machine-id
- /var/db/dbus/machine-id
在 CentOS 6.x 下,可能不存在上述任何文件。在这种情况下,运行 dbus-uuidgen --ensure
(由 dbus
软件包提供)将为您生成一个。
示例仪表板
编辑该模块附带一个示例仪表板
配置选项
编辑此模块具有一些配置选项,用于控制其行为。以下示例显示了 Linux 的所有配置选项及其默认值。
建议单独配置某些数据集。有关建议的示例配置,请参见下文。
- module: system datasets: - host - login - package - process - socket - user period: 10s state.period: 12h socket.include_localhost: false user.detect_password_changes: true
此模块还支持稍后描述的标准配置选项。
-
state.period
- 数据集发送完整状态信息的间隔。可以使用
{dataset}.state.period
按数据集覆盖此选项。 -
user.detect_password_changes
- 如果配置了
user
数据集并且此选项设置为true
,则 Auditbeat 将读取/etc/passwd
和/etc/shadow
中的密码信息以检测密码更改。哈希值将本地保存在beat.db
文件中,以检测 Auditbeat 重启之间的更改。beat.db
文件应仅由 root 用户读取,并且其处理方式应与 shadow 文件本身类似。
标准配置选项
编辑您可以为任何 Auditbeat 模块指定以下选项。
-
module
- 要运行的模块的名称。
-
datasets
- 要执行的数据集列表。
-
enabled
- 一个布尔值,用于指定是否启用该模块。
-
period
- 数据集检查更改的频率。如果系统无法访问,则 Auditbeat 将为每个周期返回一个错误。此设置是必需的。对于大多数数据集,尤其是
process
和socket
,建议使用较短的周期。 -
fields
- 将与数据集事件一起发送的字段字典。此设置是可选的。
-
tags
- 将与数据集事件一起发送的标签列表。此设置是可选的。
-
processors
-
要应用于数据集生成的数据的处理器列表。
有关在配置中指定处理器的信息,请参见处理器。
-
index
-
如果存在,此格式化的字符串将覆盖来自此模块的事件的索引(对于 elasticsearch 输出),或设置事件元数据的
raw_index
字段(对于其他输出)。此字符串只能引用代理名称和版本以及事件时间戳;要访问动态字段,请使用output.elasticsearch.index
或处理器。示例值:
"%{[agent.name]}-myindex-%{+yyyy.MM.dd}"
可能会扩展为"auditbeat-myindex-2019.12.13"
。 -
keep_null
- 如果此选项设置为 true,则具有
null
值的字段将发布在输出文档中。默认情况下,keep_null
设置为false
。 -
service.name
- 用户为从中收集数据的服务指定的名称。例如,它可用于标识从具有相同
service.type
的不同群集节点收集的信息。
建议的配置
编辑进程和套接字可能是短暂的,因此如果轮询间隔太大,则错过更新的机会会增加。
另一方面,主机和用户信息不太可能频繁更改,因此可以使用更长的轮询间隔。
- module: system datasets: - host - login - package - user period: 1m user.detect_password_changes: true - module: system datasets: - process - socket period: 1s
示例配置
编辑系统模块支持在配置 Auditbeat下描述的常用配置选项。以下是一个示例配置
auditbeat.modules: - module: system datasets: - package # Installed, updated, and removed packages period: 2m # The frequency at which the datasets check for changes - module: system datasets: - host # General host information, e.g. uptime, IPs - login # User logins, logouts, and system boots. - process # Started and stopped processes - socket # Opened and closed sockets - user # User information # How often datasets send state updates with the # current state of the system (e.g. all currently # running processes, all open sockets). state.period: 12h # Enabled by default. Auditbeat will read password fields in # /etc/passwd and /etc/shadow and store a hash locally to # detect any changes. user.detect_password_changes: true # File patterns of the login record files. login.wtmp_file_pattern: /var/log/wtmp* login.btmp_file_pattern: /var/log/btmp*
数据集
编辑以下数据集可用