iLogtail

1756
下载
iLogtail 是阿里云日志服务(Log Service)中的一款高性能、可扩展的日志采集工具。它被设计用于实时收集、解析和传输各类日志数据,支持多种数据源和复杂的日志处理场景,广泛应用于分布式系统、Web 服务器、应用程序等环境中的日志管理。

脚本执行数据


简介

input_command插件可以通过配置脚本内容,在agent机器上生成可执行的脚本,并通过指定的cmdpath 执行该脚本,插件会从脚本执行后stdout获得内容进行解析,从而获取脚本内容执行后的信息。

注意:如果需要使用该插件,iLogtail需要在root用户下使用。配置的脚本内容请自查风险。

版本

Alpha

配置参数

基础参数

参数类型是否必选说明
TypeString插件类型,指定为input_command
ScriptTypeString指定脚本内容的类型,目前支持:bash 、shell、python2、python3
UserString运行命令使用的用户名,只支持非Root用户(建议配置最小权限,只给需要关注的目录/文件rwx权限)
ScriptContentString脚本内容, 支持PlainText和base64加密的内容, 跟ContentEncoding的字段对应, ScriptContent长度不能超过512*1024
ContentEncodingString脚本内容的文本格式 支持PlainText(纯文本,不编码)
LineSplitSepString脚本输出内容的分隔符,为空时不进行分割,全部作为一条数据返回
CmdPathString执行脚本命令的路径,如果为空,则使用默认路径。bash、shell、python2、python3对应的默认路径如下: - bash: /usr/bin/bash - shell: /usr/bin/sh - python2: /usr/bin/python2 - python3: /usr/bin/python3
TimeoutMilliSecondsint执行脚本的超时时间,单位为毫秒,默认为3000ms
IntervalMsint采集触发频率,也是脚本执行的频率,单位为毫秒,默认为5000ms
Environments[]string环境变量,默认为os.Environ()的值,如果设置了Environments,则在os.Environ()的基础上追加设置的环境变量
IgnoreErrorBool插件执行出错时是否输出Error日志。如果未添加该参数,则默认使用false,表示不忽略

生成参数

参数类型说明
contentString表示脚本的输出内容
script_md5String用于表示 ScriptContent(脚本内容)的 MD5,有助于确定生成日志的脚本内容来源
  • 采集配置1
enable: true
inputs:
- Type: input_command
User: test
ScriptType: shell
ScriptContent:
echo -e "test metric commond"
Environments:
- "DEBUG=true"
flushers:
- Type: flusher_stdout
OnlyStdout: true
  • 输出
{
"content":"test metric commond",
"script_md5":"b3ebc535c2e6cead6e2e13b383907245",
"__time__":"1689677617"
}
  • 采集配置2
enable: true
inputs:
- Type: input_command
User: test
ScriptType: python2
ScriptContent: |
print("test input_command 0")
print("test input_command 1")
print("test input_command 2")
print("test input_command 3")
print("test input_command 4")
print("test input_command 5")
print("test input_command 6")
print("test input_command 7")
print("test input_command 8")
print("test input_command 9")
CmdPath: /usr/bin/python
Environments:
- "DEBUG=true"
TimeoutMilliseconds: 1005
flushers:
- Type: flusher_stdout
OnlyStdout: true
  • 输出
{
"content":"test input_command 0\ntest input_command 1\ntest input_command 2\ntest input_command 3\ntest input_command 4\ntest input_command 5\ntest input_command 6\ntest input_command 7\ntest input_command 8\ntest input_command 9",
"script_md5":"5d049f5b2943d2d5e5737dddb065c39c",
"__time__":"1689677656"
}
  • 采集配置3
enable: true
inputs:
- Type: input_command
User: test
ScriptType: python2
ScriptContent: |
import os
print os.environ
CmdPath: /usr/bin/python
Environments:
- "DEBUG=true"
TimeoutMilliseconds: 1005
flushers:
- Type: flusher_stdout
OnlyStdout: true
  • 输出
{
"content":"{'GOPATH': '/opt/go', 'GOROOT': '/usr/local/go', 'DEBUG': 'true', xxxxx(省略后面内容)}",
"script_md5":"1444286e16118f7d1bb778738a828273",
"__time__":"1689677681"
}

observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32