Elasticsearch 9.3.0 日志数据源配置

一、部署模式说明

ServerlessStack 是 Elasticsearch 9.3.0 的两种核心部署模式,需先明确:

  • Serverless:Elastic 提供的无服务器部署模式,无需管理基础设施,按需付费,自动扩缩容。

  • Stack:自托管部署模式(即传统的 Elastic Stack),需自行管理 Elasticsearch、Kibana 等组件的部署、运维和扩展。

二、日志数据源概述

核心设置:observability:logSources

该 Kibana 高级设置用于定义部署或项目中存储和查询日志数据的索引模式

  • 作用:Kibana 的"日志"应用、日志阈值规则等功能,均基于此设置指定的索引模式来发现、查询和分析日志数据。

  • 格式:通常为索引模式字符串(如 logs-*my-app-logs-*),多个模式用逗号分隔。

三、方法一:通过 Kibana 高级设置配置

详细步骤(ES 9.3.0 适配)

  1. 打开高级设置页面

    • 方式一:通过左侧导航菜单进入 Management > Kibana > Advanced Settings

    • 方式二:使用 Kibana 顶部的全局搜索栏,输入"Advanced Settings"并直接打开。

  2. 配置日志数据源

    • 在高级设置页面中,搜索 observability:logSources

    • 点击"Edit",输入自定义的索引模式(如 logs-*,my-service-logs-*)。

    • 点击"Save changes"保存配置。

注意事项(展开分析)

  1. 避免添加非日志索引

    • 原因:Kibana 的日志功能假设索引包含标准日志字段(如 @timestampmessagelog.level 等)。若添加不含这些字段的索引,会导致:

      • 日志应用无法正常解析和展示数据;

      • 查询性能下降(因需扫描无关索引);

      • 可视化、告警等功能异常。

  2. 影响日志阈值规则

    • 原因:日志阈值规则(Log Threshold Rules)是 Kibana 可观测性的核心功能,用于基于日志数据触发告警。规则的查询范围完全由 observability:logSources 决定,因此修改此设置会直接改变规则的监控数据源。

四、方法二:通过 Saved Objects API 配置

重要限制

  1. 会覆盖所有高级设置

    • 原因:observability:logSources 是"Advanced Settings"Saved Object 的一部分,而非独立对象。导入该 Saved Object 时,会完全替换目标集群的所有 Kibana 高级设置 (不仅是 observability:logSources)。

    • 风险:若目标集群已修改其他高级设置(如日期格式、默认索引模式等),导入后会丢失这些修改。

    • 建议:操作前先导出目标集群的"Advanced Settings"Saved Object 作为备份。

  2. 版本兼容性限制

    • 原文表述:"向后兼容,但不向前兼容"。

    • 详细解释:

      • 向后兼容:新版本(如 9.3.0)可导入旧版本(如 9.0、8.x)的"Advanced Settings"Saved Object。

      • 不向前兼容 :旧版本(如 8.x)无法导入新版本(如 9.3.0)的"Advanced Settings"Saved Object(因新版本可能包含旧版本不支持的设置项)。

    • 适配 ES 9.3.0:仅可从 8.x 或 9.x 早期版本导入到 9.3.0,不可从 9.3.0 导入到更低版本。

详细步骤(含 ES 9.3.0 API 示例)

前置条件
  • 拥有 Kibana 的 manage_saved_objects 权限。

  • 熟悉 Kibana Saved Objects API(ES 9.3.0 中 API 端点无重大变化)。

操作步骤
  1. 在源集群配置日志数据源

    • 按"方法一"在源集群的 Kibana 中配置好 observability:logSources
  2. 进入源集群的 Saved Objects 管理页面

    • 导航至 Management > Kibana > Saved Objects,或通过全局搜索打开。
  3. 导出"Advanced Settings"Saved Object

    • 方式一:通过 UI 导出:

      • 在 Saved Objects 页面,搜索"Advanced Settings"。

      • 选中该对象,点击"Export",选择"Include related objects"(可选,通常无需),导出为 NDJSON 文件。

    • 方式二:通过 API 导出(ES 9.3.0 示例):

      Bash 复制代码
      curl -X POST "http://<kibana-host>:<port>/api/saved_objects/_export" \
      -H "kbn-xsrf: true" \
      -H "Content-Type: application/json" \
      -d '{
        "type": ["config"],
        "includeReferencesDeep": false
      }' \
      -o advanced_settings.ndjson
      • 说明:config 是"Advanced Settings"Saved Object 的类型;includeReferencesDeep 设为 false 因无需关联其他对象。
  4. 导入到目标集群

    • 方式一:通过 UI 导入:

      • 在目标集群的 Saved Objects 页面,点击"Import",选择导出的 NDJSON 文件,勾选"Automatically overwrite conflicts"(需谨慎,会覆盖目标集群的所有高级设置),点击"Import"。
    • 方式二:通过 API 导入(ES 9.3.0 示例):

      Bash 复制代码
      curl -X POST "http://<target-kibana-host>:<port>/api/saved_objects/_import" \
      -H "kbn-xsrf: true" \
      -F "file=@advanced_settings.ndjson" \
      -F "overwrite=true"
      • 说明:overwrite=true 表示覆盖目标集群的"Advanced Settings"Saved Object,必须添加此参数(否则会因冲突失败)。

五、ES 9.3.0 优化建议

  1. 优先使用 Kibana UI 配置

    • 除非需批量部署到多个集群,否则建议通过 UI 配置 observability:logSources,避免误覆盖其他高级设置。
  2. 使用标准日志索引模式

    • ES 9.3.0 推荐使用 Elastic Common Schema (ECS) 规范的日志索引,索引模式建议为 logs-*-*(如 logs-myapp-production-*),可最大化兼容 Kibana 日志功能。
  3. 定期备份高级设置

    • 无论是否使用 API 配置,建议定期导出"Advanced Settings"Saved Object 作为备份,尤其在生产环境中。
  4. 验证配置生效

    • 配置完成后,进入 Kibana 的 Logs 应用,检查是否能正常发现和查询指定索引的日志数据;同时检查日志阈值规则是否正常运行。
相关推荐
之歆2 小时前
Hadoop MapReduce 详解
大数据·hadoop·mapreduce
W133309089072 小时前
2026 大专大数据与会计专业考证书门槛低的有哪些?
大数据
周杰伦fans2 小时前
Android Studio Git 管理最佳实践
git·elasticsearch·android studio
geneculture2 小时前
智慧系统工程实践:从人机互助至人机协同
大数据·人工智能·机器学习·知识图谱·融智学的重要应用·哲学与科学统一性·融智时代(杂志)
是做服装的同学3 小时前
服装企业系统ERP是什么?其主要功能和优势有哪些?
大数据·经验分享·其他
AI周红伟3 小时前
周红伟:企业大模型微调和部署, DeepSeek-OCR v2技术原理和架构,部署案例实操。RAG+Agent智能体构建
大数据·人工智能·大模型·ocr·智能体·seedance
零售ERP菜鸟3 小时前
数据驱动:从经验主义的“后视镜”到科学决策的“导航仪”
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯
海兰3 小时前
elasticsearch学习之基本概念-向量数据库
数据库·学习·elasticsearch