【问题标题】:How to parse log using telegraf for dynamic logname that changes daily?如何使用 Telegraf 解析日志以获取每天更改的动态日志名?
【发布时间】:2017-03-20 04:13:14
【问题描述】:

请大家帮忙。 我现在使用 telegraf 作为我的 InfluxDB 数据库的日志馈送器,概念是我的 telegraf 将读取日志然后将结果发送到 InfluxDB。

[[inputs.logparser]]
files = ["/here/is/the/directory/logname.log"]
from_beginning = false

当日志文件名为 logname.log 时,它按预期工作。但是,今天我需要将日志名称系统更改为 logname.20170320.log,其中 20170320 是日志日期。你介意吗,如何正确配置:

files = ["/here/is/the/directory/logname.log"]

所以它可以读取每天动态更改名称的日志,例如:

files = ["/here/is/the/directory/logname.20170320.log"]
files = ["/here/is/the/directory/logname.20170321.log"]

感谢您的帮助。

【问题讨论】:

  • 您可以编写一个脚本,每天将日志文件名更改为当前日期。
  • 感谢@Luv33preet 的洞察力,我已经实现了您的想法,并且效果很好。非常感谢。

标签: influxdb logparser telegraf


【解决方案1】:

基于@Luv33preet 评论here,然后我编写了一个脚本来每天使用sed 更改配置,代码如下:

/bin/sed -i "s/`date +'%Y%m%d' -d '1 day ago'`/`date +'%Y%m%d'`/" /etc/telegraf/conf.d/my-config.conf

更改电报配置。

【讨论】:

    【解决方案2】:

    你为什么只为你的日志文件设置一个通配符?

    [[inputs.logparser]]
      /var/log/*/*.log    -> find all .log files with a parent dir in /var/log
      from_beginning = false
    

    【讨论】:

    • 我认为这是一个不好的建议(即使听起来不错),因为 telegraf 会监听所有匹配模式的文件,看看是否有任何变化。因此,如果您每天有 1 个文件,那么一年就有 365 个听众。
    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 2021-07-21
    • 2011-02-27
    • 1970-01-01
    • 2019-07-14
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多