问题标签 [elasticsearch-opendistro]

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 投票
1 回答
223 浏览

elasticsearch - 弹性 - 选择前 5 个匹配项后过滤

我在 Kibana 中使用警报功能,我想检查一个字段的最后 5 个连续值是否超过阈值 x,但如果我在弹性查询中使用过滤器,它将在前 N 个聚合之前应用。

有没有一种方法可以在使用其他选择器或方法之后应用过滤器或检查最后一个连续值是否超过阈值?我不想在触发条件中轻松检查这一点,因为这将返回 ctx 中的所有文档,而不仅仅是那些超过我想在警报消息中显示的阈值的文档。

我已经坚持了一段时间,我只看到博客文章说在前 N 上子聚合是不可能的,所以任何帮助或解决方法将不胜感激。

这是我的查询:

0 投票
1 回答
485 浏览

elasticsearch - 弹性 - 检查给定时间范围内的所有值是否大于阈值 X

我想使用弹性查询在 Kibana 中创建警报。我正在使用 opendistro 警报功能。我想检查最后 10 分钟内 cpu.pct 字段的所有值是否大于 50,如果是则发出警报。

我有以下计算平均值的查询,但这是不正确的。

负例:值 (100, 100, 100, 100, 100, 100, 0, 0, 0, 0) | 发出警报:否(平均:60)

正例:值 (60, 60, 60, 60, 60, 60, 60, 60, 60, 60) | 发出警报:是(平均:60)

如何检查所有值?

0 投票
1 回答
268 浏览

elasticsearch - OpenDistro/Elasticsearch 集群权限 cluster:monitor/main 的目的是什么?

在OpenDistro的Permissions页面Permissions中,提到了集群权限cluster:monitor/main。但是,我一直无法找到有关此权限实际授予访问权限的任何文档或信息。

我能找到的最少信息是它可以访问集群端点的根端点,并且端点可以显示集群版本和其他一般统计信息等内容。至少根据以下帖子:讨论 Elasticsearch

我对该特定权限感兴趣的原因是,我在使用Serilog使用 C# 登录到集群中的多个节点时遇到了问题。使用 Serilog 记录的应用程序收到未经授权的异常,Elasticsearch 集群显示消息:“[cluster:monitor/main] 没有权限”。授予与 Serilog 一起使用的内部 Elasticsearch 用户,cluster:monitor/main权限解决了这个问题。但是我不知道该权限的用途,或者为什么进行日志记录的用户实际上甚至需要该权限才能开始。

所以问题归结为:

权限 cluster:monitor/main 有什么作用,为什么在使用带有 Serilog 的多节点集群时用户进行日志记录需要它?

0 投票
1 回答
356 浏览

macos - 无法使用 metricbeat 连接到 opendistro elasticsearch

不知何故,我可以设法在我的本地 Mac 上运行 opendistro 集群,使用 docker 和 kibana 仪表板和 elasticsearch API 按预期工作。但是从 metricbeat 与 elasticsearch 通信时出现以下错误。 “连接回退失败(elasticsearch(https://localhost:9200)):获取 https://localhost:9200:x509:证书由未知机构签名”

有什么方法可以从metricbeat调用带有不安全标志的elasticsearch?

0 投票
1 回答
665 浏览

ssl - 通过 https 访问 kibana 时响应为空

我一直在按照本指南为 AWS EKS 上的弹性搜索设置 opendistro。目前,我的 elasticsearch pod 在从我们的 VPC 查询时工作。Kibana 有一个接口负载均衡器,当我有时可以正常工作,server.ssl.enabled: false但我想要 ssl。每当我尝试通过浏览器或 curl 访问 kibana 时,都会收到 err_empty_response 错误。此外,每次在 kibana pod 的 kubectl 日志中都会生成此错误。

我尝试过的事情产生了相同的结果:

  • 为 kibana 重新生成证书。
  • 使用了应与域匹配的 Amazon 颁发的 ACM 证书
  • 将 kibana 服务器证书上传到 AWS ACM,用于面向 Internet 的负载均衡器。它与颁发给 kibana 服务器server.ssl.certificate密钥的证书相同
  • 查看 ssl3_record.c 但我的任何 Pod/节点上都不存在该文件

.除了我的证书有问题之外,似乎找不到有关此错误的任何信息。寻找有关使用这种设置调试 SSL 证书的提示。

0 投票
1 回答
169 浏览

java - 了解 Gradle 项目中的流程

我纯粹是 Maven 背景,到目前为止我还没有使用过 Gradle 构建。

完全的 :

  1. 我能够使用https://github.com/opendistro-for-elasticsearch/anomaly-detection成功构建这个项目./gradlew build

  2. 根据项目中的文档,提到该./gradlew :run命令将启动安装了两个插件的单节点弹性搜索集群。我试过了,我可以像下面这样安装两个插件

    http://127.0.0.1:9200/_cat/plugins?v&s=component&h=name,component,version,description

名称 组件 版本 描述 integTest-0 opendistro-anomaly-detection 1.10.0.0 Amazon opendistro elasticsearch 异常检测器插件 integTest-0 opendistro-job-scheduler 1.10.0.0-SNAPSHOT Open Distro for Elasticsearch 作业调度器插件

问题

现在我试图理解这个开源代码,

  1. build.gradle(https://github.com/opendistro-for-elasticsearch/anomaly-detection)中这四个标签的用途是什么:buildscript、plugins、repositories、ext

  2. 当我查看时build.gradle,似乎需要构建以下包,

    allprojects { group = 'com.amazon.opendistroforelasticsearch'

    }

但是这段代码的主要方法/触发点在哪里(https://github.com/opendistro-for-elasticsearch/anomaly-detection)?有人可以看看这个 github 项目,让我知道代码的起点,以便我调试并获取剩余的上下文!!

在此处输入图像描述

任何帮助表示赞赏!

谢谢,
哈利

0 投票
0 回答
675 浏览

elasticsearch - FAIL: 'config' 配置失败,因为 UnavailableShardsException[[.opendistro_security][0] 主分片未激活

我试图通过我自己的证书配置 opendistro 弹性搜索。

当我卷曲到 esip:9200 时,响应是

Open Distro Security 未初始化。

后来当我尝试运行 security admin.sh 来初始化安全性时,错误是这样的

0 投票
1 回答
329 浏览

elasticsearch - 弹性搜索的开放发行版

我们可以通过 java 从 open distro elasticsearch 中获取超过 10000 条记录吗?

我尝试使用普通的基本 sql 查询:

select id, name from employee order by id desc limit 10, 10;

如果我尝试使用上述查询获取数据,它可以正常工作,但它的范围应该低于 10k。如果我更改限制(从大小),即限制 10000、10,那么它不会返回任何值。

0 投票
0 回答
127 浏览

elasticsearch - Opendistro KNN 分数在同一查询向量上给出不同的分数

我在 opendistro elasticsearch 版本 7.8.0 中使用“cosinesimil”作为 knn.space_type。我索引了 3 个属性类型为 knn_vector 的文档(除了 knn_vector 之外,唯一提供的其他属性是值为 1 的状态项)。这些文档的 3 个向量是 (2,2)、(2,1) 和 (2,3)。

令人惊讶的是,当我使用查询搜索向量 (1,1) [带有状态 = 1 的后过滤器] 时:

每次执行查询时,我都会得到不同的召回向量。有时,我得到带有向量 (2,1) 和 _score 0.5 的文档,而其他时候我得到带有 _score 1.0 的文档 (2,2)。

问题:

  1. 为什么在执行相同的查询时会得到不同的召回向量?
  2. 为什么来自 elasticsearch 的带有向量 (2,1) 的文档的 _score 会变为 0.5。只有 cosinesimil 应该会影响分数,并且 (2,1) 和 (1,1) 之间的 cosinesimil 大约是 0.95?
  3. 当使用具有 knn 参数 k = 3 和 size = 3 的相同 ES 查询并多次执行它时……有时我得到 _score 0.5 的 doc (2,1) 有时我得到分数 0.95(实际 cosinesimil )。
0 投票
0 回答
177 浏览

elasticsearch - Elasticsearch Opendistro 安全性——将用户添加到 readall 角色

我正在尝试readall使用 elasticsearch 开放发行版安全插件将用户添加到 Kibana 中的角色。对 /roles/readall 的 get 请求的内容如下,我正在使用的 curl 语法和相关的错误也是如此。这里的目标是允许所有用户读取所有索引,而不管租户如何。

请求(删除带有证书等的基本 curl 内容):

--request PATCH -H "Content-Type: application/json" -d '[{"op": "add", "path": "/users", "value": ["*"]}]' "https://hostname/elasticsearch/_opendistro/_security/api/rolesmapping/readall"

回复:

{"status":"NOT_FOUND","message":"rolesmapping readall not found."}

readall 角色的 get 请求内容: