通过阿里云Elasticsearch的日志功能,您可以输入关键字和设置时间范围,锁定需要查询的日志内容,快速定位集群问题,辅助集群运维。本文为您介绍如何查询日志以及常见日志的使用说明。
使用限制
ES访问日志:仅6.7.0及7.10版本的实例支持在控制台查看ES访问日志。
审计日志:仅以下地域的7.x及以上版本实例支持在控制台查看审计日志。
国家或大区
地域
中国
华北2(北京)、华东1(杭州)、华东2(上海)、华北3(张家口)
亚太
新加坡、澳大利亚(悉尼)关停中、马来西亚(吉隆坡)、印度尼西亚(雅加达)、日本(东京)
欧洲与美洲
美国(弗吉尼亚)、美国(硅谷)、德国(法兰克福)、英国(伦敦)
异步写入日志:仅华北2(北京)地域下,6.7版本开启了异步写入高可用特性的实例支持在控制台查看异步写入日志。
重要目前6.7版本实例已不再支持开启写入高可用特性,仅存量已开启写入高可用特性的实例可在控制台查看异步写入日志。
操作步骤
- 登录阿里云Elasticsearch控制台。
- 在左侧导航栏,单击Elasticsearch实例。
- 进入目标实例。
- 在顶部菜单栏处,选择资源组和地域。
- 在Elasticsearch实例中单击目标实例ID。
在左侧导航栏,单击日志查询,查看集群的运行日志。
阿里云Elasticsearch主要支持的日志类型包括:主日志、Searching慢日志、Indexing慢日志、GC日志、ES访问日志、异步写入日志和审计日志,各类日志的说明和使用场景如下,更多详细信息请参见日志说明。
日志类型
说明
使用场景
主日志
集群的健康运行状态及索引查询写入日志。例如,写入相关日志包含创建索引、更新索引mapping和写入队列打满等日志;查询相关日志包含查询队列和查询异常等日志。
当您需要查看集群中各节点的运行状况及查询写入情况,例如节点之间的连通性、Full GC情况、创建或删除索引情况、集群级别的查询报错等信息时,可查看主日志进行排查。
重要如果您的业务侧出现问题,建议优先查看主日志和集群监控,排除集群自身的性能瓶颈或配置问题。
Searching慢日志
慢查询日志。当查询耗时超过指定阈值时,将在慢查询日志中打印相关信息。慢查询阈值已在场景化模板的索引模板中配置,默认情况下已是最优,只需一键应用即可,详细信息请参见索引模板配置。
当您的业务出现查询耗时久的情况时,可查看Searching慢日志进行排查。
查询耗时越久,集群资源消耗越大。当日志存在大量的慢日志,请排查集群资源及负载情况,获取瓶颈项,根据瓶颈项及时扩充对应资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
Indexing慢日志
慢写入日志。当写入耗时超过指定阈值时,将在慢写入日志中打印相关信息。慢写入阈值已在场景化模板的索引模板中配置,默认情况下已是最优,只需一键应用即可,详细信息请参见索引模板配置。
当您的业务出现写入耗时久的情况时,可查看Indexing慢日志进行排查。
写入耗时越久,对集群的资源消耗越大。当日志存在大量的慢日志,请排查集群资源及负载情况,获取瓶颈项,根据瓶颈项及时扩充对应资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
GC日志
垃圾回收器日志。显示所有JVM堆内存占用触发的垃圾回收情况,通过GC日志可获取详细的垃圾回收信息,包括Old GC、CMS GC、Full GC以及Minor GC等回收机制。
当集群出现性能瓶颈时,可通过GC日志获取详细的GC回收信息,查看是否存在耗时长或操作频繁的GC。如果存在,需要及时扩充集群资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
重要默认情况下,阿里云Elasticsearch集群使用CMS回收器,而当数据节点内存大于等于32 GB时,建议使用G1回收器,以提高GC回收效率。详细信息请参见配置垃圾回收器。
ES访问日志
集群的访问日志。显示Elasticsearch集群接收到restSearchAction相关请求的详细信息,包括uri、bodySize、请求时间等。
重要仅6.7.0及7.10版本的实例支持在控制台查看ES访问日志。
ES访问日志不支持以下查询场景日志:SQL查询、multi查询、 scroll查询、Kibana部分可视化工具触发的查询。
如果您想获取更完善的查询写入请求信息,建议开启审计日志,详情请参见配置Auditlog(审计日志)。
当您需要排查哪些客户端在向Elasticsearch集群发送查询请求时,可通过ES访问日志获取。
异步写入日志
当集群开启异步写入高可用特性时,可以通过异步写入高可用架构实现读写分离。同时,异步写入高可用特性加入了服务代理和消息队列等组件,异步写入日志用来记录对应服务的状态及数据写入日志。
重要仅华北2(北京)地域下,6.7版本且开启了异步写入高可用特性的实例支持控制台查看异步写入日志。
目前6.7版本实例已不再支持开启写入高可用特性,仅存量已开启写入高可用特性的实例可在控制台查看异步写入日志。
当您使用写入高可用功能需要排查该部分组件服务的状态和集群数据写入问题时,可通过异步写入日志排查分析。
审计日志
Elasticsearch实例对应的增、删、改、查等操作产生的审计日志。
重要仅使用限制中所列地域的7.x及以上版本实例支持在控制台查看审计日志。其他实例需要在YML配置中开启审计日志,开启后审计日志会以索引形式写入当前的Elasticsearch集群中,您可以在Kibana控制台上查看.security_audit_log-*开头的索引来查看审计日志。详细信息请参见配置YML参数。
在控制台上查看审计日志前,需要先单击日志设置开启审计日志采集。
审计日志默认采集的事件类型为access_denied, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted,如果您需要修改采集的审计事件类型,需要修改集群的YML文件中的xpack.security.audit.logfile.events.include参数,详细信息请参见配置Auditlog(审计日志)。
当您出现身份验证失败、拒绝连接、需要查看数据访问事件以及发现集群存在可疑活动(例如数据访问授权和用户安全配置更改)的情况时,可通过查看审计日志进行排查分析。
在日志页面的搜索框中,输入查询条件,选择开始时间和结束时间,单击搜索。
阿里云Elasticsearch最多支持查询连续7天内的日志,日志默认按时间倒序展示。支持基于Lucene的日志查询语法,详情请参见Query string syntax。
以查询content包含关键字health,level为info,host为172.16.xx.xx的主日志为例,示例查询条件为:
host:172.16.xx.xx AND content:health AND level:info
。重要查询条件中的
AND
必须为大写。如果结束时间为空,那么结束时间默认为当前时间。如果开始时间为空,那么开始时间默认为结束时间减去1小时。
阿里云Elasticsearch最大支持返回10000条日志,如果在返回的10000条日志中,未覆盖到您所需要的日志内容,可以通过缩短查询时间范围来获取需要的日志。
搜索成功后,阿里云Elasticsearch会根据您的查询条件返回日志查询结果,并展示在日志查询页面。
日志说明
主日志
主日志主要展示集群的运行日志,包括日志产生的时间、日志所在的节点IP和日志内容。
参数 | 说明 |
时间 | 日志产生时间。 |
节点IP | 生成日志的节点的IP地址。 |
内容 | 日志的详细信息,主要由level、host、time和content组成:
|
慢日志
慢日志默认开启,主要展示超过指定时间阈值的索引(Indexing慢日志)和查询(Searching慢日志)日志。在集群负载不均、读写异常、处理数据很慢等情况下,您可以通过查询慢日志来分析具体原因。
默认情况下,阿里云Elasticsearch的慢日志会记录5~10秒的读写操作,这样不利于排查问题。因此在实例创建完成后,您可以选择以下任意一种方式,降低日志记录的时间间隔,以抓取更多的日志:
集群创建成功后,场景化配置模板默认已开启,且会自动应用到集群中。其中索引模板配置中定义了慢日志配置,您无需修改保持默认即可。其中通用场景默认的慢日志配置如下:
"settings": { "index": { "search": { "slowlog": { "level": "info", "threshold": { "fetch": { "warn": "200ms", "trace": "50ms", "debug": "80ms", "info": "100ms" }, "query": { "warn": "500ms", "trace": "50ms", "debug": "100ms", "info": "200ms" } } } }, "refresh_interval": "10s", "unassigned": { "node_left": { "delayed_timeout": "5m" } }, "indexing": { "slowlog": { "level": "info", "threshold": { "index": { "warn": "200ms", "trace": "20ms", "debug": "50ms", "info": "100ms" } }, "source": "1000" } } } }
说明如果场景化配置模板为不启用状态,您需要参见修改场景化配置模板,启用并提交模板配置,才可以将默认的慢日志配置应用到集群。
参见登录Kibana控制台,登录该实例的Kibana控制台,执行以下命令,修改慢日志配置。
PUT _settings{ "index.indexing.slowlog.threshold.index.warn" : "200ms", "index.indexing.slowlog.threshold.index.trace" : "20ms", "index.indexing.slowlog.threshold.index.debug" : "50ms", "index.indexing.slowlog.threshold.index.info" : "100ms", "index.search.slowlog.threshold.fetch.warn" : "200ms", "index.search.slowlog.threshold.fetch.trace" : "50ms", "index.search.slowlog.threshold.fetch.debug" : "80ms", "index.search.slowlog.threshold.fetch.info" : "100ms", "index.search.slowlog.threshold.query.warn" : "500ms", "index.search.slowlog.threshold.query.trace" : "50ms", "index.search.slowlog.threshold.query.debug" : "100ms", "index.search.slowlog.threshold.query.info" : "200ms"}
修改完成后,在执行读写任务时,如果执行时间超过了以上配置的时间,您就可以在慢日志页签中查询到对应的日志。
GC日志
GC日志默认开启,包含日志产生的时间、所在节点的IP地址和日志内容。详细信息,请参见主日志。
ES访问日志
访问日志展示了Elasticsearch集群接收到restSearchAction相关请求的详细信息,包括集群node和IP地址、bodySize、请求内容、请求时间、发起请求的客户端IP地址、uri等信息。
仅6.7.0和7.10版本的实例支持在控制台查看ES访问日志。
如果您想获取更完善的查询写入请求信息,建议开启审计日志,详情请参见配置Auditlog(审计日志)。
审计日志
仅使用限制中所列地域的7.x及以上版本实例支持在控制台查看审计日志。
审计日志主要展示Elasticsearch实例对应的增、删、改、查等操作产生的日志。默认关闭,您可以通过以下步骤开启并查看审计日志:
在日志查询页面,单击右侧的日志设置。
在日志设置对话框中,打开审计日志采集开关。
重要开启审计日志采集后,您可以在当前页面查询到该集群的审计日志。如果您需要修改采集的审计事件类型,请前往集群配置修改xpack.security.audit.logfile.events.include参数配置,详细信息请参见配置Auditlog(审计日志)。
开启或关闭审计日志采集会触发集群重启。目前阿里云Elasticsearch集群重启是采用滚动重启的方式。在集群状态正常(绿色)、索引至少包含1个副本的情况下,如果资源使用率也不是特别高,那么集群在重启期间能够持续提供服务。但建议在业务低峰期操作。
选中操作提示,单击确认。
确认后,集群会进行重启。重启过程中,可在任务列表查看进度。重启成功后,即可开启审计日志采集。
重要审计日志信息会占用您的磁盘空间,同时也会影响性能。如果您不需要查看审计日志,可使用同样的方式关闭审计日志采集功能。
在日志查询页面,单击审计日志页签,查看审计日志。