系统模块
编辑系统模块编辑
此功能处于测试阶段,可能会发生变化。设计和代码不如正式的 GA 功能成熟,并且按原样提供,不提供任何保证。测试版功能不受正式 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 用户可读,并且应像对待影子文件本身一样对待。
标准配置选项编辑
您可以为任何 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*
数据集编辑
以下数据集可用