【问题标题】:How to find source hostname with fluentd?如何使用 fluentd 查找源主机名?
【发布时间】:2015-04-09 15:38:43
【问题描述】:

我正在寻找一种将 source_hostname 发送到 fluentd 目标服务器的方法。

我在 logstash,但我们有代理/服务器端,我们有变量来获取 logstash 服务器配置文件中的源主机名。

我使用 FluentD 搜索了类似的方法,但我发现的唯一方法是在源标记“#{Socket.gethostname}”中设置主机名。但是这样我就不能在目标日志文件的路径中使用主机名。 基于来源:http://docs.fluentd.org/articles/config-file#embedded-ruby-code

在服务器端,这就是我想做的原因:

<source>
    type forward
    port 24224
    bind 192.168.245.100
</source>
<match apache.access.*>
    type file
    path /var/log/td-agent/apache2/#{hostname}/access
</match>
<match apache.error.*>
    type file
    path /var/log/td-agent/apache2/#{hostname}/error
</match>

有人可以帮我做这样的事情吗?

提前感谢您的宝贵时间。

【问题讨论】:

    标签: fluentd


    【解决方案1】:

    您可以在 " 带引号的字符串中使用 #{} 评估 Ruby 代码。

    所以你可以把它改成,

    path /var/log/td-agent/apache2/"#{hostname}"/access
    

    参考文档 - http://docs.fluentd.org/articles/config-file#embedded-ruby-code

    【讨论】:

    • 这在路径的情况下似乎不起作用,我不知道为什么。你能提供一个更好的例子吗?
    【解决方案2】:

    你可以尝试使用record-reformer插件here或森林插件here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 2013-02-21
      • 2011-11-18
      • 2021-11-14
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      相关资源
      最近更新 更多