elasticsearch - 无法将索引插入 AKS 上的 ElasticSearch DB 容器
问题描述
我已将 Elasticsearch 和 Kibana 作为容器安装在 AKS 中。以下是服务的外观:
通过点击外部 IP 地址,我可以看到这两个服务都已启动并正在运行。但问题是我不确定 Kibana 是否能够连接到 Elasticsearch。我该如何检查?因为当我点击以下网址时没有得到成功的响应时:
我正在使用以下代码从我的 Azure LogAnalytics 工作区获取日志并插入 ElasticSearch DB:
private static void UploadLogToElasticSearchDB(Microsoft.Azure.OperationalInsights.Models.Table dt)
{
ElasticClient client = null;
var uri = new Uri("http://13.87.227.42:9200/");
var settings = new ConnectionSettings(uri);
client = new ElasticClient(settings);
settings.DefaultIndex("k8scontainercpu");
for(int i = 0; i < dt.Rows.Count; i++)
{
var dtRowJSON = JsonConvert.SerializeObject(dt.Rows[i]);
client.IndexAsync<string>(dtRowJSON, null);
}
}
这个程序无限运行并且没有插入任何记录,它也没有给出任何错误,我在程序的输出窗口中没有看到任何异常。如何在 AKS 的 elasticsearch DB 中插入索引?
解决方案
如果您能够使用外部 IP 和端口进行连接,则该服务工作正常。集群外部的内部服务名称将无法访问。
您可以打开 kibana 外部 url 并检查 kibana 是否能够连接到弹性搜索。如果 kibana 无法连接到弹性搜索,它将在 kibana 的健康状态中可见。但是,如果您能够从外部连接到弹性搜索,那么 kibana 应该能够轻松地与之连接。
关于索引创建,您也可以使用 kibana 创建索引。请参阅有关如何使用 kibana 创建索引的链接。ES也有创建索引链接的api
为了解决哪些文档没有插入到 ES 中,我建议使用 Index 函数(这是一个同步函数)并跟踪调用的响应,以便您可以识别调用中发生的情况。您可以从链接中了解它
推荐阅读
- python - 如何解决Robot Framework日志中以“\u0e”开头的乱码
- ios - png 透明图像元数据带有白色背景
- python - 使用 Python 的 URL 请求
- javascript - 从 filter 和 findIndex 循环的更好解决方案?更短的解决方案?JS
- sql-server - 如何查看当前的渐变尺寸设置?
- ssl - mitmproxy 可以记录“TLS Client Hello”和“TLS Server Hello”消息吗?
- android - 在不离开父屏幕的情况下导航到新屏幕
- docker - 将多个环境变量从 docker 添加到 kubernetes
- python - 来自两个以上染色体的后代
- python - 你如何设置一个 python 项目以便能够发送给其他人,而无需他们手动将代码复制并粘贴到编辑器中