Exec 输入插件
编辑Exec 输入插件
编辑- 插件版本:v3.6.0
- 发布日期:2022-06-15
- 更新日志
有关其他版本,请参阅版本化插件文档。
获取帮助
编辑有关插件的问题,请在Discuss论坛中打开一个主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵。
描述
编辑定期运行 shell 命令并将整个输出捕获为一个事件。
- 此事件的
command
字段将是运行的命令。 - 此事件的
message
字段将是该命令的整个标准输出。
exec 输入最终使用 fork
来生成子进程。使用 fork 会复制父进程的地址空间(在我们的例子中,logstash 和 JVM);这可以通过操作系统写时复制来缓解,但最终您可能会为“简单”的可执行文件分配大量内存。如果 exec 输入出现类似 ENOMEM: 无法分配内存
的错误,则表明没有足够的非 JVM 堆物理内存来执行 fork 操作。
示例
input { exec { command => "echo 'hi!'" interval => 30 } }
这将每 30 秒执行一次 echo
命令。
与 Elastic Common Schema (ECS) 的兼容性
编辑此插件添加有关事件来源的元数据,并且可以配置为以与 ECS 兼容的方式使用ecs_compatibility
进行此操作。此元数据在事件由适当的编解码器解码后添加,并且不会覆盖现有值。
ECS 已禁用 | ECS v1 , v8 | 描述 |
---|---|---|
|
|
处理事件的 Logstash 主机的名称 |
|
|
插件运行的命令 |
|
|
进程的退出代码 |
— |
|
命令运行所花费的时间(以纳秒为单位) |
|
— |
命令持续时间(以秒为单位的浮点数)(已弃用) |
Exec 输入配置选项
编辑此插件支持以下配置选项以及稍后描述的通用选项。
另请参阅通用选项,了解所有输入插件支持的选项列表。
ecs_compatibility
编辑- 值类型是字符串
-
支持的值为
-
disabled
:使用向后兼容的字段名称,例如[host]
-
v1
、v8
:使用与 ECS 兼容的字段,例如[host][name]
-
控制此插件与Elastic Common Schema (ECS)的兼容性。有关详细信息,请参阅与 Elastic Common Schema (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
选项之一。