【问题标题】:how to write to a given index-pattern in Kibana?如何在 Kibana 中写入给定的索引模式?
【发布时间】:2020-01-03 13:56:06
【问题描述】:

我为 Elasticsearch、Kibana 和 Logstash 设置了一个 dotnet 核心项目。现在我只是将随机数据吐到日志中,但问题是,当我运行应用程序时,它会自动在 Kibana 的“发现部分”中的“_index”下以相同的索引模式运行。

问题是 - 在我的代码中 - 我如何定义要连接的索引模式?我认为它在 main 中的 Program.cs 中,但我不确定如何。

如果有意义的话,我希望能够在应用程序代码中决定自己要登录到哪个索引模式。

目前正在使用 serilog 接收器。是在那个方向上,我应该修复它还是我看错了方向?

更新(尝试从 mike b 给出的链接实现代码)

            var connectionSettings =
            new ConnectionSettings()
                .DefaultIndex("defaultindex")
                .DefaultMappingFor<Project>(m => m.IndexName("mycustomindex"));
        var elasticClient = new ElasticClient(connectionSettings);
        var searchResponse = elasticClient.Search<Project>();

我还在 kibana 中创建了一个索引,当我输入“GET _cat/indices”时,它会显示,但是在运行项目并看到 kibana 接收到日志时,我仍然看到它们注册在同一个旧的index ("httplog") 如下面的 sn-p 所示:

我该如何改变 - 或者我做错了什么?

PS:我可以在“发现”/下拉菜单中看到创建的索引,但它对于日志是空的。相反,我的 httplog-index 充满了日志...

【问题讨论】:

    标签: elasticsearch logging logstash kibana


    【解决方案1】:

    如果您使用的是 .NET Elasticsearch 客户端,它会推断出它认为您想要的索引名称。您可以覆盖该行为或为特定索引操作指定索引名称。

    见:https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index-name-inference.html

    【讨论】:

    • 谢谢!看起来我确实需要朝那个方向前进,但是在尝试时,我仍然在 _index 下得到“httplog-%{hostname}-2019.09.03”...即使尝试链接中指定的所有选项。 .. 实际上我在日志中的任何地方都找不到我的更改。
    • 我认为我们需要查看更多代码。您在更新中包含的 sn-p 为搜索请求设置了一个客户端,但是您将日志发布到 Elasticsearch 的真实代码是什么样的?应该有电话到.Index().IndexMany()
    • 那我就糊涂了。我已经尝试了您提供的链接中给出的所有选项,但它们都不起作用。您是说我正在执行搜索请求 - 是这个问题吗?我的日志确实显示在 kibana 上,现在我只希望它们以正确的方式被索引。因此,除了将它们放在自定义索引中之外,基本上所有其他的东西都可以工作。
    • 我怀疑 - 从你写的 - 我看错了,也许应该查看 .conf 文件,其中定义了输入、过滤器和输出?
    • 是的,如果 logstash 是将日志发送到 Elasticsearch 而不是您的应用程序,那么您需要在 logstash 配置中指定所需的索引名称。请参阅文档:elastic.co/guide/en/logstash/7.3/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多