【发布时间】:2020-11-16 13:28:07
【问题描述】:
我有一个名为script.py 的python 脚本。当我运行此脚本时,它会在桌面上创建一个日志文件夹,并从网站下载所有必要的日志,并将它们作为.log 文件写入此日志文件夹中。我希望 Fluentd 每 5 分钟运行一次这个脚本,并且什么也不做。我在配置文件中的下一个source 完成了将日志数据发送到另一个地方的真正工作。如果我已经在桌面上有日志文件夹,则此日志文件将正确上传到下一个目标。但是脚本永远不会运行。如果我在本地删除我的日志文件夹,这是 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>
我只需要 fluentd 来运行脚本并且什么都不做,让其他来源获取这些数据并将其发送到其他地方。有什么解决办法吗?
【问题讨论】:
-
这个日志(
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)表示脚本正在执行。请从命令行或文件资源管理器检查文件夹中的文件更新,以验证文件是否正在更新。观察文件的时间戳。 -
永远不会创建目录上的文件夹
logs。如果我正常运行脚本,它会创建文件夹。 Python 中的脚本在 /home/someuser/Desktop/logs 中创建一个路径,然后将文件保存在那里。 -
您的
fluentd版本是多少?您以 root 身份运行它。你确定这不是权限问题吗?chmod +x script.py然后直接运行呢? -
对。因此,权限/特权问题。不过,我很高兴你明白了。 :)
-
您好,我在那里打开了一个问题。它是“requests”和“beautifulsoup4”模块。
标签: fluentd