易捷问数(NewmindExAI)平台解决 ES 升级后 AI 助手与 Attack Discovery 不正常问题

作者:来自 新智锦绣 Jin Haifeng

前言

上期我们介绍将 Elasticsearch 集群从 8.17.2 升级到了最新的 9.2.4 版本。虽然官方文档明确指出不能直接跨大版本升级,但实际操作中仍然遇到了一些意想不到的问题。升级后所有日志索引都可以正常工作,但升级后 AI 助手和 Attack Discovery 功能失效。虽然成功可以 AI 大模型连接正常,但 AI 助手及知识库和 attack discovery 都不能正常工作。

查询了 Elastic 官网/support 知识库,也没找到直接的类似问题的解决方案。最后使用新智锦绣科技(北京)有限公司开发的 NewmindExAI 易捷问数平台,成功找到问题原因及解决方法。

如果你也在考虑升级 Elasticsearch 到 9.x 版本,或者遇到了类似的 AI 功能异常问题,希望这篇文章能为你提供一些参考和帮助。


一、NewmindExAI 易捷问数平台

易捷问数平台(NewmindExAI)是一款开箱即用的企业级一体化智能数据分析平台,基于 Apple Mac Studio 硬件,以 Elastic 为数据底座,同时支持集成第三方多种数据源,集成本地 LLM、NewRAG 智能知识库、NewFlow 智能中枢工作流、NewChat 智能聊天为一体,实现 LLM 驱动的认知一体化解决方案。

二、意外出现:AI 助手功能异常

2.1 问题发现

ES 9.2.4升级完成后,当尝试使用 Security → Attack Discovery 功能时,遇到了以下错误:

go 复制代码
`Attack discovery data client not initialized`AI写代码

当然首先到 chatgpt 去找答案,经过一番问答交互,无果

由于 NewChat(NewmindExAI)的智能聊天工具是直接通过 mcp 连接到 ES 环境中的,它是对当前集群环境可以直接感知的。下面是和它交互后给出的答复:

经过上面的错误信息给 NewChat 分析和交互,了解到这个问题是由于版本升级后索引不兼容造成的:

2.2 问题分析

NewChat 从给出的日志信息找到问题:

Mapper for [semantic_text] conflicts with existing mapper:``Cannot update parameter [inference_id] from [elastic-security-ai-assistant-elser2] to [.elser-2-elasticsearch]

这个错误说明:

  • 旧版本配置:8.x 版本使用的是自定义 ELSER 模型 elastic-security-ai-assistant-elser2
  • 新版本配置:9.x 版本尝试使用标准 ELSER 模型 .elser-2-elasticsearch
  • Elasticsearch 限制:不允许直接修改已存在字段的 inference_id 参数

2.3 受影响的索引

同时也找到以下索引存在映射冲突:

markdown 复制代码
`

1.  ​​​​​​​​​​​​​​.kibana-elastic-ai-assistant-conversations-*
2.  .kibana-elastic-ai-assistant-knowledge-base-*
3.  .kibana-observability-ai-assistant-conversations-*
4.  .kibana-observability-ai-assistant-kb-*

`AI写代码

三、解决方案:删除并重建 AI 助手索引

3.1 解决思路

经过分析,我们确定了解决方案:

  • 删除冲突的索引:移除包含旧映射的 AI 助手索引
  • 重启 Kibana:让 Kibana 使用新的映射重新创建索引
  • 重新配置 AI 连接器:确保使用正确的 AI 模型配置

3.2 详细操作步骤

步骤 1:查找冲突的索引

首先,我们需要确认哪些索引存在问题:​​​​​​​

bash 复制代码
`

1.  #通过 Kibana Dev Tools 执行
2.  GET /_cat/indices/.kibana-*ai-assistant*?v

`AI写代码

步骤 2:通过 Kibana Dev Tools 删除索引

打开 Kibana → Dev Tools

在 Console 中执行以下命令:

sql 复制代码
 `1.   //由于这些索引是由data_stream关联,无法直接删除索引,我们可以删除数据流来解决

3.  DELETE /_data_stream/logs-elastic_agent.fleet_server-default
4.  DELETE /_data_stream/metrics-fleet_server.agent_status-default
5.  DELETE /_data_stream/metrics-elastic_agent.fleet_server-default
6.  DELETE /_data_stream/logs-elastic_agent.fleet_server-default`AI写代码

点击 ▶️ 执行按钮

执行结果:

markdown 复制代码
`

1.  {

3.    "acknowledged":true
4.  }

`AI写代码

✅索引删除成功!

步骤 3:重启 Kibana 服务

bash 复制代码
`

1.  # 在 elastic-03 节点执行
2.  sudo systemctl restart kibana
3.  # 查看启动日志
4.  sudo tail -f /var/log/kibana/kibana.log

`AI写代码

观察日志,应该看到类似以下内容:

bash 复制代码
 `2.  {
3.    "message":"Installing index template .kibana-elastic-ai-assistant-index-template-conversations",
4.    "log": {
5.      "level":"INFO",
6.      "logger":"plugins.elasticAssistant.service"
7.    }
8.  }

10.  {
11.    "message":"Installing index template .kibana-elastic-ai-assistant-index-template-knowledge-base",
12.    "log": {
13.      "level":"INFO",
14.      "logger":"plugins.elasticAssistant.service"
15.    }
16.  }`AI写代码![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

这表明 Kibana 正在使用新的映射重新创建索引。

步骤 4:配置 AI 连接器

重启完成后,需要配置 AI 连接器:

  1. 进入Stack Management → Connectors

  2. 点击Create connector

  3. 选择你的 AI 提供商(如 OpenAI、Azure OpenAI、阿里云通义千问等)

  4. 填写配置信息

    markdown 复制代码
    `
    
    1.  Name:Attack Discovery AI
    2.  Connector type:OpenAI (或其他)
    3.  URL:https://api.openai.com/v1
    4.  API Key:sk-xxxxx...
    5.  Model:gpt-4
    
    `AI写代码
  5. 点击 Save

步骤 5:在 Security 中配置 AI 助手

  1. 进入Security → Get Started

  2. 点击右上角的齿轮图标 →Settings

  3. 找到AI Assistant部分

  4. 选择刚才创建的连接器

  5. 保存设置

3.3 验证修复结果

(1)检查索引状态

arduino 复制代码
`

1.  # 通过 Dev Tools 执行
2.  GET /_cat/indices/.kibana-*ai-assistant*?v
3.  # 应该看到新创建的索引:
4.  health status index                                                                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size dataset.size
5.  green  open   .ds-.kibana-elastic-ai-assistant-prompts-default-2026.02.08-000001              NNLDhE4HQC26EDvGL1bQzw   1   1          0            0       498b           249b         249b
6.  green  open   .kibana-observability-ai-assistant-conversations-000001                         ynEBvh06QFWCjF7UKQVZyA   1   1          0            0       498b           249b         249b
7.  green  open   .ds-.kibana-elastic-ai-assistant-knowledge-base-default-2026.02.08-000001       MUH-wCUiQsCFa_02zYjz2g   1   1          0            0       498b           249b         249b
8.  green  open   .kibana-observability-ai-assistant-kb-000003                                    HYawJO5QRlqkZVqlYe7d5g   1   1          0            0       498b           249b         249b
9.  green  open   .kibana-elastic-ai-assistant-checkpoints-default                                bgD7_49dTzS6GGD_0RzZhg   1   1          0            0       498b           249b         249b
10.  green  open   .ds-.kibana-elastic-ai-assistant-anonymization-fields-default-2026.02.08-000001 gTxmh6GRTZGnc3PXKqDtEw   1   1        114            0     28.4kb         14.2kb       14.2kb
11.  green  open   .ds-.kibana-elastic-ai-assistant-alert-summary-default-2026.02.08-000001        nvWnxOVuS_WWbb8C0kSdXQ   1   1          0            0       498b           249b         249b
12.  green  open   .ds-.kibana-elastic-ai-assistant-conversations-default-2026.02.08-000001        IAReR9kcTy66EFH2CXy79w   1   1          0            0       498b           249b         249b
13.  green  open   .kibana-elastic-ai-assistant-checkpoint-writes-default

`AI写代码![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

(2)检查映射配置

csharp 复制代码
 `2.  GET /.kibana-elastic-ai-assistant-knowledge-base-default/_mapping`AI写代码

确认 inference_id 使用的是新的标准模型:

bash 复制代码
`

1.  {
2.    "mappings": {
3.      "properties": {
4.        "semantic_text": {
5.          "type": "semantic_text",
6.          "inference_id": ".elser-2-elasticsearch"
7.        }
8.      }
9.    }
10.  }

`AI写代码![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)

✅映射配置正确!

(3)测试 Attack Discovery 功能

  1. 进入Security → Attack Discovery

  2. 点击Generate按钮

  3. 等待分析完成(可能需要几分钟)

最后一切正常,你应该能看到 AI 分析的安全威胁发现结果。


七、总结

由于 NewCha t是直接和 ES 集群通过 MCP 连接在一起的,所以在 NewChat 里借助大模型来问数,就像 RAG 一样它 get 到的信息是当前集群的真实状态,从而保证借助大模型进行真实状态分析会给出更实际的答案。

而通过常规的 ChatGPT 类的聊天工具,我们只能把日志信息和特征码粘贴过去,由于它触摸不到真实的集群环境,所以只能猜测可能故障原因,无法给出更实际的答案。

写在最后

Elasticsearch 的版本升级是一项需要谨慎对待的工作,特别是跨大版本升级。对于在低版AI助手相关功能正常(企业版),升级后AI助手由于模型变更及兼容性问无法正常工作,所以集群本身的问题无法通过AI助手来获得得答案和进行诊断。

而 NewmindExAI 通过 MCP 连接到 ES 集群,充分补充了 ES 企业版才有的 AI 功能,从而极大地赋能 ES AI 能力。

Elasticsearch 官方升级指南

Kibana AI Assistant 文档

Elasticsearch Breaking Changes in 9.0

如果觉得本文对你有帮助,欢迎点赞、转发、收藏!

关于公司

感谢您关注新智锦绣科技(北京)有限公司!作为 Elastic 的 Elite 合作伙伴及 EnterpriseDB 在国内的唯一代理和服务合作伙伴,我们始终致力于技术创新和优质服务,帮助企业客户实现数据平台的高效构建与智能化管理。无论您是关注 Elastic 生态系统,还是需要 EnterpriseDB 的支持,我们都将为您提供专业的技术支持和量身定制的解决方案。

相关推荐
春日见6 小时前
拉取与合并:如何让个人分支既包含你昨天的修改,也包含 develop 最新更新
大数据·人工智能·深度学习·elasticsearch·搜索引擎
Elastic 中国社区官方博客8 小时前
如何防御你的 RAG 系统免受上下文投毒攻击
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
Elastic 中国社区官方博客11 小时前
Elasticsearch:交易搜索 - AI Agent builder
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
摇滚侠12 小时前
IDEA invalidate caches 中每个勾选项是什么
java·elasticsearch·intellij-idea
历程里程碑12 小时前
矩阵----=矩阵置零
大数据·线性代数·算法·elasticsearch·搜索引擎·矩阵·散列表
SelectDB13 小时前
日志成本降低 83%:云上 Elasticsearch 和 SelectDB 的基准测试及成本分析
数据库·elasticsearch·apache
Ghost Face...14 小时前
嵌入式Linux开发Git实战:从认证到Gerrit推送
linux·git·elasticsearch
历程里程碑17 小时前
Linux 24 进程通信及管道(附上源码实现)
大数据·linux·运维·服务器·算法·elasticsearch·搜索引擎
fireworks9919 小时前
ELK技术栈监控SQL调用
elasticsearch·kibana