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 应用,检查是否能正常发现和查询指定索引的日志数据;同时检查日志阈值规则是否正常运行。
相关推荐
代码匠心1 天前
从零开始学Flink:Flink SQL四大Join解析
大数据·flink·flink sql·大数据处理
武子康2 天前
大数据-242 离线数仓 - DataX 实战:MySQL 全量/增量导入 HDFS + Hive 分区(离线数仓 ODS
大数据·后端·apache hive
Elasticsearch2 天前
需要知道某个同义词是否实际匹配了你的 Elasticsearch 查询吗?
elasticsearch
SelectDB3 天前
易车 × Apache Doris:构建湖仓一体新架构,加速 AI 业务融合实践
大数据·agent·mcp
武子康3 天前
大数据-241 离线数仓 - 实战:电商核心交易数据模型与 MySQL 源表设计(订单/商品/品类/店铺/支付)
大数据·后端·mysql
IvanCodes3 天前
一、消息队列理论基础与Kafka架构价值解析
大数据·后端·kafka
武子康4 天前
大数据-240 离线数仓 - 广告业务 Hive ADS 实战:DataX 将 HDFS 分区表导出到 MySQL
大数据·后端·apache hive
洛森唛5 天前
ElasticSearch查询语句Query String详解:从入门到精通
后端·elasticsearch
字节跳动数据平台5 天前
5000 字技术向拆解 | 火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
武子康5 天前
大数据-239 离线数仓 - 广告业务实战:Flume 导入日志到 HDFS,并完成 Hive ODS/DWD 分层加载
大数据·后端·apache hive