问题标签 [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.
kibana - 缺少警报目的地的“电子邮件”选项(Opendistro Elasticsearch/Kibana)
大家好,祝大家好运,
我正在 Kibana Opendistro 中配置警报,但在警报 > 目的地 > 创建的菜单中找不到“电子邮件”选项。我可以看到 Amazon、Slack 和 Custom webhook 的选项。假设“电子邮件”选项必须存在,文档中是如何说的:
https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#email-as-a-destination
我正在使用 7.8.0 并从 tarball 运行。
在 Opendistro 论坛中,我找到了这个主题,但我不明白如何解决它。 https://discuss.opendistrocommunity.dev/t/e-mail-option-in-dropdown-missing/3909
感谢您的关注
elasticsearch - 如何防止分片从热节点迁移到热节点或冷节点?
我有什么:
- Elasticsearch (7.7.0) 集群(amazon/opendistro-for-elasticsearch:1.8.0 Docker 镜像)
- 一个主节点
- 一个协调节点
- 两个数据节点
node.attr.data=hot
- 一个数据节点
node.attr.data=warm
我想要什么:防止分片分配和从热数据节点重新定位到热数据节点(以及未来的冷数据节点)。
我尝试了什么:
我已经"index.routing.allocation.require.data": "hot"
为所有索引模板添加了索引,因此新创建的索引不会分配给除了热数据节点之外的任何节点。这工作正常。
无论如何,我不能限制分片从热节点重定位到热节点。目前我正在使用"cluster.routing.allocation.exclude._ip" : "warm data node ip"
以防止从热数据节点重定位到热数据节点。但是我可以将ILM与此过滤器一起使用吗?
我也试过
然后取下"cluster.routing.allocation.exclude._ip"
过滤器。无论如何,分片都从热数据节点重新定位到热数据节点。我错过了什么?
elasticsearch - 使用 Open Distro 在 Elasticsearch 中禁用状态管理历史记录
我在 AWS 上有 ElasticSearch,它使用 Open Distro 而不是 Elastics ilm。
当您对索引应用状态管理时,会导致创建大量的审计索引。我想完全禁用它。
https://opendistro.github.io/for-elasticsearch-docs/docs/ism/settings/
显然它刚刚完成设置opendistro.index_state_management.history.enabled
,false
但如果我将它应用到_cluster/settings
它似乎不起作用。
结果是:
该设置在索引模板上也无效,因此我无法在此处设置。
如何禁用此审核历史记录?
kibana - 如何在操作消息模板中将查询结果格式化为 json
我正在使用 Opendistro 创建警报并调用自定义 webhook 来发送警报。我希望 Opendistro 在消息中发送查询结果。唯一的问题是结果的格式不是 json 而是接近的。
例如,如果消息模板(Mustache)如下
我的 webhook 可能会收到类似这样的信息
这是查询结果,但没有格式化为json。我想知道是否有办法在 mustache 模板中将复杂变量输出为 json,或者是否有办法解析上述格式。或者也许在上下文中还有另一个变量已经被字符串化了?
我在 Opendistro 论坛上发现了另一个帖子,它暴露了同样的问题。
elasticsearch - 在 Elasticsearch 中获取缺失值
我正在寻找一个查询,它将返回给定值列表中文档中缺少的值。例如,文档中有一个国家字段,其值为 USA、Dubai、Singapore、Japan。现在我想告诉弹性搜索,我正在给你国家列表(美国、迪拜、俄罗斯),你给我的输出告诉我俄罗斯不属于任何文件。这可能吗?
elasticsearch - 我们可以将我们的数据库迁移到弹性搜索吗?
我们有一个巨大的 PostgreSQL 数据库,但它的处理速度非常慢,我们已经用 PostgreSQL 建立了一个非常好的索引,但是从 Postgres 获取我们的数据需要一段时间,我们计划将我们的数据库迁移到 Elastic Search,只是用于选择查询。我们可以将功能齐全的数据库迁移到 Elastic Search 吗?
elasticsearch - Open Distro for Elasticsearch on-prem Kubernetes 问题
我正在尝试在本地 kubernetes 集群上为 elasticsearch 集群设置一个开放发行版。我正在使用带有大多数默认值的https://github.com/opendistro-for-elasticsearch/opendistro-build/tree/master/helm 。
values.yaml 中唯一改变的是 nodeSelector 和 storageClass 部分。
如果我尝试取消注释 config 下的任何项目,所有 pod 都会进入崩溃循环:
豆荚:
服务:
opendistro-es-data-0 pod 中的错误:
客户端 pod 抛出相同的“无法解析主机 [opendistro-es-discovery]”错误。
opendistro-es-master-0 中的 elasticsearch.yml:
当我在主 pod 内运行“curl -XGET https://localhost:9200 -u admin:admin --insecure”时,我得到响应“Open Distro Security 未初始化”。
当我在主 pod -cacert ../../../config/root-ca.pem -cert 内运行“./plugins/opendistro_security/tools/securityadmin.sh -cd ../securityconfig/ -icl -nhnv ../../../config/kirk.pem -key ../../../config/kirk-key.pem”它只是超时。
在我看来,节点无法看到对方,但我不知道如何修复它。正如我之前提到的,使用 values.yaml 中的配置部分会导致所有 pod 中断。如果你碰巧知道如何解决这个问题和/或这个问题,那就太棒了。如果需要任何其他信息,请告诉我。提前致谢!
elasticsearch - ElasticSearch:Opendistro SQL:由于违规符号而无法解析查询 [.11]
我有一个 ElasticSearch 索引,其名称为.
(示例:) my_index-2020.11.06-001
。当我使用 SQL 获取count
所有文档时,出现以下错误
我还尝试在索引名称中使用反引号(`)和单引号('),这也无济于事
有没有其他方法可以解决这个问题?
elasticsearch - Opendistro for Elasticsearch - ISM 未触发作业
我正在尝试在 AWS Elasticsearch Service v7.8 上将 ISM 与 opendistro 一起使用。我正在尝试设置一个基本的翻转/删除策略,但该策略似乎没有触发。我假设我做错了什么,但我似乎无法追踪它......我正在使用每小时翻转一次并在 6 小时后删除它来测试它......
这是我恰当地命名为“测试”的 ISM 政策:
我创建了一个模板来维护索引创建等。这是模板。请注意,我添加了翻转别名“atest”,但 policy_id 是“test”。我没有将索引添加到此模板中的任何别名:
然后我使用模板中的索引模式创建一个索引,将它添加到我在上面定义的翻转别名中:
然后我可以在 opendistro-ism-config 索引中看到该文档:
在某些时候,我看到托管索引信息从“初始化”变为
在这一点上,什么都没有发生。kibana 的 ISM 控制台中的“atest-000001”行显示“状态”为“活动”,“操作”为“-”,“作业状态”为“正在运行”。它会保持这种状态好几天......我也尝试过:
仍然没有触发。我究竟做错了什么?
apache - keycloak、Apache、mod_auth_openidc、elasticsearch opendistro
我正在尝试设置单点登录 (SSO) 以访问 apache 2.4 上的私有目录,并为 keycloak 登录用户分配弹性搜索 (opendistro) 中的角色。在 keycloak 中为用户分配角色没有真正的问题(并且也成功连接到 openldap 服务器)。如果我将 Bearer 令牌发送到 ES,它将角色链接到后端角色。一切都迎接。
问题是elasticsearch是无状态的,它似乎没有读取从keycloak和mod_auth_openidc获得的cookie(无法正确设置config.xml)。所以,我无法让 ES 使用 opendid 连接会话。
所以,我决定为 ES 选择 Bearer Authentication,我需要在对 ES 的每个 http 请求中添加 Bearer http 标头。
我通过添加以下内容从 mod_auth_openidc 获得 Bearer 令牌:
标头集授权“承载 %{OIDC_access_token}e” env=OIDC_access_token
到我在 apache conf 中受保护的位置(启用的标头模块)。但是当我尝试将该令牌与 curl (for testing) 一起使用时,它不会工作
我得到 401 未经授权。弹性搜索日志:
编辑:我将 keycloak 中访问令牌的算法更改为 HS256,现在我得到了
这个 shell 脚本有效:
opendistro 安全插件配置:
任何想法如何设置弹性搜索来识别该令牌?