问题标签 [aws-elasticsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1515 浏览

amazon-cloudformation - 通过 CloudFormation 部署的 AWS Elasticsearch 域。如何在不更换的情况下更新 ES 版本?

我们有一个通过运行 ES 版本 6.3 的 CloudFormation 创建的 AWS Elasticsearch 域。当我们更新ElasticsearchVersion模板中的属性时,它会将 Elasticsearch 域替换为运行新版本的新域,而不是更新现有域。

如果不进行就地升级,任何人如何升级使用 CF 部署的 Elasticsearch 域?在这一点上,我几乎在想我需要通过 boto3 创建和管理我的 ES 域。

任何见解或想法将不胜感激。

0 投票
0 回答
1023 浏览

aws-lambda - 将 Api Gateway 请求/响应正文/标头记录到 ElasticSearch

默认设置很容易,但我无法更改消息的格式。它发送到 CloudWatch

Api Gateway 充当代理

2019-03-15 13:31:22.248 (REQ_ID) 方法完成,状态:200

2019-03-15 13:31:22.248 (REQ_ID) 成功完成执行

2019-03-15 13:31:22.248 (REQ_ID) 方法响应标头:{Cache-Control=max-age=0, private, must-revalidate, Content-Type=application/json; charset=utf-8, Date=Fri, 2019 年 3 月 15 日 13:31:22 GMT, ETag=W/"607046c7bacdeee5e27e99f48fa2e053", Server=nginx/1.12.1 + Phusion Passenger 4.0.60, Status=200 OK, Vary=Accept -编码,来源,X-Content-Type-Options=nosniff,X-Frame-Options=SAMEORIGIN,X-Powered-By=Phusion Passenger 4.0.60,X-Request-Id=88c8f3c2-0a25-4445-9010-30d4753b855a , X-Runtime=0.030736, X-XSS-Protection=1; 模式=块,连接=保持活动}

2019-03-15 13:31:22.248 (REQ_ID) 转换后的方法响应正文:{"success":1,"message":"Token is invalid"}

2019-03-15 13:31:22.248 (REQ_ID) 端点响应标头:{Cache-Control=max-age=0, private, must-revalidate, Content-Type=application/json; charset=utf-8, Date=Fri, 2019 年 3 月 15 日 13:31:22 GMT, ETag=W/"607046c7bacdeee5e27e99f48fa2e053", Server=nginx/1.12.1 + Phusion Passenger 4.0.60, Status=200 OK, Vary=Accept -编码,来源,X-Content-Type-Options=nosniff,X-Frame-Options=SAMEORIGIN,X-Powered-By=Phusion Passenger 4.0.60,X-Request-Id=88c8f3c2-0a25-4445-9010-30d4753b855a , X-Runtime=0.030736, X-XSS-Protection=1; 模式=块,传输编码=分块,连接=保持活动}

2019-03-15 13:31:22.248 (REQ_ID) 转换前的端点响应正文:{"success":1,"message":"Token is invalid"}

2019-03-15 13:31:22.248 (REQ_ID) 收到响应。集成延迟:43 毫秒

2019-03-15 13:31:22.205 (REQ_ID) 向https://proxy.domain.com/api/endpoint发送请求

2019-03-15 13:31:22.205 (REQ_ID) 转换后的端点请求正文:{"message":"hello world"}

2019-03-15 13:31:22.205 (REQ_ID) 端点请求标头:{x-amzn-apigateway-api-id=API, User-Agent=curl/7.54.0, X-Forwarded-Proto=https, X- Forwarded-For=195.24.159.254,content-type=application/json,X-Forwarded-Port=443,X-Amzn-Trace-Id=Root=1-5c8ba92a-7fb7fa94b9991bb8f1561d55,accept= / }

2019-03-15 13:31:22.205 (REQ_ID) 端点请求 URI: https ://proxy.domain.com/api/endpoint

2019-03-15 13:31:22.119 (REQ_ID) 转换前的方法请求正文:{"message":"hello world"}

2019-03-15 13:31:22.119 (9f76246a-4726-11e9-a18d-25bda2ff1f7b) 方法请求标头:{User-Agent=curl/7.54.0, X-Forwarded-Proto=https, X-Forwarded-For= 195.24.159.254,content-type=application/json,Host=api.execute-api.eu-west-1.amazonaws.com,X-Forwarded-Port=443,X-Amzn-Trace-Id=Root=1- 5c8ba92a-7fb7fa94b9991bb8f1561d55,接受= / }

2019-03-15 13:31:22.119 (REQ_ID) 方法请求查询字符串:{}

2019-03-15 13:31:22.119 (REQ_ID) 方法请求路径:{proxy=api/endpoint}

我只需要在 JSON 中发送这 4 列:request_header、request_body、response_header、response_body 到 ES。现在它为每个请求发送上面的所有日志。

0 投票
1 回答
987 浏览

c# - 在 IIS 下运行时无法连接到 Elasticsearch(访问密钥和秘密不被尊重)

我正在使用 ElasticClient C# 类连接到托管在 AWS 上的 Elasticsearch 实例。

为了设置访问密钥和机密,我在我的 Windows 计算机上存储了一个凭据文件:C:\Users\{username}\.aws\credential。它有一个“默认”条目,因此不需要手动设置配置文件名称。当我运行我的 ASP.NET Core Web 应用程序并将 Launch 设置为 Project 时,这工作正常。

在此处输入图像描述

但是,一旦我更改为 Launch: IIS ...

在此处输入图像描述

...然后 Elasticsearch 连接失败。每当我尝试执行查询时,它都会出错:

消息=无效的 NEST 响应构建于 POST 上的不成功的低级别调用:/{url1}/{url2}/_search?pretty=true&typed_keys=true

此 API 调用的审计跟踪:

  • 1 BadRequest:节点:https://{url1}.us-east-1.es.amazonaws.com/ 使用:00:00:00.0090414

    OriginalException:System.Net.Http.HttpRequestException:尝试对无法访问的网络进行套接字操作--->

System.Net.Sockets.SocketException:尝试对无法访问的网络进行套接字操作

IIS 网站运行的应用程序池设置为使用我的 Windows 帐户。显然,它在 IIS 下运行时忽略了 .aws 凭据。我还尝试使用 AWS Explorer Visual Studio 2017 扩展创建配置文件,包括“默认”和自定义命名的。

在此处输入图像描述

我尝试在我的 ASP.NET Core 项目中安装 AWSSDK.Extensions.NETCore.Setup nuget 包,并在 appsettings.json 中指定自定义命名配置文件,两者都像这样:

像这样:

两者都不起作用,我仍然得到相同的“尝试对无法访问的网络进行套接字操作”错误。我遵循了所有的 AWS 指南,感觉我做对了,但它在 IIS 下不起作用。任何帮助,将不胜感激。

0 投票
1 回答
1828 浏览

amazon-web-services - 通过 VPC 对等访问 AWS Elasticsearch VPC 终端节点

我有一个具有 VPC 访问权限的 Elasticsearch 域(即没有公共访问权限)。我想从另一个 VPC 中的实例访问终端节点。我已经在两个 VPC 之间创建了对等连接,但是由于无法将 ES 安全组附加到另​​一个 VPC 中的实例(显然,即使有对等连接,您也只能在同一个 VPC 中附加 SG),我可以'不访问端点。

ES 是否完全支持 VPC 对等互连,如果支持,那么设置它的正确方法是什么?

0 投票
1 回答
472 浏览

elasticsearch - 如何在 elasticserch 查询中获得 3 个随机搜索结果

我有我的弹性搜索查询,它返回发布日期范围之间的记录:

每次发送此查询时,我都需要显示 3 个随机结果

弹性搜索文档中提到我可以发送一个种子来获得随机结果:

遵循文档后,我将查询更新为:

但它不起作用(说查询格式错误),任何人都可以建议如何更正此查询以返回 3 个随机搜索结果。

0 投票
1 回答
168 浏览

elasticsearch - 即使在 AWS ElasticSearch 中超过父断路器限制后,断路器也不会触发

背景:我们的系统在早上有一个高峰点,当我们收到大量的搜索、读取和写入请求时,可能会持续长达 10 个小时。

用例:我想在高峰时间之前强制进行垃圾收集。为此,我正在更新父断路器的集群设置

indices.breaker.total.limit: "55%" 参考

问题:但即使在 JVM 从 53% 增长到 56% 之后,正如您在下面的节点统计信息中看到的那样,JVM 也没有被垃圾收集。

获取 /_nodes/stats/jvm

我不知道这是否是 AWS ElasticSearch 服务或核心 ES 结束时的问题。如果有任何其他方法可以强制进行垃圾收集,我可以试试。

0 投票
0 回答
36 浏览

performance - 有哪些方法可以提高 AWS Elasticsearch 服务的性能?

AWS Elasticsearch的性能提升一般有哪些方法?我怎样才能做到这一点?

当我提供的存储为10 GB时,有多少Data 实例Dedicated master 实例非常适合我的应用程序。

谁能向我解释如何提高搜索和弹性搜索的性能?

0 投票
1 回答
1798 浏览

elasticsearch - 如何正确删除 AWS ElasticSearch 索引以释放磁盘空间

我正在使用 AWS ElasticSearch,并从 AWS Kinesis Firehose 传输流向其发布数据。

在 Kinesis Firehose 设置中,我将 ES 索引的轮换周期指定为 1 个月。每个月 Firehose 都会为我创建新的索引,并附加月份时间戳。据我了解,旧索引仍会显示,不会被删除。

我的问题:

  1. 由于每个月都会创建不同名称的新索引,我是否需要每个月重新创建 Kibana 仪表板?

  2. 我是否需要每月手动删除旧索引以清理磁盘空间?

  3. 为了清理磁盘空间,只运行 CURL 命令删除旧索引就足够了吗?

0 投票
1 回答
157 浏览

amazon-web-services - 如何将 AWS Elasticsearch 迁移到 Azure Elasticsearch?

Microsoft 是否支持将 AWS Elasticsearch 迁移到 Azure Elasticsearch 的任何程序或文档?有谁知道这样做的过程?

0 投票
1 回答
4192 浏览

nginx - 在不绕过 AWS Cognito 的情况下反向代理到基于 VPC 的 AWS Elasticsearch 域

我提前道歉 - 我对 Nginx 非常陌生。

我有两个基于 VPC 的 AWS Elasticsearch 域,我们称之为 dev 和 prod。我希望这两个域都无法访问开放的 Internet,但在 VPC 之外的某些网络中可用。为此,我将它们设置为基于 VPC 的 Elasticsearch 域,并计划使用只能从我希望的网络访问的反向代理。我已经使用具有以下配置的 NGINX 反向代理设置了没有身份验证的开发集群:

这工作正常。

但是,对于 prod 域,我遇到了问题。我希望所有用户,即使是那些使用代理的用户,都必须使用 AWS Cognito 进行身份验证(所以我不只是想,例如,为代理的 IP 地址创建一个带有 IP 例外的访问策略,因为它绕过了 Cognito )。

我为我的“prod”Elasticsearch 实例使用了类似的 NGINX 配置,但没有运气。Cognito 登录页面在身份验证后重定向到基于 VPC 的 URL。我尝试手动将代理的 URL 添加到 Cognito 应用程序的回调 URL,但默认情况下它仍重定向到基于 VPC 的 URL。我还尝试手动更改 Cognito URL 中的重定向 URI 以引用我的代理,但我发现在身份验证后我再次被重定向到 Cognito 登录页面 - 可能是标题或其他内容没有通过?

我如何(或可以)让它在 Nginx 中运行,以便用户可以访问“prod”Elasticsearch 域,同时仍需要使用 AWS Cognito 进行身份验证?

谢谢!