Exec 输入插件
编辑Exec 输入插件
编辑- 插件版本:v3.6.0
- 发布日期:2022-06-15
- 变更日志
对于其他版本,请参阅 版本化插件文档。
获取帮助
编辑如有关于插件的问题,请在 Discuss 论坛中发起主题讨论。如需报告错误或提出功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵。
描述
编辑定期运行 shell 命令并将整个输出捕获为事件。
- 此事件的
command
字段将是运行的命令。 - 此事件的
message
字段将是命令的整个标准输出。
exec 输入最终使用 fork
生成子进程。使用 fork 会复制父进程的地址空间(在本例中为 Logstash 和 JVM);这可以通过 OS 的写时复制来缓解,但最终您可能会为“简单”的可执行文件分配大量内存。如果 exec 输入因错误(如 ENOMEM: Cannot allocate memory
)而失败,则表示没有足够的非 JVM 堆物理内存来执行 fork 操作。
示例
input { exec { command => "echo 'hi!'" interval => 30 } }
这将每 30 秒执行一次 echo
命令。
与 Elastic 通用架构 (ECS) 的兼容性
编辑此插件会添加有关事件源的元数据,并且可以通过 ecs_compatibility
配置为以 兼容 ECS 的方式执行此操作。此元数据是在事件由相应的编解码器解码后添加的,不会覆盖现有值。
ECS 已禁用 | ECS v1、v8 | 描述 |
---|---|---|
|
|
处理事件的 Logstash 主机的名称 |
|
|
插件运行的命令 |
|
|
进程的退出代码 |
— |
|
命令运行所花费的时间(以纳秒为单位) |
|
— |
命令持续时间(以秒为单位,浮点数)(已弃用) |
Exec 输入配置选项
编辑此插件支持以下配置选项以及稍后描述的 通用选项。
另请参阅 通用选项,以获取所有输入插件支持的选项列表。
ecs_compatibility
编辑- 值类型为 字符串
-
支持的值为
-
disabled
:使用向后兼容的字段名称,例如[host]
-
v1
、v8
:使用与 ECS 兼容的字段,例如[host][name]
-
控制此插件与 Elastic 通用架构 (ECS) 的兼容性。有关详细信息,请参阅 与 Elastic 通用架构 (ECS) 的兼容性。
示例输出:ECS 已启用
{ "message" => "hi!\n", "process" => { "command_line" => "echo 'hi!'", "exit_code" => 0 }, "host" => { "name" => "deus-ex-machina" }, "@metadata" => { "input" => { "exec" => { "process" => { "elapsed_time"=>3042 } } } } }
示例输出:ECS 已禁用
{ "message" => "hi!\n", "command" => "echo 'hi!'", "host" => "deus-ex-machina", "@metadata" => { "exit_status" => 0, "duration" => 0.004388 } }
schedule
编辑- 值类型为 字符串
- 此设置没有默认值。
定期运行命令的计划。
此计划语法由 rufus-scheduler 提供支持。语法类似于 cron,但有一些 Rufus 特定的扩展(例如时区支持)。
示例
|
将每天 1 月到 3 月的上午 5 点的每分钟执行一次。 |
|
将每天每小时的第 0 分钟执行一次。 |
|
将每天上午 6:00(UTC/GMT -5)执行一次。 |
描述此语法的更多文档可以在 此处 找到。
必须定义 interval
或 schedule
选项。