首页 > 解决方案 > 如何在 Kibana 中写入给定的索引模式?

问题描述

我为 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 接收到日志时,我仍然看到它们注册在相同的旧索引下(“ httplog"),如下面的代码片段所示:

日志片段

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

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

标签: elasticsearchlogginglogstashkibana

解决方案


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

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


推荐阅读