【问题标题】:How to get data from a file in fluentd logger如何从流利的记录器中的文件中获取数据
【发布时间】:2018-05-11 09:58:06
【问题描述】:

我有一个在后台作为服务运行的 python 代码。它会生成一个包含 json 数据的 data.json 文件,如下所示

{
   "Type":"Data"
   "Name":"XYZ"
   "Level":32
}

此数据每 120 秒更新一次。因此,每 120 秒后,data.json 中的标签就会有新值。我希望通过 fluentd logger 的输入插件读取此信息,但不确定在此处使用哪个插件。我不能使用tail,因为我没有在这个文件中添加任何内容。任何人都可以建议或向我推荐好的链接/教程。

谢谢

【问题讨论】:

    标签: json logging fluentd


    【解决方案1】:

    我认为最适合您用例的解决方案是使用 exec plugin
    您可以使用此插件编写脚本,将相关键打印到标准输出并由 fluentd 收集。这对你有用吗?

    示例 -

    <source>
      @type exec
      command node json_parser.js
      run_interval 120s
    </source>
    

    然后,您可以在 json_parser.js 中编写解析 json 的整个逻辑,并使用 console.log 语句打印您希望通过 fluentd 摄取的值。

    【讨论】:

    • 嗨。谢谢。可以举个例子吗?
    • 当然,我在答案中添加了一个示例
    • 感谢您的示例。我以为你想说的是 linux 脚本,但我没有得到这个 .js。这也是一个 linux 脚本还是你想说我应该编写自己的输入插件。对不起,但我是这方面的新手。你能解释一下node json_parser.js吗?非常感谢。
    • 你说的没错,exex运行的是linux脚本,但是node实际上是一个linux脚本,可以将node.js文件作为参数。这似乎是处理 json 文件的最简单方法,但您可以使用 python、bash、ruby 或任何您喜欢的语言。
    • 你的意思是说我需要创建一个 linux 脚本,它将打印 json 文件中的值,它会自动在 fluentd 中使用。如果我使用脚本打印 fluentd 将如何获取 json 数据,我对此感到困惑。您能否添加一些带有解释的代码。非常感谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多