gpt4 book ai didi

elasticsearch - Fluentd - 使用源标签作为索引

转载 作者:行者123 更新时间:2023-12-02 18:11:53 29 4
gpt4 key购买 nike

我设置了在 Docker 引擎上运行的 Fluentd 和 Elasticsearch。我有大量服务想要登录到 Fluentd。

我想要做的是为我运行的每个服务创建一个标签,并使用该标签作为 Elasticsearch 中的索引。这是我的设置:

<source>
@type forward
port 24224
bind 0.0.0.0
</source>

<match docker.service1>
@type elasticsearch
host "172.20.0.3"
port 9200
index_name service1
type_name fluentd
flush_interval 10s
</match>

<match docker.service2>
@type elasticsearch
host "172.20.0.3"
port 9200
index_name service2
type_name fluentd
flush_interval 10s
</match>

等等。

必须为我创建的每个服务添加一个新的匹配标签,这会很烦人,因为我希望能够在不更新我的 fluidd 配置的情况下添加新服务。有没有办法做这样的事情:

<source>
@type forward
port 24224
bind 0.0.0.0
</source>

<match docker.**>
@type elasticsearch
host "172.20.0.3"
port 9200
index_name $(TAG)
type_name fluentd
flush_interval 10s
</match>

我在哪里使用 $(TAG) 变量来指示我希望标签名称成为索引的名称?

我已经从我找到的答案 here 中尝试过此操作:${tag_parts[0]}。这实际上是作为我的索引打印的。所以我的索引是“${tag_parts[0]}”。

提前致谢。

最佳答案

我发现我需要导入其他 Elasticsearch 插件。这是我使用的匹配标签的示例:

<match>
@type elasticsearch_dynamic
host "172.20.0.3"
port 9200
type_name fluentd
index_name ${tag_parts[2]}
flush_interval 10s
include_tag_key true
reconnect_on_error true
</match>

我导入了 @elasticsearch_dynamic 插件而不是 @elasticsearch 插件。然后,我可以使用 ${tag_parts} 东西。

include_tag_key 将在 json 数据中包含标签。

阅读documentation会有所帮助。

关于elasticsearch - Fluentd - 使用源标签作为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43688979/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com