查询和管理Elasticsearch集群日志
CSS服务通过日志查询、日志备份和日志采集三大核心功能,为用户提供全面的日志管理能力,满足不同场景下的日志处理需求,帮助用户高效定位问题、优化性能及保障系统安全。
- 日志查询:在云搜索服务管理控制台的日志管理页面,用户可按节点、日志类型等条件筛选最近1万条日志,并查看最多100条结果,适用于快速定位突发问题。
- 日志备份:通过定期将集群日志同步至OBS桶,用户可随时下载日志文件进行深度分析。该功能支持自定义备份策略(如备份时间、存储路径等),备份日志包含运行日志、慢查询日志、弃用操作日志等类型,满足不同场景的审计与排查需求。
- 日志采集:实时将集群日志传输至当前集群或同网络的其他集群(需满足版本及网络兼容性要求),通过Kibana或其他工具实现日志的可视化搜索与分析。用户可设置索引前缀、保留周期等,灵活管理日志生命周期。采集日志支持跨集群分发,便于多集群环境下的集中监控。
计费影响
当使用日志备份功能时,备份的日志存储在OBS桶中需要额外收费,具体收费说明请参见对象存储服务计费说明。
前提条件
当使用日志备份功能时,需要提前创建用于存储日志的OBS桶。OBS桶需要满足如下条件:
- “存储类别”为“标准存储”。
- “区域”须与集群所在区域相同。
查询日志
- 登录云搜索服务管理控制台。
- 在“集群管理”页面,单击需要查询日志的集群名称,进入集群基本信息页面。
- 左侧导航栏,选择“日志管理”。
- 在日志管理页面进行日志查询。
- 选择需要查询的节点、日志类型和日志级别信息后,单击
,显示查询结果。
查询日志时,是从最近时刻的1万条日志中进行匹配,查询结果最多显示100条。
当日志文件大小达到128MB时,系统将自动将其打包为压缩包并完成归档。日志查询界面仅展示未归档的日志内容。已归档的日志需通过日志备份功能获取。
备份日志
日志备份可以定期将CSS集群的日志存储到OBS桶中。
- 登录云搜索服务管理控制台。
- 在“集群管理”页面,单击需要配置日志备份的集群名称,进入集群基本信息页面。
- 左侧导航栏,选择“日志管理”,在“日志备份开关”右侧单击开关,打开集群的日志管理功能。
- 在“编辑日志备份配置”弹窗中,完成参数配置。
如果集群已经启用了日志备份功能,也可以单击“日志备份配置”右侧的编辑图标,更新配置参数。
表1 日志备份配置说明 参数
说明
OBS桶
在下拉框中选择存储日志的OBS桶。
如果没有合适的OBS桶,可以单击“创建桶”跳转到OBS控制台创建OBS桶。具体操作请参见创建桶。
选择的OBS桶需要满足如下条件:
- “存储类别”为“标准存储”。
- “区域”须与集群所在区域相同。
备份路径
设置日志在OBS桶中的存放路径。
备份路径配置规则:- 备份路径不能存在符号“\:*?"<>|'{}”。
- 备份路径不能以“/”开头。
- 备份路径不能以“.”开头或结尾。
- 备份路径不能包含两个以上连续的斜杆(/)或点(.)。
- 备份路径的总长度不能超过512字符。
IAM委托
选择IAM委托,授权当前账号访问和使用OBS的权限。日志数据存储到OBS桶中,需要OBS的操作权限。
- 当首次配置委托时,可以单击“自动创建委托”新建委托“css_obs_agency”直接使用。
- 当已有自动创建的委托时,可以单击“委托一键授权”,自动删除委托中OBS Administrator系统策略的权限,并自动新增如下自定义策略授权委托到最小化权限。
"obs:bucket:GetBucketLocation", "obs:object:GetObjectVersion", "obs:object:GetObject", "obs:object:DeleteObject", "obs:bucket:HeadBucket", "obs:bucket:GetBucketStoragePolicy", "obs:object:DeleteObjectVersion", "obs:bucket:ListBucketVersions", "obs:bucket:ListBucket", "obs:object:PutObject"
- 当OBS桶使用SSE-KMS加密模式时,委托中需要包含KMS的权限,“自动创建委托”和“委托一键授权”会自动增加如下自定义策略授权委托到最小化权限。
"kms:cmk:create", "kms:dek:create", "kms:cmk:get", "kms:dek:decrypt", "kms:cmk:list"
- 执行“自动创建委托”和“委托一键授权”的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:createAgency", "iam:permissions:listRolesForAgency", "iam:permissions:grantRoleToAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:revokeRoleFromAgency", "iam:roles:createRole"
- 使用委托的用户需要如下最小权限。
"iam:agencies:listAgencies", "iam:agencies:getAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:listRolesForAgency"
警告:委托名称必须仅包含字符a-z、A-Z、0-9、下划线(_)和短横线(-),否则会备份失败。
- 备份日志。
- 自动备份日志。
开启“自动备份开关”后,在“修改日志备份策略”弹窗中设置“备份开始时间”。设置成功后,系统会按照设置的时间进行自动备份。
打开“自动备份开关”后,单击开关右侧的编辑图标,可以修改“备份开始时间”。
- 手动备份日志。
选择“日志备份”页签,单击“开始备份”,在弹出的确认提示框中单击“确定”,开始备份日志。
日志备份列表中的“任务状态”为“Successful”时,表示日志备份成功。
如果日志备份失败,可以在“日志备份”页签的右侧单击查看“失败任务数”,了解失败原因。失败任务数最多显示10条,当日志备份功能关闭或集群删除时,失败记录也会被清空。
- 自动备份日志。
- 查看日志文件。
日志备份采用增量备份方式,备份成功后可以访问OBS桶获取全量日志文件。日志文件类型如表2所示,其中“clustername”是集群名称。
图1 访问OBS桶
采集日志
日志采集可以实时将CSS集群日志存放到本集群或其他同网络的集群中,方便通过Kibana进行日志搜索分析。
- 集群版本是Elasticsearch 7.10.2、OpenSearch 1.3.6或OpenSearch 2.11.0。
- 集群的镜像版本号 ≥ 24.2.0。集群的镜像版本号可以在集群列表的“版本”列查看,如图所示。
图2 查看集群子版本号
- 登录云搜索服务管理控制台。
- 在“集群管理”页面,单击需要配置日志备份的集群名称,进入集群基本信息页面。
- 左侧导航栏,选择“日志管理”,在“日志采集开关”右侧单击开关,打开集群的日志采集功能。
如果页面上没有“日志采集开关”,则表示该集群不支持采集日志。
- 在“日志采集配置”弹窗中,完成参数配置。
如果集群已经启用了日志采集功能,也可以单击“日志采集配置”右侧的编辑图标,更新配置参数。
表3 日志采集配置说明 参数
说明
索引前缀名称
设置采集的日志中索引名称的前缀,设置后采集的日志索引名称为“索引前缀名称+日志采集日期”,日志采集日期以天为单位。
索引前缀名称只支持数字、小写字母、下划线和中划线,支持1~128个字符。
保留周期
设置采集的日志的保留周期。当采集的日志超过保存周期时,日志将会被删除。
单位:天
取值范围:1~3650
默认值:30天
日志保存集群
设置采集的日志保存在哪个集群,支持选择“当前集群”和“其他集群”。
- 当前集群:采集的日志保存在当前集群。
- 其他集群:采集的日志保存在其他集群。需要选择日志保存的目标集群,并进行集群网络连通性检查,只有在同一VPC网络下的集群才支持跨集群保存日志,且集群版本必须一致。
默认值:当前集群
- 单击“确定”,开启集群日志采集开关。
当“状态”变成“运行中”时,表示已启动日志采集。
单击“访问Kibana”,登录集群,可以搜索查看日志。
单击“日志保存集群”处的集群名称,可以跳转到集群详情页面。
图3 日志采集 - 当需要关闭日志采集时,单击“日志采集开关”右侧的开关,在弹窗中单击“确定”,关闭日志采集。
日志采集关闭后,集群中已采集的日志不会被清空,仅当超过采集日志时设置的“保存周期”时才会被删除。
日志介绍
日志类型 |
描述 |
使用场景 |
---|---|---|
运行日志 |
运行日志也称为主日志,记录了集群的运行状态和写入查询的关键信息等。例如,写入相关日志包含创建索引、更新索引mapping和写入队列打满等日志;查询相关日志包含查询队列和查询异常等日志。 |
当需要查看集群中各节点的运行状况及查询写入情况,例如节点之间的连通性、Full GC情况、创建或删除索引情况、集群级别的查询报错等信息时,可查看主日志进行排查。 |
慢索引日志 |
用于记录慢索引请求的日志文件,主要用于记录索引操作(如bulk、index、update、delete)中执行时间较长的操作,帮助您发现性能瓶颈。 |
当业务出现写入耗时久的情况时,可查看慢索引日志进行排查。 |
慢查询日志 |
用于记录慢查询请求的日志文件,主要用于监控和分析执行时间较长的搜索请求。它可以帮助您识别性能瓶颈、优化查询语句、提升系统整体性能。 |
当您的业务出现查询耗时久的情况时,可查看慢查询日志进行排查。 |
废弃操作日志 |
用于记录弃用警告(Deprecation Warnings)的日志文件。它会在您使用了已被弃用但尚未移除的API、配置或功能时,向这个日志中写入警告信息。 |
当需要查看业务有没有使用过期API风险情况时,可查看废弃操作日志进行排查。 |
接入日志 |
用于记录访问集群的请求信息,主要记录请求Path、访问地址等信息。 接入日志不支持控制台查看,但可以备份到OBS桶或采集到集群中查看。 |
当业务出现大量的请求,需要定位请求来源和请求路径时,可查看接入日志查看集群访问信息。 |
- 运行日志说明
运行日志记录了集群的运行状态和写入查询的关键信息等。例如下面的日志,表示创建了一个名为test的索引,创建完后集群状态由YELLOW变成GREEN。
图4 运行日志日志内容说明:- 1:日志产生时间。
- 2:日志级别。包括DEBUG、INFO、WARN、ERROR等。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:日志的主要内容。
- 慢索引日志说明
慢索引日志记录了记录索引操作中执行时间较长的操作。例如下面的日志,展示了索引请求耗时超过设定阈值的请求记录,包括了索引名称、耗时、请求内容等。
图5 慢索引日志 - 慢查询日志
慢查询日志记录了执行时间较长的搜索请求。例如下面的日志,展示了查询请求耗时超过设定阈值的请求记录,包括了索引名称、耗时、请求内容等。
图6 慢查询日志日志内容说明:- 1:日志产生时间。
- 2:日志级别。包括DEBUG、INFO、WARN、ERROR等。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:索引名称和分片ID。
- 6:日志的主要内容。此示例记录了执行耗时、查询命中数量、查询请求体等信息。
- 废弃操作日志
废弃操作日志记录了弃用警告信息。例如下面的日志,表示GET /_cat/master已经废弃,请使用GET /_cat/cluster_manager替代。
图7 废弃操作日志日志内容说明:- 1:日志产生时间。
- 2:日志级别。包括DEBUG、INFO、WARN、ERROR、DEPRECATION等。
- 3:生成日志的模块。
- 4:生成日志的节点名称。
- 5:日志的主要内容。
- 接入日志
接入日志记录了访问集群的请求和地址信息,例如下面的日志表示执行了/_snapshot/my_backup/my_snapshot/_restore?pretty=true操作的信息。
图8 接入日志日志内容说明:- 1:日志产生时间。
- 2:日志发生的节点名称。
- 3:生成日志的线程名称。
- 4:日志级别,包括DEBUG、INFO、WARN、ERROR等。
- 5:日志的请求方法。
- 6: 发送的请求路径。
- 7:发送请求的源和目标地址。