elasticsearch - 如何在 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 充满了日志......
解决方案
如果您使用的是 .NET Elasticsearch 客户端,它会推断出它认为您想要的索引名称。您可以覆盖该行为或为特定索引操作指定索引名称。
请参阅:https ://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index-name-inference.html
推荐阅读
- python - 如何从长度取决于另一个列表的列表创建新的子列表
- python-3.x - 请求和flask服务器返回的不同HTTP状态码
- java - 关于找到矩阵中最大区域的练习的时间限制例外
- r - 用其他列中的给定信息替换 R 中的缺失值
- bots - 如何从消息中获取所有提及
- swift - DispatchQueue.main.async 块中未更新完成处理程序的返回值
- node.js - 如何以编程方式下载视频?
- reactjs - OnClick 函数未在 react-redux 中渲染组件
- postgresql - 您可能需要添加显式类型转换
- javascript - 是否可以在具有两个属性的数组中搜索对象