无法 运行 Fluentd 上的简单 Python 脚本
Unable to Run a Simple Python Script on Fluentd
我有一个名为 script.py
的 python 脚本。当我 运行 此脚本时,它会在桌面上创建一个日志文件夹,并从网站下载所有必要的日志,并将它们作为 .log
文件写入此日志文件夹中。我希望 Fluentd 每 5 分钟 运行 这个脚本并且什么都不做。我在配置文件中的下一个 source
完成了将此日志数据发送到另一个地方的真正工作。如果桌面上已有日志文件夹,则此日志文件会正确上传到下一个目的地。但是脚本永远不会 运行s。如果我在本地删除我的日志文件夹,这就是 fluentd 给出的输出:
2020-07-27 10:20:42 +0200 [trace]: #0 plugin/buffer.rb:350:enqueue_all: enqueueing all chunks in buffer instance=47448563172440
2020-07-27 10:21:09 +0200 [trace]: #0 plugin/buffer.rb:350:enqueue_all: enqueueing all chunks in buffer instance=47448563172440
2020-07-27 10:21:36 +0200 [debug]: #0 plugin_helper/child_process.rb:255:child_process_execute_once: Executing command title=:exec_input spawn=[{}, "python /home/zohair/Desktop/script.py"] mode=[:read] stderr=:discard
如果 运行 在本地,如 python script.py
,这不会在我的桌面上提供日志文件夹,脚本通常会输出该文件夹
如果我已经有了日志文件夹,我可以正常地在标准输出上看到日志。这是我的配置文件:
<source>
@type exec
command python /home/someuser/Desktop/script.py
run_interval 5m
<parse>
@type none
keys none
</parse>
<extract>
tag_key none
</extract>
</source>
<source>
@type tail
read_from_head true
path /home/someuser/Desktop/logs/*
tag sensor_1.log-raw-data
refresh_interval 5m
<parse>
@type none
</parse>
</source>
<match sensor_1.log-raw-data>
@type stdout
</match>
我只需要精通 运行 脚本,什么都不做,让其他来源获取此数据并将其发送到其他地方。有什么解决办法吗?
通过为 pip install -r requirements.txt
创建另一个 @type exec 解决了问题,该执行解决了 fluentd 错误日志中未显示的丢失模块错误(运行 fluentd 作为超级用户)。
我有一个名为 script.py
的 python 脚本。当我 运行 此脚本时,它会在桌面上创建一个日志文件夹,并从网站下载所有必要的日志,并将它们作为 .log
文件写入此日志文件夹中。我希望 Fluentd 每 5 分钟 运行 这个脚本并且什么都不做。我在配置文件中的下一个 source
完成了将此日志数据发送到另一个地方的真正工作。如果桌面上已有日志文件夹,则此日志文件会正确上传到下一个目的地。但是脚本永远不会 运行s。如果我在本地删除我的日志文件夹,这就是 fluentd 给出的输出:
2020-07-27 10:20:42 +0200 [trace]: #0 plugin/buffer.rb:350:enqueue_all: enqueueing all chunks in buffer instance=47448563172440
2020-07-27 10:21:09 +0200 [trace]: #0 plugin/buffer.rb:350:enqueue_all: enqueueing all chunks in buffer instance=47448563172440
2020-07-27 10:21:36 +0200 [debug]: #0 plugin_helper/child_process.rb:255:child_process_execute_once: Executing command title=:exec_input spawn=[{}, "python /home/zohair/Desktop/script.py"] mode=[:read] stderr=:discard
如果 运行 在本地,如 python script.py
如果我已经有了日志文件夹,我可以正常地在标准输出上看到日志。这是我的配置文件:
<source>
@type exec
command python /home/someuser/Desktop/script.py
run_interval 5m
<parse>
@type none
keys none
</parse>
<extract>
tag_key none
</extract>
</source>
<source>
@type tail
read_from_head true
path /home/someuser/Desktop/logs/*
tag sensor_1.log-raw-data
refresh_interval 5m
<parse>
@type none
</parse>
</source>
<match sensor_1.log-raw-data>
@type stdout
</match>
我只需要精通 运行 脚本,什么都不做,让其他来源获取此数据并将其发送到其他地方。有什么解决办法吗?
通过为 pip install -r requirements.txt
创建另一个 @type exec 解决了问题,该执行解决了 fluentd 错误日志中未显示的丢失模块错误(运行 fluentd 作为超级用户)。