查询日志
在日常运维中,当OpenSearch集群出现响应缓慢、查询报错或状态变黄时,运维人员需要第一时间获取现场信息。CSS服务提供的日志查询功能,将服务器底层日志聚合到控制台,支持按节点和级别秒级检索。通过直观查看运行日志、慢查询日志及废弃日志,您可以迅速锁定问题根因,并能根据调试需求动态调整日志级别、开启Trace日志,确保在不重启集群的情况下获取最详尽的日志信息。
查询近期日志
查看集群节点最近产生且未归档的原始日志。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > OpenSearch”。
- 在集群列表,单击目标集群名称,进入集群详情页。
- 选择“日志管理 > 日志查询”,进入日志查询页面。
通过选择日志类型、节点、日志级别或关键字查询日志,各类日志的详细说明请参见日志类型介绍。
日志文件达到128MB或每日零点(00:00 UTC),系统会自动将日志打包为压缩包并归档。日志查询界面仅展示未归档的日志内容。已归档的日志需通过日志备份功能获取,操作指导请参见备份日志至OBS。
动态调整日志级别
OpenSearch集群使用Log4j2作为日志组件,支持多种日志级别(ERROR、WARN、INFO、DEBUG、TRACE),默认为INFO级别。为便于问题定位和系统调试,您可动态调整日志级别。
- 日志级别按详细程度递增,INFO为默认级别,会记录包含ERROR、WARN及以上级别的日志,过滤掉DEBUG和TRACE日志。
- 通过OpenSearch API可实时修改指定模块的日志级别。
- 登录OpenSearch Dashboards进入命令执行页面。OpenSearch集群支持多种客户端访问,本文仅以CSS服务集成的OpenSearch Dashboards为例介绍配置指导。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > OpenSearch”。
- 在集群列表,选择目标集群,单击操作列的“Dashboards”,登录OpenSearch Dashboards。
- 在OpenSearch Dashboards左侧导航栏选择“Dev Tools”,进入操作页面。
控制台左侧是命令输入框,其右侧的三角形图标为执行按钮,右侧区域则显示执行结果。
- 执行以下命令,调整日志级别,如调整为DEBUG级别。
PUT _cluster/settings { "persistent": { "logger": { "org.opensearch.action": "DEBUG" } } } - 再次刷新日志查询页面,确认已有DEBUG级别日志输出。完成后建议将级别恢复默认。
- 执行以下命令,恢复默认日志级别(INFO)。
PUT _cluster/settings { "persistent": { "logger": { "org.opensearch.action": null } } }
开启Trace日志
当需要分析HTTP或传输层底层的详细通信协议细节时,您可以开启HTTP/Transport模块Trace日志并查看详细的日志信息。
- 登录OpenSearch Dashboards进入命令执行页面。OpenSearch集群支持多种客户端访问,本文仅以CSS服务集成的OpenSearch Dashboards为例介绍配置指导。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > OpenSearch”。
- 在集群列表,选择目标集群,单击操作列的“Dashboards”,登录OpenSearch Dashboards。
- 在OpenSearch Dashboards左侧导航栏选择“Dev Tools”,进入操作页面。
控制台左侧是命令输入框,其右侧的三角形图标为执行按钮,右侧区域则显示执行结果。
- 执行如下命令,开启Trace日志。
PUT _cluster/settings { "transient": { "logger.org.opensearch.transport.TransportService.tracer": "trace", "transport.tracer.include": "", "http.tracer.include": "", "logger.org.opensearch.http.HttpTracer": "trace" } }
开启Trace日志为临时性配置,集群重启后失效,适用于紧急抓包分析。
- 进入日志查询页面查看Trace日志。
- 在集群列表,单击目标集群名称,进入集群详情页。
- 选择“日志管理 > 日志查询”,进入日志查询页面。
- 日志级别选择全部(必须全选),查看“日志级别”是“TRACE”的日志信息。 图1 查看Trace日志
日志类型介绍
| 日志类型 | 描述 | 使用场景 |
|---|---|---|
| 运行日志 | 运行日志也称为主日志,记录了集群的运行状态和写入查询的关键信息等。例如,写入相关日志包含创建索引、更新索引mapping和写入队列打满等日志;查询相关日志包含查询队列和查询异常等日志。 | 当需要查看集群中各节点的运行状况及查询写入情况,例如节点之间的连通性、Full GC情况、创建或删除索引情况、集群级别的查询报错等信息时,可查看主日志进行排查。 |
| 慢索引日志 | 用于记录慢索引请求的日志文件,主要用于记录索引操作(如bulk、index、update、delete)中执行时间较长的操作,帮助您发现性能瓶颈。 | 当业务出现写入耗时久的情况时,可查看慢索引日志进行排查。 |
| 慢查询日志 | 用于记录慢查询请求的日志文件,主要用于监控和分析执行时间较长的搜索请求。它可以帮助您识别性能瓶颈、优化查询语句、提升系统整体性能。 | 当您的业务出现查询耗时久的情况时,可查看慢查询日志进行排查。 |
| 废弃操作日志 | 用于记录弃用警告(Deprecation Warnings)的日志文件。它会在您使用了已被弃用但尚未移除的API、配置或功能时,向这个日志中写入警告信息。 | 当需要查看业务有没有使用过期API风险情况时,可查看废弃操作日志进行排查。 |
| 接入日志 | 用于记录访问集群的请求信息,主要记录请求Path、访问地址等信息。 接入日志不支持控制台查看,但可以备份到OBS桶或采集到集群中查看。 | 当业务出现大量的请求,需要定位请求来源和请求路径时,可查看接入日志查看集群访问信息。 |
- 运行日志说明
运行日志记录了集群的运行状态和写入查询的关键信息等。例如下面的日志,表示创建了一个名为test的索引,创建完后集群状态由YELLOW变成GREEN。
图2 运行日志
日志内容说明:- 1:日志产生时间。
- 2:日志级别。包括DEBUG、INFO、WARN、ERROR等。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:日志的主要内容。
- 慢索引日志说明
慢索引日志记录了索引操作中执行时间较长的操作。例如下面的日志,展示了索引请求耗时超过设定阈值的请求记录,包括了索引名称、耗时、请求内容等。
图3 慢索引日志
- 慢查询日志
慢查询日志记录了执行时间较长的搜索请求。例如下面的日志,展示了查询请求耗时超过设定阈值的请求记录,包括了索引名称、耗时、请求内容等。
图4 慢查询日志
日志内容说明:- 1:日志产生时间。
- 2:日志级别。包括DEBUG、INFO、WARN、ERROR等。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:索引名称和分片ID。
- 6:日志的主要内容。此示例记录了执行耗时、查询命中数量、查询请求体等信息。
- 废弃操作日志
废弃操作日志记录了弃用警告信息。例如下面的日志,表示GET /_cat/master已经废弃,请使用GET /_cat/cluster_manager替代。
图5 废弃操作日志
日志内容说明:- 1:日志产生时间。
- 2:日志级别。只有DEPRECATION。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:日志的主要内容。
- 接入日志
接入日志记录了访问集群的请求和地址信息,例如下面的日志表示执行了/_snapshot/my_backup/my_snapshot/_restore?pretty=true操作的信息。
图6 接入日志
日志内容说明:- 1:日志产生时间。
- 2:日志发生的节点名称。
- 3:生成日志的线程名称。
- 4:日志级别,包括DEBUG、INFO、WARN、ERROR等。
- 5:日志的请求方法。
- 6:发送的请求路径。
- 7:发送请求的源和目标地址。